@charset "utf-8";

* {
	box-sizing: border-box;
}

/*-----------all-----------*/
html {
	font-size: 62.5%;
	margin: 0;
	padding: 0;
}
body {
	width: 100%;
	background-color: #fff;
	font-size: 1.6em;
	font-family: sans-serif;
	font-weight: 300;
	line-height: 1.6em;
	margin: 0 auto;
	padding: 0;
	color: #555;
}
@media screen and (min-width: 680px) {
	body {
		font-size: 2.2em;
		line-height: 1.5em;
	}
}
img, div {
	display: block;
	width: 100%;
}
h1, h2, h3, h4, h5, h6 {
	color: #02a;
	font-size: 19.2px;
}
h2, h3, h4, h5, h6 {
	color: #02a;
	font-size: 19.2px;
	margin-top: 56px;
}
@media screen and (min-width: 680px) {
	h1, h2, h3, h4, h5, h6 {
		font-size: 26.45px;
	}
}
.clear {
	clear: both;
}
/*-----------header-----------*/
.header {
	display: block;
	margin-top: 2.4em;
	height: 80px;
	overflow: hidden;
}
.header p {
	font-size: 144%;
	color: #fff;
	font-weight: 900;
	line-height: 1.2em;
}
.header img.logo {
	width: 32%;
	position: absolute;
	top: 88px;
	right: 20px;
}
@media screen and (max-width: 680px) {
	.header p {
		position: absolute;
		top: 26px;
		left: 16px;
	}
}
@media screen and (min-width: 681px) {
	.header {
		display: block;
		margin-top: 2.4em;
		height: 112px;
	}
	.header p {
		font-size: 244%;
		position: absolute;
		top: 12px;
		left:0;
		right: 0;
		text-align: center;
	}
	.header img.logo {
		top: 112px;
		right: 16px;
		max-width: 304px;
	}
}
/*-----------conte-----------*/
.conte {
	padding: 16px;
}
@media screen and (min-width: 1280px) {
	.conte {
		max-width: 1280px;
		margin: auto;
	}
}
/*-----------p-----------*/
.nowrap {
	white-space: nowrap;
}
.fs_px10 {
	font-size: 14px;
}
.fs_120 {
	font-size: 120%;
}
.fs_160 {
	font-size: 160%;
}
.center {
	text-align: center;
}
.normal {
	font-weight: 300;
}
.bold {
	font-weight: 600;
}
.bold2 {
	font-weight: 900;
}

.black {
	color: #000;
}
.blue {
	color: #02a;
}
.green {
	color: #084;
}
.red {
	color: #d00;
}
.pc_center {

}
@media screen and (min-width: 681px) {
	.pc_center {
		text-align: center;
	}
}

.caption-up {
	margin-bottom: -12px;
	font-size: 1em;
	text-align: center;
}
.caption {
	margin-top: -12px;
	font-size: 1em;
	text-align: center;
}
.caption2 {
	margin-top: 0;
	font-size: 1em;
	padding: 0 1em;
}
.caption2 span {
	text-decoration: underline overline dotted #c90;
}
.caption3 {
	margin-top: -12px;
	font-size: 1em;
	padding: 0 1em;
}
.caption a {
	color: #555;
	text-decoration: none;
}
@media screen and (min-width: 681px) {
	.caption {
		margin-top: -16px;
	}
}
/*-----------border-----------*/
.bb-blue {
	border-bottom: dotted 2px #02a;
}
/*-----------img-----------*/
.in-right {
	float: right;
	width: 48%!important;
	margin-left: 16px;
	margin-bottom: 16px;
}
.in-right_s {
	float: right;
	width: 32%!important;
	margin-left: 16px;
	margin-bottom: 16px;
	margin-top: 24px;
}
.in-right2 {

}
@media screen and (min-width: 681px) {
	.in-right_s {
		width: 24%!important;
		margin-top: -32px;
		margin-bottom: 8px;
	}
	.in-right2 {
		float: right;
		width: 48%!important;
		margin-left: 16px;
		margin-bottom: 16px;
	}
}
.in-left {
	float: left;
	width: 48%!important;
	margin-right: 16px;
	margin-bottom: 16px;
}
.mw-1004 {
	max-width: 1004px;
	margin-left: auto;
	margin-right: auto;
}
.button {
	width: 80%;
	max-width: 448px;
	margin: 56px auto;
}
/*-----------a-----------*/
.link_r {
	display: inline-block;
	margin: auto;
	padding: 9px 24px 7px;
	text-decoration: none;
	text-align: center;
	color: #fff;
	background: #f77;
	border-radius: 32px;
}
.link_b {
	display: inline-block;
	margin: auto;
	padding: 9px 24px 7px;
	text-decoration: none;
	text-align: center;
	color: #fff;
	background: #1bd;
	border-radius: 32px;
}
@media screen and (min-width: 751px) {
	.link_r, .link_b {
		padding: 10px 24px 6px;
	}
}
.a_none {
	text-decoration: none;
	color: #555;
}
/*-----------margin/padding-----------*/
.ml-px16 {
	margin-left: 16px;
}
.ml-px24 {
	margin-left: 24px;
}
.mt_px16 {
	margin-top: -16px;
}
.mt_px24 {
	margin-top: -24px;
}
.mtb-px4 {
	margin-top: 16px;
}
.mb-px16 {
	margin-bottom: 16px;
}
.mt-px0 {
	margin-top: 0;
}
.mt-px4 {
	margin-top: 4px;
	margin-bottom: 4px;
}
.mt-px24 {
	margin-top: 24px;
}
.mt-px32 {
	margin-top: 32px;
}
.mt-px56 {
	margin-top: 56px;
}
.in-mt_px56 {
	margin-top: -48px;
}
.mt_px40 {
	margin-top: -16px;
}
@media screen and (min-width: 751px) {
	.mt_px40 {
		margin-top: -40px;
	}
	.mt_px56 {
		margin-top: -56px;
	}
}
/*-----------div-----------*/
.idx_01 { max-width: 1000px;margin: auto; }
	.idx_01 img:first-child { width: 12.66%; margin-left: 0; margin-right: 0.24%; float: left; }
	.idx_01 img:nth-child(2) { width: 25.63%; margin-left: 0.24%; margin-right: 0.24%; float: left; }
	.idx_01 img:nth-child(3) { width: 10.27%; margin-left: 0.24%; margin-right: 0.24%; float: left; }
	.idx_01 img:nth-child(4) { width: 25.16%; margin-left: 0.24%; margin-right: 0.24%; float: left; }
	.idx_01 img:last-child { width: 24.41%; margin-left: 0.24%; margin-right: 0; margin-bottom: 24px; }
.pic3 {
	width:100%;
	margin-top: 0;
}
.pic3 img {
	width: calc(100% - 16px);
	margin: 8px;
	box-shadow: 1px 1px 3px 0px #999;
}
@media screen and (min-width: 751px) {
	.pic3 {
		display: flex;
	}
}
.box_bk2 {
	border: solid 2px #777;
	padding: 0 24px;
}
.box_bk {
	border: solid 2px #777;
	padding: 16px 24px;
}
.box_grn {
	border: solid 2px #7f7;
	padding: 16px 24px;
}
.qaa p:nth-child(odd) {
	padding-left: 0.5em;
	border-bottom: solid 2px #77bbff;
	margin-top: 32px;
}
.qaa p:nth-child(even) {
	padding-left: 2em;
}
.smap h2 {
	margin-left: 2em;
}
.smap h2:first-child {
	margin-left: 0;
}
.smap p {
	margin-left: 4em;
	margin-top: -18px;
	margin-bottom: 24px;
}
.bg_yellow {
	background: #ffc;
	border: solid #000 1px;
}
/*-----------video-----------*/
.movie {
	width:100%;
}
.movie video {
	width: calc(100% - 16px);
	margin: 8px;
	border-top: solid 3px #000;
	border-left: solid 3px #000;
	border-right: solid 5px #000;
	border-bottom: solid 5px #000;
	box-shadow: 1px 1px 3px 0px #999;
}
@media screen and (min-width: 751px) {
	.movie {
		display: flex;
	}
}
.movie iframe {
	width: calc(100% - 16px)!important;
	height: auto !important;
	aspect-ratio: 16 / 9;
	margin: 8px;
	border-top: solid 3px #000;
	border-left: solid 3px #000;
	border-right: solid 5px #000;
	border-bottom: solid 5px #000;
	box-shadow: 1px 1px 3px 0px #999;
}
.setu2 {

	margin-top: 0px!important;
}
/*-----------footer-----------*/
footer {
	background: #eee;
}
.footer {
	padding: 16px;
	max-width: 1280px;
	margin: auto;
}
@media screen and (min-width: 751px) {
	.footer {
		display: flex;
	}
}
.footer ul {
	list-style: none;
}
.footer ul li {
	margin-left: 8em;
}
.footer ul li:first-child {
	margin-left: 6em;
}
@media screen and (min-width: 751px) {
	.footer ul li {
		margin-left: 4em;
	}
	.footer ul li:first-child {
		margin-left: 2em;
	}
}
.footer ul li a {
	color: #555;
	text-decoration: none;
}
.footer .link_b {
	border-radius: 8px;
	width: 60%;
}
/*-----------counter-----------*/
.counter {
	clear: both;
	text-align: center;
	font-size: 0.8em!important;
	margin-top: 16px;
}
	.counter img {
		width: auto;
		display: inline;
	}
/*-----------page-top-----------*/
#page-top {
	position: fixed;
	bottom: 0px;
	right: 24px;
}
#page-top a {
	display: block;
	text-decoration: none;
	padding: 0.4em .4em;
	background: rgb(250 255 253 / 0.7);
	box-shadow: 2px 2px 4px #eee;
	color: #333;
	border-radius: 24px;
}
/*-----------contact_form-----------*/
.contactform {
	display: block;
	width: 80%;
	margin: 32px auto;
	padding: 16px;
}
.contactform p {
	clear: both;
	width: 100%;
	line-height: 1.5em;
	background: rgba(180,255,100,0.2);
	text-indent: 1em;
	font-weight: bold;
	letter-spacing: 4px;
	margin: 16px 0 8px 0;
	padding-top: 4px;
	border-radius: 8px;
}
	.contactform p:first-child {
		margin-top: 0;
	}
.contactform p.pp {
	width: 80%;
	line-height: 1.1em;
	background: none;
	text-indent: 0;
	font-weight: normal;
	letter-spacing: 0;
	margin: 0 0 8px 6em;
	padding-top: 0;
	border-radius: 8px;
}
input[type="checkbox"] {
	margin-left: 4em;
	padding-left: 5em;
	line-height: 2.5em;
	transform: scale(1.8);
}
.textbox {
	width: 94%;
	height: 2.5em;
	line-height: 2.5em;
	margin: 4px 2% 4px 4%;
	padding-left: 0.5em;
	background: rgba(255,255,255,0.3);
	border: inset 1px #aaa;
}
.t-area	{
	width: 94%;
	height: 168px;
	margin: 4px 2% 4px 4%;
	padding: 0.5em;
	background: rgba(255,255,255,0.3);
	border: inset 1px #aaa;
}
	@media only screen and (max-width: 680px) {
		.contactform {
			width: 98%;
			padding: 8px;
			border-radius: 8px;
		}
		.contactform p {
			letter-spacing: 0;
		}
		.t-area {
			height: 80px;
		}
	}
.formbutton {
	display: block;
	text-align: center;
	width: 100%
	margin: 0;
	padding: 0;
	background: #fff!important;
}
	@media(max-width:480px){
		.formbutton {
			margin-top: 8px;
		}
	}
.kakunin {
	clear: both;
	width: 55%;
	height: 3em;
	margin: 0 0 0 2.5%;
	border-radius: 10px;
	line-height: 3em;
	letter-spacing: 2px;
	background: rgba(255,0,0,0.3);
	font-weight:bold;
	box-shadow: 2px 2px 2px #777;
	cursor: pointer;
	-webkit-appearance: none;
}
.reset {
	clear: both;
	width: 25%;
	height: 3em;
	margin: 0 0 0 0;
	border-radius: 10px;
	line-height: 3em;
	background: rgba(130,130,130,0.2);
	box-shadow: 2px 2px 2px #aaa;
	-webkit-appearance: none;
}
/*-----------drawer menu-----------*/
#navi {
	background: rgb(200 250 200 / 0.9);
	position: fixed;
	top: 0;
	left: 0;
	height: 3.8em;
	width: 100%;
	font-size: 12px;
}
#navi ul, #navi div, #navi img {
	margin: 0px;
	padding: 0px;
	list-style: none;
	font-weight: normal;
}
/* チェックボックスを非表示 */
#navi input {
	display: none;
}
/* 左上ロゴ */
.menu-left {
	float: left;
	line-height: 2.8em;
	width: 120px;
}
.menu-left img {
	vertical-align: middle;
	margin-left: 10px;
	padding: 2px 4px;
}
/* 上部メニュー */
.menu {
	float: right;
	margin-right: 10px;
}
.menu-parent {
	float: left;
	line-height: 2.8em;
	font-size: 16px;
	white-space: nowrap;
	border-right: solid 1px #ddd;
	padding: 0 8px;
}
/* パソコンでは V を非表示 */
.menu-parent .pd {
	display: none;
}
.menu-parent:first-child {
	border-left: solid 1px #ddd;
}
.menu-parent:last-child {
	margin-right: 8px;
	border: none;
}

#menu-navibtn {
	display: none;
	cursor: pointer;
	cursor: hand;
}

@media screen and (max-width: 620px) {
	/* スマホの際に V を表示 */
	.menu-parent .pd {
		display: inline-block;
		width: 100%;
	}
	.menu {
		display: none;
	}
	.menu-parent {
		height: auto;
		width: 100%;
		padding: 0px 10px;
		border-bottom: 1px solid #DDD;
	}
	.menu-parent:first-child {
		border-top: 1px solid #DDD;
	}
	.menu-parent i {
		padding: 0px 0px;
	}
	/* メニューを移動させないため */
	#menu-navibtn:checked ~ #navi {
		position: fixed;
		overflow-y: scroll;
		overflow-x: hidden;
		height: 100%;
	}
}

/* ドロップダウンメニュー */
.menu-parent {
	position: relative;
}
.menu-parent .menu-child {
	visibility: hidden;
	opacity: 0;
	position: absolute;
	margin-left: -40px;
	width: auto;
	box-sizing: border-box;
	padding: 0px 10px;
	background: rgb(240 255 247 / 0.9);

}
.menu-parent a {
	color: #555;
	text-decoration: none;
	display: block;
}
.menu-child li a {
	color: #000;
	text-decoration: none;
	display: block;
}
/* パソコン用 */
@media screen and (min-width: 620px) {
	.menu-parent:hover .menu-child {
		visibility: visible;
		opacity: 1;
	}
}
/* スマホ用 */
@media screen and (max-width: 620px) {
	/* ハンバーガーメニューがクリックされた時 */
	#menu-navibtn:checked ~ * .menu {
		display: block;
		opacity: 1;
	}
	#menu-navibtn:checked ~ * .menu-parent {
		max-height: inherit;
		overflow-y: visible;
	}
	#menu-navibtn:checked ~ * .menu-child {
		max-height: 0;
		overflow-y: hidden;
		visibility: hidden;
	}
	/* 子メニュー */
	.menu-parent .menu-child {
		border-top: 1px solid #DDD;
		border-left: 1px solid #FFF;
		border-right: 1px solid #FFF;
		border-bottom: 1px solid #FFF;
		position: relative;
		padding: 0 10px;
		opacity: 1;
		top: 0;
		margin-left: auto;
		left: auto;
		width: auto;
	}
	.menu-parent > label:hover {
		cursor: pointer;
		cursor: hand;
	}
	/* 子メニューがクリックされた時 */
	#navi input[type="checkbox"]:checked ~ .menu-child {
		max-height: inherit;
		overflow-y: visible;
		visibility: visible;
	}
	.angletoggle:before {
		content: "\f107";
	}
	#navi input[type="checkbox"]:checked ~ * .angletoggle:before {
		content: "\f106";
	}
}
/* 子メニュー */
.menu-child li {
	font-size: 16px;
	padding: 0 8px;
	border-bottom: 1px solid #DDD;
}
/* 余分な最後の線を消去 */
.menu-child li:last-child {
	border: none;
}
.menu-child li i {
	margin-right: 3px;
}

/* ハンバーガー */
#navi #navibtn {
	display: none;
}
@media screen and (max-width: 620px) {
	#navi #navibtn {
		display: block;
		position: absolute;
		top: 10px;
		right: 10px;
	}
	#navibtn span {
		display: block;
		width: 40px;
		height: 40px;
		background-color: #eee;
		border-radius: 8px;
	}
	#navibtn span span {
		display: block;
		overflow: hidden;
		width: 1px;
		height: 1px;
	}
	#navibtn span span::before,
	#navibtn span span::after,
	#navibtn span::after {
		position: absolute;
		left:10px;
		content:"";
		width: 20px;
		height: 3px;
		background-color: #777;
	}
	/* 上の棒 */
	#navibtn span span::before {
		top:10px;
	}
	#menu-navibtn:checked ~ #navi label#navibtn span span::before {
		top:19px;
		transform: rotate(-45deg);
		-webkit-transform: rotate(-45deg);
	}
	/* 下の棒 */
	#navibtn span::after {
		bottom:10px;
	}
	#menu-navibtn:checked ~ #navi label#navibtn > span::after {
		bottom:18px;
		transform: rotate(-135deg);
		-webkit-transform: rotate(-135deg);
	}
	/* 中の棒 */
	#navibtn span span::after {
		top:18px;
	}
	#menu-navibtn:checked ~ #navi label#navibtn span span::after {
		display: none;
	}
}
/*-----------drawer menu-----------*/
#no01, #no02, #no03, #no04, #no05, #no06, #no07, #no08, #no09, #no10, #no11, #no12 {
	padding-top: 48px;
	margin-top: -48px;
}
