@charset 'utf-8';
/*
	・2024-02-15更新
	・2023-11-29更新
	・2023-11-08更新
 */


html, body {
    height: 100%;
}

body:before {
	content: '';
	display: block;
	width: 100%;
}

svg.svgsymbols {
	width: 0;
	height: 0;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}

svg {
	width: 100%;
	height: 100%;
}

.logotypeset,
.logotypeset span {
	display: inline-block;
	position: relative;
}

.logotypeset svg {
	display: block;
	fill: currentColor;
	position: absolute;
	height: 100%;
	width: 100%;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.logotypeset {
	vertical-align: middle;
	font-size: 0;
	line-height: 0;
	transition: .2s;
	position: relative;
}

.logotypeset span {
	vertical-align: middle;
}

.logotypeset img {
	width: 100%;
	height: auto;
	position: absolute;
	top: 0;
	left: 0;
}


#upper {
	width: 100%;
	position: relative;
}

#upper > .inner {
	width: 100%;
	height: 100%;
	margin: 0 auto;
	position: relative;
}

#logo_header {
	display: flex;
	align-items: center;
	position: relative;
}

#logo_header a {
	display: inline-block;
	text-decoration: none;
	vertical-align: middle;
	position: relative;
}





#bottom {
	width: 100%;
	color: #000;
	clear: both;
	position: relative;
}

#bottom > .inner {
	width: 100%;
	margin: 0 auto;
	line-height: 1.4;
	overflow: hidden;
	position: relative;
}





#navi_global {
	width: 100%;
	min-width: 1024px;
	height: 0;
	position: sticky;
	z-index: 99;
}

#navi_global > .inner {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	justify-content: center;
	width: 100%;
	height: 100%;
	margin: 0 auto;
	padding: 0;
	text-align: center;
}

#navielem {
	width: 100%;
	padding: 0;
}

#navielem {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	text-align: right;
}

body:not(.fixed) #navielem {
	flex-direction: row;
	justify-content: space-between;
	width: 100%;
}

#navielem .elem {
	width: 100%;
	padding: 0;
}

#headerelemnavi.elem {
	margin: 0;
	padding: 0;
	position: relative;
}


#navitab {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	list-style: none;
	width: 100%;
	transform: translateX(0);
}

#navitab li {
	list-style: none;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	border: none;
}

#navitab li.navilower {
	overflow: visible;
	position: relative;
}

#navitab li a {
	display: block;
	padding: 0 16px;
	color: #000;
	line-height: 1.5;
	text-decoration: none;
	position: relative;
}

#navitab li a.current,
#navitab li a:hover {
	color: #666;
}

#navitab .tab {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
}

#navitab .tab .anctitle {
	text-align: center;
}

#navitab .tab span {
	display: block;
	font-size: 16px;
	line-height: 1.6;
	position: relative;
}

#navitab .tab .label {
	font-weight: 700;
}

#navitab .tab .labelsup {
	font-size: .65em;
	line-height: 1;
}

#navitab .navilowercontents {
	display: block;
	min-width: 1024px;
	height: 0;
	opacity: 0;
	background: #f2f2f2;
	text-align: left;
	overflow: hidden;
	position: absolute;
	left: 0;
	transition: .2s;
}

#navitab li.open .navilowercontents {
	height: auto;
	opacity: 1;
	box-shadow: 2px 2px 0 0 rgba(0,0,0,.2);
}

#navitab .navilowercontents li {
	display: block !important;
	width: 100% !important;
	font-size: 16px;
}

#navitab .navilowercontents a {
	margin: 0;
	padding: 10px 15px;
	background: #f6f6f6;
}

#navitab li.navilower a.current + .navilowercontents {
	display: block;
}

#navitab .navilowercontents a.current span {
	font-weight: 700;
}

#navitab .navilowercontents li a.current {
	background: #e0e0e0;
	color: #000;
}

#navitab .navilowercontents li a:hover,
#navitab .navilowercontents li a.hover {
	background: #cdcdcd;
	color: #fff;
}

#navitab .navilowercontents li a:not(:last-child),
#navitab .navilowercontents ul li:not(:last-child) a {
	border-bottom: 1px solid #ccc;
}

#navitab .navilower .tab .label:after {
	display: inline-block;
	content: '\e5e1';
	margin-left: .5em;
	margin-right: -1em;
	font-family: 'Material Symbols Sharp';
	font-weight: normal !important;
	text-align: center;
	transform: rotate(90deg);
	transition: .2s;
}

#navitab .navilower.open .tab .label:after {
	transform: rotate(-90deg);
}

body:not(.fixed) #navitab .navilower .tab .label:after {
	margin-left: 1em;
	margin-right: -2em;
}



#container {
	width: 100%;
	position: relative;
}

#container > .inner {
	width: 100%;
	margin: 0 auto;
	position: relative;
}



#contentheader {
	width: 100%;
	position: sticky;
	left: 0;
	z-index: 90;
}

#contentheader > .inner {
	display: flex;
	width: 100%;
	margin: 0 auto;
	padding: 0 10px;
	overflow: hidden;
	position: relative;
}

#contentheader .heading {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 10px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4em;
}

#contentheader .heading span {
	display: inline-block;
	width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: middle;
}



.screenwrap {
	width: 100%;
	padding: 20px;
}


.blockheader {
	width: 100%;
	font-size: 12px;
	text-align: center;
}

.blockheader:not(:last-child) {
	margin-bottom: 30px;
}

.blockheader .brick {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 1em;
	font-size: 1em;
}

.blockheader h1 {
	font-size: 1em;
	font-weight: normal;
	line-height: 1.5;
	vertical-align: top;
	position: relative;
}

.blockheader .label {
	display: block;
	font-size: 2.2em;
	font-weight: 700;
}

.blockheader .desc {
	max-width: 800px;
	margin: 0 auto;
	margin-top: 1em;
	font-size: 1.4em;
	line-height: 1.6;
}

.blockheader .shoulder {
	display: block;
	font-size: 1.2em;
	font-weight: normal;
	line-height: 1.6;
}

.blockheader .label span,
.blockheader .shoulder span,
.blockheader .desc span {
	display: inline-block;
}

.blockheader .icon {
	display: inline-block;
	width: 60px;
	height: 60px;
	margin-bottom: 10px;
	vertical-align: middle;
	position: relative;
}

.blockheader .icon span {
	display: inline-block;
	width: 100%;
	height: 100%;
}

.blockheader .icon svg {
	fill: currentColor;
}

.blockheader .icon img {
	width: 100%;
	height: auto;
}



.contertbody.empty {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: calc(100% - 285px);
	padding: 30px;
	font-size: 2vw;
	line-height: 1;
}




.breadcrumb {
}

.breadcrumb ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	list-style: none;
	margin: 0 auto;
	padding: 0 20px;
}

.breadcrumb li {
	margin-bottom: 5px;
	padding-right: 1em;
	color: #808080;
	font-size: 12px;
	line-height: 1.2em;
	vertical-align: middle;
}

.breadcrumb li a,
.breadcrumb li a span,
.breadcrumb li .error,
.breadcrumb li .error span,
.breadcrumb li > span,
.breadcrumb li > span span {
	color: #808080;
	position: relative;
	vertical-align: middle;
}

.breadcrumb li > span {
	color: #808080;
	position: relative;
	vertical-align: middle;
}

.breadcrumb li:not(:last-child) a:after,
.breadcrumb li:not(:last-child) > span:after {
	content: '\e5e1';
	display: inline-block;
	width: .65em;
	padding-left: 1em;
	font-size: .65em;
	font-family: 'Material Symbols Sharp';
	font-weight: normal !important;
	text-align: center;
	text-indent: 0;
	line-height: normal;
	vertical-align: middle;
	position: relative;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}



.pagination {
	padding: 20px 0;
}

.pagination ul {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0;
	text-align: center;
}

.pagination ul li {
	display: inline-block;
	margin: 0 2px;
	font-size: 14px;
	vertical-align: top;
}

.pagination ul li > a,
.pagination ul li > span {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 32px;
	height: 32px;
	border: 1px solid #ccc;
	border-radius: 0;
}

.pagination ul li a {
	text-decoration: none;
}

.pagination ul li.current > span {
	background: #7f7f7f;
	color: #fff;
	font-weight: bold;
	cursor: default;
}

.pagination ul li.range > span {
	font-weight: normal;
	border: none;
	background: transparent;
	position: relative;
	cursor: default;
}

.pagination ul li .link_before {
	margin-right: 10px;
}

.pagination ul li .link_next {
	margin-left: 10px;
}

.pagination ul li .link_first,
.pagination ul li .link_before,
.pagination ul li .link_next,
.pagination ul li .link_last {
	background: #ececec;
/* 	text-indent: 100%; */
	white-space: nowrap;
	overflow: hidden;
	position: relative;
}

.pagination ul li.range span:after,
.pagination ul li .link_first:after,
.pagination ul li .link_before:after,
.pagination ul li .link_next:after,
.pagination ul li .link_last:after {
	width: 100%;
	height: 100%;
	font-size: 20px;
	font-family: 'Material Symbols Sharp';
	font-weight: normal !important;
	text-indent: 0;
	line-height: 30px;
	text-align: center;
	position: absolute;
	top: 0;
	left: 0;
}

.pagination ul li.range span:after {
	content: '\e5d3';
}

.pagination ul li .link_first:after {
	content: '\eac3';
}

.pagination ul li .link_before:after {
	content: '\e5cb';
}

.pagination ul li .link_next:after {
	content: '\e409';
}

.pagination ul li .link_last:after {
	content: '\eac9';
}

.pagination ul li a:not(.hidden):hover,
.pagination ul li a:not(.hidden).hover {
	background: #808080;
	color: #fff;
}

.pagination ul li .link_first:hover:after,
.pagination ul li .link_before:hover:after,
.pagination ul li .link_next:hover:after,
.pagination ul li .link_last:hover:after,
.pagination ul li .link_first.hover:after,
.pagination ul li .link_before.hover:after,
.pagination ul li .link_next.hover:after,
.pagination ul li .link_last.hover:after {
	width: 100%;
	height: 100%;
}

.pagination ul li a.hidden {
	opacity: .25;
	cursor: default;
}

.pagecount {
	margin-bottom: 10px;
	text-align: center;
	font-size: 12px;
	line-height: 1;
}




#jump {
	width: 64px;
	height: 64px;
	opacity: .7;
	font-size: 9px;
	overflow: hidden;
	position: fixed;
	bottom: 0;
	right: 0;
	z-index: 99;
}

#jump a {
	display: block;
	width: 100%;
	height: 100%;
	color: #fff;
	text-decoration: none;
	transform: translate(0,100%);
	transition: .2s;
	position: absolute;
	top: 0;
	right: 0;
}

#jump a.show {
	transform: translate(0,0);
}

#jump a span {
	display: inline-block;
	vertical-align: middle;
}

#jump a > span {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 42px;
	height: 42px;
	background: rgba(0,0,0,.2);
	border-radius: 50%;
	font-size: 0;
	text-align: center;
	line-height: 1;
}

#jump a > span span {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	font-size: 36px;
}

#jump a:hover > span,
#jump a.hover > span {
	background: rgba(0,0,0,.5);
}



.btnarea {
	font-size: 16px;
	line-height: 1;
	text-align: center;
}

.btnarea a {
	display: inline-block;
	padding: 14px;
	border: 1px solid;
	background: rgba(255,255,255,.5);
	text-decoration: none;
	outline: none;
	vertical-align: middle;
	overflow: hidden;
	position: relative;
	z-index: 2;
}

.btnarea a:hover,
.btnarea a.hover {
}

.btnarea a span {
	display: inline-block;
	vertical-align: middle;
}

.btnarea a > span:not(.icon) {
	line-height: 1.2;
}



#resultmsgpanel {
	display: none;
	width: 100%;
	opacity: 0;
	font-size: 1rem;
	position: absolute;
	top: 0;
	z-index: -1;
}

#resultmsgpanel > .inner {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	max-width: 1600px;
	margin: 0 auto;
	padding: 10px;
	overflow: hidden;
	position: relative;
}

body.fixed #resultmsgpanel {
	position: fixed;
	top: 100px;
}

#resultmsgpanel.show {
	display: block;
	opacity: 1;
	right: 0;
	z-index: 99;
}

#resultmsgpanel .cover {
	max-width: 400px;
	padding: 1em 2em;
	background: #effcf9;
	border: 4px solid #21d2a8;
	box-shadow: 4px 4px 0px 0px rgba(0,0,0,.1);
	font-size: .85em;
	transition: .7s;
	transform: translateX(500px);
	position: relative;
}

#resultmsgpanel.show.slidein .cover {
	transform: translateX(0);
}

#resultmsgpanel .closebtn {
	position: absolute;
	top: -10px;
	left: -10px;
}

#resultmsgpanel .closebtn .btn {
	display: block;
	background: #fff;
	border: 1px solid #0f9777;
	cursor: pointer;
}

#resultmsgpanel .closebtn .icon > span {
	display: block;
	color: #0f9777;
	font-size: 20px;
	transition: .2s;
}

#resultmsgpanel .closebtn .btn.hover .icon > span {
	color: #21d2a8;
}

#resultmsgpanel.error .cover {
	background: #f9f1f2;
	border-color: #d98286;
	font-weight: 700;
}

#resultmsgpanel.error .closebtn .btn {
	border-color: #d24950;
}

#resultmsgpanel.error .closebtn .icon > span {
	color: #d24950;
}

#resultmsgpanel.error .closebtn .btn.hover .icon > span {
	color: #d98286;
}


.errmsgbox {
	width: 100%;
	height: 100%;
	background-color: rgba(255,255,255,.95);
	opacity: 0;
	font-size: 1rem;
	line-height: 1.6;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
	transition: .2s;
}

.errmsgbox.show {
	opacity: 1;
	z-index: 9999;
}

.errmsgbox > .inner {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	position: relative;
}

.errmsgbox .cover {
	width: 540px;
	padding: 10px;
	background-color: #f4dbdd;
	background-image: repeating-linear-gradient(-45deg, rgba(255,255,255,.8), rgba(255,255,255,.8) 7px, transparent 0, transparent 14px);
	box-shadow: 4px 4px 0px 0px rgba(0,0,0,.1);
	font-size: 1rem;
	position: relative;
}

.errmsgbox .errmsg {
	width: 100%;
	padding: 2em;
	background-color: #fff;
	font-size: .85em;
	position: relative;
}

.errmsgbox .errmsg h3 {
	margin-bottom: 1em;
	padding-bottom: .3em;
	border-bottom: 1px solid;
	color: #996e6e;
	font-size: 1.4em;
	text-align: center;
}

.errmsgbox .errmsg .errmsgbody:not(:last-child) {
	margin-bottom: 1em;
}

.errmsgbox .errmsg .errmsgbody p:not(:last-child) {
	margin-bottom: 1em;
}

.errmsgbox .closebtn {
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
	margin-bottom: -2px;
	position: relative;
	z-index: 10;
}

.errmsgbox .closebtn .btn {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: .5em 1em;
	background: #b20000;
	color: #fff;
	font-size: .85em;
	cursor: pointer;
	transition: .2s;
}

.errmsgbox .closebtn .btn:hover {
	background: #f16668;
}
