/*Common CSS　Ver.1.0.0 */

/*=================================
全体設定
=================================*/
* {
	margin: 0;
	padding: 0;
	/*vertical-align: bottom;*/
	box-sizing: border-box;
}
body {
	font-size: 15px;
	line-height: 1.6;
	font-family: GenJyuuGothic-Normal, "Lucida Grande", "segoe UI", "ヒラギノ丸ゴ ProN W4", "Hiragino Maru Gothic ProN", Meiryo, Arial, sans-serif;
	/*
	font-family: 'Noto Sans JP', sans-serif;
	*/
	/*
	Helvetica Neue,Helvetica,YuGothic,Yu Gothic,'ヒラギノ角ゴ Pro W3',Hiragino Kaku Gothic Pro,"メイリオ",Meiryo,sans-serif;
	*/
	font-weight: 300;
	color: rgba(60, 60, 60, 1.0);
	text-align: justify;
	margin: 0;
	padding: 0;
}
#wrapper {
	overflow: hidden;
}
h2 {
	font-size: 2.8rem;
	font-weight: 600;
}
h2.page-title {
	font-size: 2.4rem;
	font-weight: bold;
}
h3 {
	font-size: 2.4rem;
}
ul, ol {
	list-style: none;
}
table {
	width: 100%;
	border-collapse: collapse;
}
a, a:visited {
	display: inline-block;
	color: rgba(45, 45, 45, 1.0);
	text-decoration: none;
}
a:hover {
	color: rgba(40, 188, 125, 1.0);
}
.site-green {
	color: rgba(40, 188, 125, 1.0);
}
.site-yellow {
	color: rgba(255, 217, 0, 1.0);
}
.site-red {
	color: rgb(240, 0, 45, 1.0);
}
.white {
	color: rgba(255, 255, 255, 1.0);
}
.txt-xl {
	font-size: 20px;
	line-height: 1.5;
}
.txt-l {
	font-size: 17px;
	line-height: 1.5;
}
.txt-s {
	margin-top: 5px;
	font-size: 12px;
	line-height: 1.35;
}
.txt-ss {
	margin-top: 5px;
	font-size: 10px;
	line-height: 1.35;
}
.txt-center {
	text-align: center;
}
.txt-left {
	text-align: left;
}
.txt-right {
	text-align: right;
}
.txt-stg-red {
	padding: 0 5px;
	font-size: 1.15em;
	display: inline-block;
	background-color: rgba(248, 0, 0, 0.4);
}
.imp-txt{
	font-size: 1.85rem;
	font-weight: bold;
	line-height: 1.35;
	text-align: center;
}
.w1200 {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding-left: 20px;
	padding-right: 20px;
}
.w1200p0 {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding-left: 0;
	padding-right: 0;
}
.w1000 {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	padding-left: 20px;
	padding-right: 20px;
}
.w1000p0 {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	padding-left: 0;
	padding-right: 0;
}
.w100a {
	width: 100%;
	margin: 0 auto;
}
.w100 {
	width: 100%;
}
.w95a {
	width: 95%;
	margin: 0 auto;
}
.w95 {
	width: 95%;
}
.w90a {
	width: 90%;
	margin: 0 auto;
}
.w90 {
	width: 90%;
}
.w85a {
	width: 85%;
	margin: 0 auto;
}
.w85 {
	width: 85%;
}
.w80a {
	width: 80%;
	margin: 0 auto;
}
.w80 {
	width: 80%;
}
.m0a {
	margin: 0 auto;
}
.bg-white {
	background-color: rgba(255, 255, 255, 1.0);
}
.bg-black {
	background-color: rgba(45, 45, 45, 1.0);
}
.bg-cream {
	margin-top: 40px;
	padding-top: 40px;
	padding-bottom: 40px;
	background-color: rgb(255, 249, 226);
}
.bg-slash {
	background-image: url(../img/line.webp);
}
.border-top {
	margin-top: 15px;
	padding-top: 10px;
	border-top: 1px solid rgb(120, 120 ,120);
}
.pos-relative {
	position: relative;
}
.pos-fixed {
	position: fixed;
	z-index: 100;
}
.flex {
	display: flex;
}
.flex-w {
	display: flex;
	flex-wrap: wrap;
}
.flex-wb {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.flex-wc {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.float-L {
	float: left;
}
.float-R {
	float: right;
}
.float-N {
	float: none;
}
.dsp-scroll {
	padding-bottom: 10px;
	overflow: scroll;
	cursor: -webkit-grab;
	cursor: grab;
}
.dsp-scroll-alert {
	display: none;
	padding: 2px 0;
	color: rgba(150, 150, 150, 1.0);
	text-align: center;
}
.dsp-scroll-alert::before {
	font-family: 'Material Icons';
	content: '\e9ec';
	padding-right: 4px;
	font-size: 18px;
	font-weight: normal;
	vertical-align: middle;
}
a.btn-green, 
a.btn-green:visited {
	padding: 1.0em 1.5em;
	font-size: 1.25rem;
	line-height: 1.45;
	font-weight: bold;
	text-align: center;
	color: rgba(255, 255, 255, 1.0);
	background-color: rgba(40, 188, 125, 1.0);
	border-radius: 8px;
	border-bottom: 3px solid rgba(12, 150, 105, 1.0);
}
a.btn-green:hover {
	background-color: rgba(30, 165, 105, 1.0);
	border-top: 3px solid rgba(12, 150, 105, 1.0);
	border-bottom: none;
}
a.btn-green-02, 
a.btn-green-02:visited {
	margin: 20px auto;
	padding: 0.5em 1.2em;
	font-size: 1.05rem;
	line-height: 1.45;
	font-weight: bold;
	text-align: center;
	color:rgb(40, 188, 125);
	border: 2px solid rgb(40, 188, 125);
	border-radius: 5px;
}
a.btn-green-02:hover {
	background-color:rgba(40, 188, 125, 0.4);
}



/*== Header設定 =========================*/
header {
	width: 100%;
	background-color:rgba(255, 255, 255, 1.0);
}
.header-inner {
	margin: 0 auto;
	padding-top: 15px;
	padding-bottom: 15px;
	align-items: center;
}
#header-logo {
	width: 220px;
	margin-right: 30px;
}
#header-text dl dt {
	font-size: 1.15rem;
	font-weight: bold;
	text-align: right;
}
#header-text dl dd {
	text-align: right;
}


/*== Nav設定 =========================*/
nav {
	width: 100%;
	margin: 0;
	padding: 0;
	border-style: none;
	background-color: rgb(255, 217, 0);
	background-image: url(../img/line.webp);
}
#nav-btn {
	display: none;
	position: fixed;
	top: 10px;
	right: 10px;
	z-index: 102;
	cursor: pointer;
	background-color: rgba(255, 255, 255, 0.4);
	border-radius: 50%;
}
#gloval-navi .nav-box {
	width: 16%;
	/*text-align: center;*/
	position: relative;
}
.nav-cat-name, 
.nav-cat-name:visited {
	display: block;
	padding: 1.0em 0.2em;
	font-weight: bold;
	cursor: pointer;
}
.nav-box .nav-cat-name::before {
	margin-right: 4px;
	padding: 3px 2px 3px 3px;
	font-size: 20px;
	vertical-align: sub;
	color: rgba(255, 255, 255, 1.0);
	background-color: rgba(75, 75, 75, 1.0);
	border-radius: 50%;
}
.nav-box:nth-child(1) .nav-cat-name::before {
	font-family: 'Material Icons';
	content: '\e88a';
}
.nav-box:nth-child(2) .nav-cat-name::before {
	font-family: 'Material Icons';
	content: '\e8cc';
}
.nav-box:nth-child(3) .nav-cat-name::before {
	font-family: 'Material Icons';
	content: '\f02f';
}
.nav-box:nth-child(4) .nav-cat-name::before {
	font-family: 'Material Icons';
	content: '\e0c6';
}
.nav-box:nth-child(5) .nav-cat-name::before {
	font-family: 'Material Icons';
	content: '\e158';
}
.nav-box:nth-child(6) .nav-cat-name::before {
	font-family: 'Material Icons';
	content: '\e0c8';
}
.has-child {
	position: relative;
}
.nav-box .nav-cat-child {
	width: 100%;
	background-color: rgba(255, 255, 225, 0.95);
	box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
	position: absolute;
	z-index: 2;
	display: none;
}
.nav-box .nav-cat-child li a {
	font-size: 14px;
	padding: 0.5em;
}


/*== パンクズ設定 =========================*/
.pankuzu {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 30px 0;
	display: flex;
	white-space: nowrap;
	-ms-overflow-style: none; /* IE, Edge 対応 */
	scrollbar-width: none;    /* Firefox 対応 */
}
.pankuzu::-webkit-scrollbar {
	display: none; /* Chrome, Safari 対応 */
}
.pankuzu ul {
	padding: 3px 2.5% 2px;
	font-size: 13px;
	line-height: 1.45;
	width: fit-content;
	display: flex;
}
.pankuzu ul li:last-child {
	color: rgb(40, 188, 125);
}
.pankuzu ul li:not(:first-child)::before {
	content: ">";
	padding: 0 0.7em;
	color: initial;
	position: relative;
	top: -0.8px;
}


/*== Main設定 =========================*/
.sec {
	padding-top: 60px;
	padding-bottom: 0;
}
.sec:last-of-type {
	padding-bottom: 60px;
}
.sec-insec {
	padding-top: 30px;
	padding-bottom: 0;
}
.sec-insec:last-of-type {
	padding-bottom: 30px;
}
#privacy .sec-insec {
	padding-left: 24px;
}
#home .sticker-attention-btn {
	margin: 0 auto 60px;
	text-align: center;
}
.sticker-attention-btn a, 
.sticker-attention-btn a:visited {
	padding: 0.4em 0.8em;
	font-size: 1.25rem;
	font-weight: bold;
	color: rgb(255, 255, 255);
	background-color: rgba(210, 15, 15, 1.0);
}
.sticker-attention-btn a:hover {
	background-color: rgba(210, 15, 15, 0.8);
}
.sticker-attention-btn a span {
	font-size: 13px;
	font-weight: normal;
	display: block;
}


/*== Aside設定 =========================*/
.service-aside {
	margin-bottom: 60px;
}


/*== Footer設定 =========================*/
footer {
	margin: 0;
	padding: 40px 0 0;
	background-color: rgba(249, 249, 240, 1.0);
}
.f-box {
	margin-bottom: 10px;
}
#f-info {
	font-weight: bold;
}
#f-logo {
	max-width: 420px;
	margin: 0 auto;
}
#f-supported {
	margin: 20px 0 10px;
	font-weight: normal;
	color: rgb(0, 160, 233);
}
#f-supported span {
	color: rgb(90, 90, 90);
}
#f-supported img {
	vertical-align: sub;
}
/*ここから休業などのお知らせ設定*/
.f-news {
	padding: 15px 0;
}
.f-news dl {
	width: 70%;
	margin: 0 auto;
	padding: 0 0 7px;
	border-top: 2px solid rgb(180, 180, 180);
	border-bottom: 2px solid rgb(180, 180, 180);
}
.f-news dl dt {
	margin-bottom: 7px;
	padding: 7px 3px;
	color: red;
	border-bottom: 1px solid rgb(180, 180, 180);
}
.f-news dl dd {
	padding: 0 3px;
	font-size: 0.75em;
	font-weight: lighter;
	text-align: left;
}
/*ここまで休業などのお知らせ設定*/
#f-contact {
	margin: 30px 0;
}
#f-contact a, #f-contact a:visited {
	width: 70%;
}
#f-mail {
	margin: 0 0 30px;
}
#f-mail a {
	font-size: 1.7rem;
}
#f-tel {
	font-size: 2.0rem;
}
#f-menu {
	margin-top: 30px;
}
#f-menu a {
	padding: 0 10px;
	font-size: 0.7rem;
	border-left: 1px solid rgba(99, 99, 99, 1.0);
}
#f-menu a:last-child {
	border-right: 1px solid rgba(99, 99, 99, 1.0);
}
#credit {
	padding: 5px 20px;
	font-size: 0.7rem;
	background-color: rgb(255, 217, 0);
	background-image: url(../img/line.webp);
	text-align: center;
}


/*== 表示アニメーション関連設定 =========================*/
.fadeup {
	animation-name: fadeUpAnime;
	animation-duration:0.5s;
	animation-fill-mode:forwards;
	opacity: 0;
}
@keyframes fadeUpAnime {
	from {
		opacity: 0;
		transform: translateY(80px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.fadeleft {
	animation-name: fadeLeftAnime;
	animation-duration:0.5s;
	animation-fill-mode:forwards;
	opacity: 0;
}
@keyframes fadeLeftAnime {
	from {
		opacity: 0;
		transform: translateX(80px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}
.faderight {
	animation-name: faderightAnime;
	animation-duration:0.5s;
	animation-fill-mode:forwards;
	opacity: 0;
}
@keyframes fadeLeftAnime {
	from {
		opacity: 0;
		transform: translateX(0);
	}
	to {
		opacity: 1;
		transform: translateX(80px);
	}
}
.sheet-over-size {
	margin-top: 15px;
	font-size: 15px;
	font-weight: normal;
}




/*=================================
タブレット設定（768px〜1024px）
=================================*/
@media only screen and (max-width: 1025px) {

	body {
		font-size: 14px;
	}

	/*== ここからheader設定 ==========*/
	#header-text {
		padding-right: 70px;
	}

	/*== ここからnav設定 ==========*/
	nav {
		float: right;
	}
	#nav-btn {
		display: block;
	}
	#nav-btn::before {
		font-family: 'Material Icons';
		content: '\e9bd';
		width: 60px;
		margin: 0 auto;
		font-size: 48px;
		text-align: center;
		line-height: 60px;
		display: block;
	}
	.open #nav-btn::before {
		content: '\e5cd';
	}
	#gloval-navi .nav-layer {
		display: none;
		background-color: rgb(255, 217, 0);
		background-image: url(../img/line.webp);
	}
	#gloval-navi .nav-box {
		width: 100%;
		margin-bottom: 30px;
		text-align: left;
	}
	#gloval-navi .nav-box a.nav-cat-name {
		font-size: 20px;
		padding: 0.4em 0.2em;
		cursor: pointer;
	}
	#gloval-navi .nav-box .nav-cat-child a, 
	#gloval-navi .nav-box .nav-cat-child a:visited {
		display: block;
		margin-bottom: 3px;
	}
	#gloval-navi .nav-box .nav-cat-child a::before {
		font-family: 'Material Icons';
		content: '\e5e1';
		margin-right: 3px;
		font-size: 0.6em;
		font-weight: 300;
		color:rgba(210, 210, 210, 1.0);
	}
	#gloval-navi.open .nav-layer {
		display: block;
		width: 100vw;
		height: 100vh;
		padding: 70px 130px 50px 40px;
		position: fixed;
		top: 0;
		bottom: 0;
		right: -100vw;
		z-index: 101;
		animation-name: gnaviOpen;
		animation-duration: 1.0s;
		animation-delay: 0.3ms;
		animation-fill-mode: forwards;
	}
		@keyframes gnaviOpen {
			0% {
				right: -100vw;
			}
			100% {
				right: 0;
			}
		}
	#gloval-navi .nav-box .nav-cat-child a, 
	#gloval-navi .nav-box .nav-cat-child a:visited {
		font-size: 15px;
	}
	.has-child .nav-cat-child {
		background-color: rgba(255, 255, 255, 0);
		box-shadow: none;
		position: relative;
		top: 0;
	}

	/*== ここからfooter設定 ==========*/
	.f-info {
		width: 60%;
		margin: 0 auto;
	}
	#f-logo {
		max-width: 360px;
		margin: 0 auto;
	}
	#f-addr {
		font-size: 0.7rem;
	}
	#f-contact, 
	#f-contact:visited {
		width: auto;
		font-size: 1.05rem;
	}
	#f-tel {
		font-size: 1.8rem;
	}

}



/*=================================
スマホ設定（〜767px）
=================================*/
@media only screen and (max-width: 768px) {

	h2 {
		font-size: 1.8rem;
	}
	h2.page-title {
		font-size: 1.7rem;
	}
	h3 {
		font-size: 1.65rem;
	}
	.dsp-scroll-alert {
		display: block;
	}

	/*== ここからheader設定 ==========*/
	header {
		background-color: rgb(255, 217, 0);
		background-image: url(../img/line.webp);
		position: fixed;
		z-index: 99;
	}
	.header-inner {
		padding: 10px;
	}
	#header-logo {
		width: 160px;
	}
	#header-text {
		display: none;
	}

	/*== ここからnav設定 ==========*/
	#nav-btn {
		display: block;
	}
	#nav-btn::before {
		width: 48px;
		font-size: 36px;
		line-height: 48px;
	}
	#gloval-navi.open .nav-layer {
		padding: 68px 0 30px;
	}
	#gloval-navi .nav-box {
		width: 100%;
		margin-bottom: 10px;
	}
	#gloval-navi .nav-box a.nav-cat-name {
		display: block;
		cursor: pointer;
		/*pointer-events: none;*/
	} 
	#gloval-navi .nav-box .nav-cat-child {
		background-color: rgba(255, 255, 225, 0);
		box-shadow: none;
		position: relative;
	}
	#gloval-navi .nav-box .nav-cat-child a, 
	#gloval-navi .nav-box .nav-cat-child a:visited {
		display: block;
		padding: 5px 0 5px 15px;
	}

	/*== ここからパンクズ設定 ==========*/
	.pankuzu {
		padding: 15px 0;
	}
	.pankuzu::-webkit-scrollbar {
		display: none; /* Chrome, Safari 対応 */
	}
	.pankuzu ul {
		font-size: 10px;
	}

	/*== ここからmain設定 ==========*/
	main {
		padding-top: 68px;
	}
	.sec {
		padding-top: 40px;
	}
	.sec:last-of-type {
		padding-bottom: 40px;
	}
	a.netz-btn-01, 
	a.netz-btn-01:visited {
		width: 80%;
	}
	.sheet-over-size {
		margin-top: 15px;
		font-size: 13px;
		font-weight: normal;
	}

	/*== ここからfooter設定 ==========*/
	.f-info {
		width: 100%;
	}
	.f-news dl {
		width: 90%;
	}
	#f-contact a, 
	#f-contact a:visited {
		width: 90%;
		padding: 1.0em 0.2em;
	}
	#f-menu a {
		margin-bottom: 8px;
		border-left: none;
		display: block;
	}
	#f-menu a:last-child {
		border-right: none;
	}
	#f-menu a::before {
		font-family: 'Material Icons';
		content: '\e5cc';
	}

}



/*=================================
Clearfix設定
=================================*/
.clearfix:after {content: ""; display: block; clear: both;}
.clearfix:before {content: ""; display: block; clear: both;}
.clearfix {display: block;}
