@charset "UTF-8";


/* ------------------------------------------
Document
------------------------------------------ */

body{
	color: #333333;
	font-size: 100%;
	font-family: 'Noto Serif JP Medium';
	line-height: 1.5em;
}

html,body{
	height: 100%;
	/*background-color: #ff0000;*/
}

html{
	scroll-behavior: smooth;
}


img{
	width: 100%;
	max-width: 100%;
    height: auto;
}

/* リンク色 */

a{
	color: #385766;
	text-decoration: underline;
}
a:hover{
    color: #466d7f;
    text-decoration: none;
}

/* ------------------------------------------
Layout Settings
------------------------------------------ */

#header_wrapper{
	width:100%;
    height: auto;
	background-color: #ffffff;
	position: relative;
}

#slider_wrapper{
	width:100%;
    height: auto;
	position: relative;
	color: #ffffff;
	border-top: #466d7f 1px solid;
	border-bottom: #466d7f 1px solid;
}

#variable_wrapper{
	/*min-height: 1600px;*/
	display: grid;
	position: relative;
}

/*TOP用*/
.home_p #variable_wrapper{
 	grid-template-rows: auto auto auto auto auto;
  	grid-template-columns: auto;
 	grid-template-areas:
    "content_box01"
    "content_box02"
    "content_box03"
    "content_banner"
    "footer_box";
}

/*下階層用*/
.anniv_info_p #variable_wrapper,
.sitemap_p #variable_wrapper,
.privacy-policy_p #variable_wrapper,
.register_p #variable_wrapper,
.rules_p #variable_wrapper,
.support_p #variable_wrapper,
.list_of_officers_p #variable_wrapper,
.bulletin_p #variable_wrapper,
.handbook_p #variable_wrapper,
.donations_p #variable_wrapper,
.anniv_p #variable_wrapper,
.event_article_p #variable_wrapper,
.event_p #variable_wrapper,
.news_article_p #variable_wrapper,
.news_p #variable_wrapper{
 	grid-template-rows: auto auto auto;
  	grid-template-columns: auto;
 	grid-template-areas:
    "content_box01"
    "content_banner"
    "footer_box";
/*	background-image: url("../images/top_content_pattern.jpg");
	background-repeat: repeat;
	background-position: left top;*/
}

.cm_making_p #variable_wrapper{
 	grid-template-rows: auto auto auto auto auto;
  	grid-template-columns: auto;
 	grid-template-areas:
    "content_box01"
    "content_box02"
    "content_box03"
    "content_banner"
    "footer_box";
}


#content_banner{
	width:100%;
    height: auto;
	background-color: #faf9e9;
	grid-area: content_banner;
}

#footer_wrapper{
	width:100%;
    height: auto;
	background-color: #000000;
	grid-area: footer_box;
}

/* ------------------------------------------
Common Settings
------------------------------------------ */

header{
	width:100%;
    height: auto;
	margin: auto;
}

header div.header_band{
	width:100%;
	margin: 0px;
	padding: 0px;
	background-color: #385766;
}

header h1{
	width: 1024px;
	margin: 0px auto 0px;
	padding: 10px 0px;
	color: #ffffff;
	font-size: 70%;
	line-height: 1em;
}

header div.logo_box{
	width: 1024px;
    height: auto;
	margin: 21px auto 28px;
	padding: 0px;
}

header div.logo_box figure{
	width: 100%;/*(1024px)*/
    height: auto;
}

header div.logo_box a:hover,
header div.logo_box a{
	width: 132px;
    height: auto;
	display: flex;
	color: #333333;
	text-decoration: none;
}

header div.logo_box img{
	width: 132px;
    height: 59px;
	margin: 0px;
	padding: 0px;
}

footer{
	width:100%;
    height: auto;
	/*padding: 50px 0px 0px;*/
	color: #ffffff;
	position: relative;
}

footer div.logo_box,
footer div.sitemap_area{
	width:100%;
    height: auto;
	border-bottom: #2f2f2f 1px solid;
}

footer div.sitemap_area ol{
	width:1024px;
    height: auto;
	margin: 20px auto 20px;
	display: flex;
	justify-content: center;
}

footer div.sitemap_area li{
	width: auto;
    height: auto;
	font-size: 80%;
}

footer div.sitemap_area li::after{
	content:"/";
	margin: 0px 10px 0px 10px;
}

footer div.sitemap_area li.last::after{
	content:"";
	margin: 0px 0px 0px 0px;
}

footer div.sitemap_area li a:hover,
footer div.sitemap_area li a{
	color: #ffffff;
	text-decoration: none;
}

footer .flex-box{
	width:65%;/*(1024px/1300px)*/
	height: auto;
	margin: 40px auto 40px;
	display: flex;
}

footer .address_area{
	width:41%;/*(484px-60px/1024px)*/
    height: auto;
	padding: 0px 60px 0px 0px;
	font-size: 80%;
/*    border-right: solid 1px #2f2f2f;*/
}

footer .address_area dl{
	width: auto;
	height: auto;
	display: flex;
	flex-direction: column;
	font-size: 85%;
	line-height: 1.3em;
}

footer .address_area dt{
	/*width: auto;*/
	width: 180px;
	height: auto;
	margin: 0px 0px 25px;
	line-height: 2.5em;
}

footer .address_area dt span{
	font-size: 250%;
}

footer .address_area dd{
	width: auto;
	height: auto;
	margin: 0px 0px 5px 0px;
	padding: 3px 0px 3px 20px;
	background-repeat: no-repeat;
	line-height: 1.2em;
}

footer .address_area dt a{
	color: #ffffff;
	text-decoration: none;
}

footer .address_area dd.tel-icon{
	background-image: url("../images/f_icon01.png");
	background-position: left top;
}

footer .address_area dd.fax-icon{
	background-image: url("../images/f_icon02.png");
	background-position: left 3px;
}

footer .address_area dd.address-icon{
	background-image: url("../images/f_icon04.png");
	background-position: 2px 3px;
}


footer .sns_area{
	width:53%;/*(539px/1024px)*/
    height: auto;
/*	margin: 0px auto auto 60px;*/
	display: flex;
	flex-direction: column-reverse;
}


footer .sns_area ul{
	width: 100%;/*(424px)*/
	height: auto;
	display: flex;
	flex-direction: row-reverse;
/*	margin: 30px 0px 0px;*/
/*    border-top: solid 1px #2f2f2f;*/
}

footer .sns_area li{
	width: auto;
	height: auto;
	margin: 0px 0px 0px 20px;
	line-height: 1em;
/*	margin: 20px 0px 0px 20px;*/
}


/*******************/

#footer_wrapper small{
	width:100%;
    height: auto;
	display: inline-block;
	padding: 15px 0px 15px;
	font-size: 30%;
	line-height: 3em;
	text-align: center;
	color: #ffffff;
	border-top: #2f2f2f 1px solid;
}

/* ------------------------------------------
Global Navigation Settings
------------------------------------------ */
header nav{
    width: auto;
    height: 35px;
    margin: 0px auto 0px;
/*	display: flex;
	flex-direction: row-reverse;*/
}

header nav ul{
	width: auto;
    height: auto;
	display: flex;
	justify-content: center;
}

header nav li{
	width: auto;
    height: auto;
/*	margin: 0px 10px 0px 0px;
	padding: 0px 10px 0px 0px; */
	margin: 0px 20px 0px 0px;
	padding: 0px 20px 0px 0px; 
	border-right: solid 1px #d3d3d3;
}

header nav li:first-child{
	padding: 0px 20px 0px 20px; 
	border-left: solid 1px #d3d3d3;
}

header nav li:last-child{
	margin: 0px 0px 0px 0px;
}

header nav li a{
	width: auto;
    height: auto;
	padding: 5px 0px 5px 0px; 
	position: relative;
	display: block;
	color: #333333;
	font-size: 95%;
    text-decoration: none;
}

header nav li.current a:hover,
header nav li a:hover{
    color: #466d7f;
}

header nav li a::after {
    content: '';
    /*絶対配置で線の位置を決める*/
    position: absolute;
    bottom: -1px;
    left: -20px;
    /*線の形状*/
    width: 100%;
    height: 2px;
    background:#466d7f;
    /*アニメーションの指定*/
    transition: all .3s;
    transform: scale(0, 1);/*X方向0、Y方向1*/
    transform-origin: center top;/*真ん中基点*/
}

header nav li.glonavi01 a::after {
    /*線の長さ*/
    width: 179%;
    /*left: -20px;*/
}

header nav li.glonavi02 a::after {
    /*線の長さ*/
    width: 148%;
/*    left: -30px;*/
}

header nav li.glonavi03 a::after {
    /*線の長さ*/
    width: 166%;
/*    left: -30px;*/
}

header nav li.glonavi04 a::after {
    /*線の長さ*/
    width: 166%;
}

header nav li.glonavi05 a::after {
    /*線の長さ*/
    width: 166%;
}

header nav li.glonavi06 a::after {
    /*線の長さ*/
    width: 138%;
}

header nav li.current a::after,
header nav li a:hover::after{
	transform: scale(1, 1);/*X方向にスケール拡大*/
}

/*「プルダウンメニュー」エリア用*/

.dropdown_lists {
    /*display: none;*//*デフォルトでは非表示の状態にしておく*/
    visibility: hidden;/*デフォルトでは非表示の状態にしておく*/
    opacity: 0;/*不透明度0*/
    transition: all .3s;/*表示の変化を0.3秒に指定*/
    width: 100%;
	padding: 10px 100px 10px;
    background-color: #def1fa;
    position: absolute;
	justify-content: flex-start;
    top: 175px;
    left: 0;
	z-index: 200;
	border-bottom: #466d7f 1px solid;	
	box-sizing: border-box;
}

.glonavi06:hover .dropdown_lists,
.glonavi04:hover .dropdown_lists,
.glonavi02:hover .dropdown_lists {
    /*display: block;*//*Gナビメニューにホバーしたら表示*/
    visibility: visible;/*Gナビメニューにホバーしたら表示*/
    opacity: 1;/*不透明度1*/
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	justify-content: flex-start;
}

.dropdown_list {
    width: auto;
    height: auto;
	margin: 0px 20px;
	padding: 0px;
    transition: all .3s;
    position: relative;
	border-right: none;
}

.dropdown_list:last-child,
.dropdown_list:first-child{
	border-left: none;
	margin: 0px 20px;
	padding: 0px;
}


.dropdown_list:not(:first-child)::before{
    content: "";
    width: 100%;
    height: 1px;
    position: absolute;
    top: 0;
    left: 0;
}

.dropdown_list:hover {

}

.dropdown_list a {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #333;
    text-decoration: none;
    position: relative;
}

.dropdown_list a::after {
    height: 0px;
}

/* ------------------------------------------
「バナー」スペース用
------------------------------------------ */

/*「外部バナー」エリア用*/
#content_banner .content_box01{
	width: 1024px;
    height: auto;
	margin: 0px auto 0px;
	padding: 30px 0px 30px;
	box-sizing: border-box;
}

#content_banner .content_box01 ul{
	width: 100%;/*(1024px)*/
    height: auto;
/*	display: flex;
	flex-wrap: wrap;
	justify-content: center;*/
}

#content_banner .content_box01 li{
	width: 30%;/*(310px/1024px)*/
    height: auto;
	/*margin: 10px 0px 10px;*/
	margin: 0px 13px 10px;
	line-height: 1em;
}

#content_banner .content_box01 li a{
	width: 98%;/*(308px)*/
    height: auto;
	line-height: 0em;
	border: #bdbcbc 1px solid;
	display: inline-block;
}

#content_banner .content_box01 li a:hover{
	opacity:0.9;
}






/* ------------------------------------------
PageTop Navigation Settings
------------------------------------------ */
#toPageTop{
	width: 65px;
	height: 65px;
	position: fixed;
	bottom: 55px;
	right: 30px;
	z-index: 8;
}

#toPageTop a{
	display: block;
	width: 65px;
	height: 65px;
	background-image: url("../images/top-bt_over.png");
	background-repeat: no-repeat;
	background-position: left top;
}

#wrapper #toPageTop a:hover img {
	visibility: hidden;
}

