@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&family=Noto+Serif+JP:wght@200;300;400;500;600;700;900&display=swap');

 @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');
 @import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@300;400;500;700&display=swap');
 @import url('https://fonts.googleapis.com/css2?family=Kosugi+Maru&display=swap');

/*
font-family: 'Noto Serif JP', serif;
font-family: 'Noto Sans JP', sans-serif;
font-family: 'M PLUS Rounded 1p', sans-serif;
*/ 

/*==========================================================
	RESET
==========================================================*/
html,body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,dl,dt,dd,table,th,td,form,fieldset,object,blockquote,header,footer,section,nav,span,div,a {
	margin: 0px;
	padding: 0px;
	box-sizing: border-box;
	vertical-align: middle;
}
html {
	font-size: 62.5%;
}

img{
	border: 0px;
	vertical-align: bottom;
}

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

table{
	border-spacing: 0px;
	empty-cells: show;
}

a:link{
	text-decoration: none;
}
a:visited{
	text-decoration: none;
}
a:hover{
	text-decoration: none;
}
a:active{
	text-decoration: none;
}

/*==========================================================
	共通設定 (Primary style)
==========================================================*/
body{
	position: relative;
	font-size: 1.6em;
	line-height: 1;
	color: #000000;
	font-weight: 400;
	font-family: 'Noto Serif JP','游明朝', YuMincho, 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', 'HG明朝E', 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', serif;
	background-color: #FFF;
	letter-spacing: 0.1em;

	width: 100%;
	max-width: 420px;
	margin: 0 auto;
}

body a {
	color: #000000;
}


/*==========================================================
	コンテンツ全体
==========================================================*/
	.sp_br {
		display: block;
	}
	.pc_br {
		display: none;
	}

	.animated {opacity: 0;}

/*==========================================================
	body
==========================================================*/
#body {
	width: 100%;
		min-width: 320px;
	margin: 0 auto;
		padding: 0px 0 0 0;
	text-align: center;
	background-color: #FFF;
}

/*==========================================================
	各コンテンツBOX 共通
==========================================================*/

.section {
	position: relative;
	width: 100%;
	margin: 0px 0px;
	padding: 0px 0px;
	text-align: center;
}
.section::after {
	display: block;
	content: '';
	clear: both;
}

.section .innerbox{
	position: relative;
		width: auto;
	margin: 0 auto;
		padding: 20px 20px 20px;
	height: auto;
	font-size: 0px;
	text-align: center;
}

.section .innerbox::after {
	display: block;
	content: '';
	clear: both;
}

	/*==========================================================
		ヘッダー全体
	==========================================================*/
header {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;

	max-width: 420px;
	height: 80px;
	margin: 0 auto;
	font-size: 0;
	z-index: 10;
	
	min-width: unset;
	background-color: transparent;
}
header.bg_blk {
	/*
		background-color: rgba(0,0,0,0.2);
	*/
}
header .innerbox{
	position: relative;
	width: 100%;
	margin: 0 auto;
}

	/* ヘッダーBOX */

header .h_logo {
	width: auto;
	height: 42px;
	position: absolute;
	top: 8px;
	left: 10px;
}


	/*==========================================================
		メニューボタン
	==========================================================*/
#menu_btn {
	position: absolute;
		right: 30px;
	top: 0;
	bottom: 0;
	margin: auto;
	cursor: pointer;

		width: 45px;
	height: 20px;
	z-index: 9;
}

.menu_border {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	
	width: 100%;
	height: 100%;
}
.menu_border span {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;

	width: 2px;
	height: 1px;
	margin: auto;
	background-color: #FFF;
	transform-origin: left center;
	transform: scale(0,1);
}
.bg_blk .menu_border span {
	background-color: #000;
}
#menu_btn.active .menu_border span {
	width: 50px;;
}
.menu_border span:nth-of-type(1) {
	transform: translateY( -10px);
	transition: all .5s 0s;
}
.menu_border span:nth-of-type(2) {
	transform: translateY( -5px);
	transition: all .5s .1s;
}
.menu_border span:nth-of-type(3) {
	transform: translateY(  0px);
	transition: all .5s .2s;
}
.menu_border span:nth-of-type(4) {
	transform: translateY(  5px);
	transition: all .5s .3s;
}
.menu_border span:nth-of-type(5) {
	transform: translateY( 10px);
	transition: all .5s .4s;
}

.menu_border span:nth-of-type(1)::before { transition-delay: 0s; }
.menu_border span:nth-of-type(2)::before { transition-delay: 0.1s; }
.menu_border span:nth-of-type(3)::before { transition-delay: 0.2s; }
.menu_border span:nth-of-type(4)::before { transition-delay: 0.3s; }
.menu_border span:nth-of-type(5)::before { transition-delay: 0.4s; }

.menu_border span::before {
    background-color: #E0AA31;
    content: "";
    height: 1px;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transition: width .5s;
    transition: width .5s;
    width: 0;
}
.menu_border:hover span::before {
    width: 100%;
}
.menu_border:hover span::before {
    width: 100%;
}


	/* === CLOSE表示 ===*/
#close_btn {
	position: absolute;
	right: 20px;
	top: 20px;
	cursor: pointer;

	width: 50px;
	height: 50px;
	z-index: 13;
}

#close_btn span {
  background-color: #666;
  display: block;
  height: 1px;
  position: relative;
  -webkit-transform-origin: left center;
  transform-origin: left center;
  width: 0%;
}
#close_btn span:nth-of-type(1) {
  transform: translate(22px, 0) rotate(-45deg) scale(0, 1);
  transition: transform .2s .2s;
  transform-origin: right center;
  width: 62%;
}
#close_btn span:nth-of-type(2) {
  transform: translate(0, -1px) rotate(45deg) scale(0, 1);
  transition: -webkit-transform .2s 0s;
  transition: transform .2s 0s;
  transform-origin: left center;
  width: 140%;
}
#close_btn span:nth-of-type(3) {
  transform: translate(-10px, 30px) rotate(-45deg) scale(0, 1);
  transition: -webkit-transform .2s .4s;
  transition: transform .2s .4s;
  transform-origin: right center;
  width: 62%;
}

#close_btn.active span:nth-of-type(1) {
  transform: translate(19px, 0) rotate(-45deg) scale(1, 1);
}
#close_btn.active span:nth-of-type(2) {
  transform: translate(0, -1px) rotate(45deg) scale(1, 1);
}
#close_btn.active span:nth-of-type(3) {
  transform: translate(-8px, 26px) rotate(-45deg) scale(1, 1);
}


	/*==========================================================
		メニュー表示
	==========================================================*/
#nav_menu .h_logo {
	position: absolute;
	left: 30px;
	top: 15px;
		width: auto;
		height: 42px;
}

#nav_menu {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	width: 100%;
	max-width: 420px;
	height: 100%;
	margin: 0 auto;
	padding: 100px 20px 10px;
	background-color: #FFFFFF;
	opacity: 0.2;
	transition: 0.2s ease;
    transform: scaleX(0);
    transform-origin: right;
	z-index: 12;
	overflow: auto;

}
#nav_menu.menu-opend {
    transform: scaleX(1);
	opacity: 1;
}


	/* メニューリスト */
#nav_menu .list_box {
	max-width: 1100px;
	margin: 0px auto 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}
#nav_menu .list_box .main_list {
	width: 100%;
	margin-top: 50px;
	text-align: center;
}
#nav_menu .list_box .main_list li {
	margin-bottom: 20px;
	width: auto;
	font-size: 24px;
	font-weight: bold;
}
#nav_menu .list_box .sub_list {
	margin-top: 50px;
		width: 100%;
		text-align: center;
}
#nav_menu .list_box .sub_list li {
	margin-bottom: 20px;
	width: auto;
	font-size: 20px;
	font-weight: bold;
}
#nav_menu .list_box .sub_list li a::before {
	content: '';
	display: inline-block;
	width: 17px;
	height: 15px;
	margin-right: 10px;
	background: url("../img/top/arrow-right.png") no-repeat center center;
	background-size: contain;
}

#nav_menu li a {
	display: inline-block;
	position: relative;
	height: 100%;
	padding: 0 20px;
}

#nav_menu li a::after {
	content: '';
	position: absolute;
	left: 0;
	top: 65%;
	display: block;
	width: 100%;
	height: 1px;
	background-color: #000;
	transition: all 0.2s ease;
    transform-origin: left;
    transform: scaleX(0);
    z-index: -1;
}
#nav_menu li a:hover::after {
    transform-origin: right;
    transform: scaleX(1);
}

#nav_menu li.current a::after {
    transform-origin: right;
    transform: scaleX(1);
}







/*==========================================================
	フッター
==========================================================*/
footer {
	width: calc( 100% - 180px);
	margin-right: 180px;
	padding: 80px 0 100px;
	text-align: center;
	color: #FFFFFF;
	font-size: 0;
	background-color: #000000;
}
footer a {
	color: #FFFFFF;
}

footer .f_logo {
	width: 270px;
}
footer .copy {
	margin-top: 30px;
	font-size: 1.0rem;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 200;
	letter-spacing: 0.1em;
}
/* フッターバナー LINE */
footer .f_line_ban {
	display: block;
	width: auto;
	max-width: 90%;
	height: auto;
	margin: 50px auto -50px;
	padding: 0;
}
/* フッターバナー LINE */
.section.f_line_ban {
	display: block;
	width: auto;
	max-width: 90%;
	height: auto;
	margin: 20px auto 0;
	padding: 0;
}
.section.f_line_ban img {
	width: auto;
	max-width: 100%;
}



/* スマホ フッターボタン LINE テキスト版 */
.section.sp_bottom {
	display: block;
	position: -webkit-sticky;
	position: sticky;
	bottom: 0;

	width: 130px;
	height: auto;
	font-size: 0;
	z-index: 9;
}
.section.sp_bottom .innerbox{
	margin:0;
	padding: 0;
}
.section.sp_bottom a {
	display: block;
	width: 100%;
	height: auto;
	padding: 30px 0;
	line-height: 1.6;
	color: #FFFFFF;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.1em;
	background-color: #00b900;
	font-family: 'Noto Sans JP', sans-serif;
}

/* スマホ フッターボタン LINE バナー版 */
.section.sp_bottom_ban {
	display: block;
	position: -webkit-sticky;
	position: sticky;
	bottom: 0;

	width: auto;
	height: auto;
	font-size: 0;
	z-index: 9;
}
.section.sp_bottom_ban .innerbox {
	margin:0;
	padding: 0;
}
.section.sp_bottom_ban .ban {
	margin:0;
	padding: 0;
}
.section.sp_bottom_ban a {
	display: inline-block;
	width: auto;
	height: auto;
	margin: 0 auto 20px;
	padding: 0 0;
	line-height: 1;
}




