@charset "utf-8";

/* 
00 reset
01 書式設定
02 formカスタム
03 margin padding 各種
04 レイアウト
05 header
06 footer
07 drawerメニュー
08 共通パーツ系
*/

.xdebug-var-dump {
	position: relative;
	bottom: 0;
	right: 0;
	z-index: 9999;
	background: rgba(255,255,0,.8);
	padding: 15px;
	border: 1px solid;
	text-align: left;
}
.remodal-wrapper:has(#remodalPost){
	padding: 0;
	margin: 0;
}
.remodal{padding: 10px 5px !important;}

#remodalPost{
	overflow: hidden;
	background: none;
}

.kill{
	pointer-events: none;
	position: relative;
	overflow: hidden;
}
.kill::before{
	width: 100%;
	height: 100%;
	content: '';
	display: block;
	position: absolute;
	background: rgba(0,0,0,.65);
	top: 0;
	left: 0;
	z-index: 9999;
}

/* 00 reset
------------------------------------------------------------*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	outline: 0;
	font-size: 1em;
}
body,
table,
input, textarea, select, option {
	font-family: HiraKakuProN-W3;
	font-size: 1em;
}
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary {
	display: block;
}
ol, ul {list-style: none;}
blockquote, q {quotes: none;}
:focus {outline: 0;}
ins {text-decoration: none;}
del {text-decoration: line-through;}

a{
	-webkit-tap-highlight-color:rgba(50,35,240,0.6);
	text-decoration: none;
	color: #101010;
}
a:link{color: #101010;}
a:visited{}
a:hover{}
a:active{}
img{vertical-align:top;}

/* 01 書式設定
------------------------------------------------------------*/
/* テキストの位置 */
.txt-left 	{text-align: left;}
.txt-center {text-align: center;}
.txt-right 	{text-align: right;}

.bold{font-weight: bold !important;}
.holder{
	margin: 10px 0;
	text-align: center;
}
.holder img{
	max-width: 100%;
	height: auto;
}

ul.lists,
ol.lists{
	padding: 10px;
	border-radius: 8px;
	background: #eff0f6;
}
ul.lists li,
ol.lists li{
	text-indent: -1em;
	padding-left: 1em;
	margin: 4px 0;
}
ul.lists li span,
ol.lists li span{font-size: .86rem;}
ul.lists li::before{
	content: '・';
	color: #3485ef;
}
ol.lists {counter-reset: item;}
ol.lists li {counter-increment: item;}
ol.lists li::before {
	padding-right: 5px;
	content: counter(item);
	color: #3485ef;
}

/* 02 formカスタム
------------------------------------------------------------*/
/*
textarea {
	width: 100% ;
	height: 100px ;
	margin-bottom: 10px ;
}*/
input[type="text"],textarea,select {
	color: #5a5c63;
	font-size: 100% ;
	width: 100% ;
	padding: 3px ;
	border: 1px solid #ccc;
	border-radius: 5px;
	/*-webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2) inset ;*/
	-webkit-box-sizing: border-box;
}

input[type="text"] {
	padding: 5px;
	vertical-align: middle;
	font-size: 1.24rem;
}
input[type="text"][disabled]{
	background:#dcdcdc !important;
	cursor:not-allowed;
}
textarea {
	height: 8rem;
	padding: 5px 8px;
	font-size: 1.24rem;
	resize:vertical;
}

/* select
-> .slct > select
---------------------------------------*/
.slct{
	display: inline-block;
	position: relative;
}
.slct::before{
	content:'';
	position: absolute;
	top:50%;
	right:8px;
	margin:-5px 0 0 0;
	width:0;
	height:0;
	border-style: solid;
	border-width:7px 4px 0 4px;
	border-color:#333 transparent transparent transparent;
	pointer-events: none;
}
select {
	padding: 2px 25px 2px 5px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	font-size: 1.24rem;
	background-color: #fff;
}
select::-ms-expand {
	display: none;
}

/* radio checkbox
-> label > input+[span[.rb||.cb] || div[.rb||.cb]]
---------------------------------------*/
input[type="checkbox"],
input[type="radio"]{display: none;}
label{
	cursor: pointer;
	display: block;
}
label > span,
label > div{
	padding-left: 30px;
	position: relative;
	display: block;
}
label .cb:before{
	content: "";
	width: 20px;
	height: 20px;
	margin-top: -10px;
	display: block;
	position: absolute;
	top: 50%;
	left: 5px;
	border-radius: 3px;
	background: #dddddd;
	/*border: 1px solid #ddd;*/
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
label .cb:after{
	content: "";
	width: 5px;
	height: 12px;
	margin-top:-9px; 
	display: block;
	position: absolute;
	top: 50%;
	left: 11px;
	transform: rotate(40deg);
	border-width: 0 3px 3px 0;
	border-style: solid;
	border-color: #fff;
}
label input:checked + .cb:before{background: #3485ef;}
/*label input:checked + .cb:after{border-color: #f12b5e;}*/

label .rb:before{
	content: "";
	width: 20px;
	height: 20px;
	margin-top: -10px;
	display: block;
	position: absolute;
	top: 50%;
	left: 5px;
	border-radius: 50%;
	background: #f6f8fc;
	border: 1px solid #ddd;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	
}
label input:checked + .rb:before{background: #f6f8fc; border: 1px solid #3485ef;}
label input:checked + .rb:after{
	content: "";
	width: 10px;
	height: 10px;
	margin-top:-5px; 
	display: block;
	position: absolute;
	top: 50%;
	left: 10px;
	border-radius: 50%;
	background: #3485ef;
}
label > div > span{
	display: block;
	font-size: .75rem;
}

/* 03 margin padding 各種
-------------------------------------------------------*/
.mb3 {margin-bottom:3px;}
.mb5 {margin-bottom:5px;}
.mb10 {margin-bottom:10px;}
.mb15 {margin-bottom:15px;}
.mb20 {margin-bottom:20px;}
.mb25 {margin-bottom:25px;}
.mb30 {margin-bottom:30px;}
.mb35 {margin-bottom:35px;}
.mb40 {margin-bottom:40px;}
.mb50 {margin-bottom:50px;}

.ml10 {margin-left:10px;}
.ml15 {margin-left:15px;}
.ml20 {margin-left:20px;}
.ml25 {margin-left:25px;}
.ml30 {margin-left:30px;}

.mr10 {margin-right:10px;}
.mr15 {margin-right:15px;}
.mr20 {margin-right:20px;}
.mr25 {margin-right:25px;}
.mr30 {margin-right:30px;}

.mt5 {margin-top:5px;}
.mt10 {margin-top:10px;}
.mt15 {margin-top:15px;}
.mt20 {margin-top:20px;}
.mt25 {margin-top:25px;}
.mt30 {margin-top:30px;}

.mtb10{margin: 10px 0;}
.mtb30{margin: 30px 0;}

/* padding
-------------------------------------------------------*/
.pAll5 {padding:5px;}
.pAll10 {padding:10px;}
.pAll20 {padding:20px;}

.ptb3 {padding: 3px 0;}
.plr5 {padding: 0 5px;}
.plr10 {padding: 0 10px;}
.ptb10 {padding: 10px 0;}
.ptb20 {padding: 20px 0;}

.pt5 {padding-top:5px;}
.pt10 {padding-top:10px;}
.pt15 {padding-top:10px;}
.pt20 {padding-top:20px;}
.pt25 {padding-top:25px;}
.pt30 {padding-top:30px;}

.pl5 {padding-left:5px;}
.pl10 {padding-left:10px;}
.pl15 {padding-left:15px;}
.pl20 {padding-left:20px;}
.pl25 {padding-left:25px;}
.pl30 {padding-left:30px;}

.pr5 {padding-right:5px;}
.pr10 {padding-right:10px;}
.pr15 {padding-right:10px;}
.pr20 {padding-right:20px;}
.pr25 {padding-right:25px;}
.pr30 {padding-right:30px;}

.pb10 {padding-bottom:10px;}
.pb15 {padding-bottom:15px;}
.pb20 {padding-bottom:20px;}
.pb25 {padding-bottom:25px;}
.pb30 {padding-bottom:30px;}


/* 04 レイアウト
------------------------------------------------------------*/
/*

基本サイズ12px	基本サイズ13px	基本サイズ14px	基本サイズ16px
10px 	 84%			10px 	 77%			10px 	 72%			10px 	 63%
11px 	 92%			11px 	 85%			11px 	 79%			11px 	 69%
12px 	100%			12px 	 93%			12px 	 86%			12px 	 75%
13px 	109%			13px 	100%			13px 	 93%			13px 	 81%
14px 	117%			14px 	108%			14px 	100%			14px 	 88%
15px 	125%			15px 	116%			15px 	108%			15px 	 94%
16px 	134%			16px 	124%			16px 	115%			16px 	100%
17px 	142%			17px 	131%			17px 	122%			17px 	106%
18px 	150%			18px 	139%			18px 	129%			18px 	113%
19px 	159%			19px 	147%			19px 	136%			19px 	119%
20px 	167%			20px 	154%			20px 	143%			20px 	125%
21px 	175%			21px 	162%			21px 	150%			21px 	131%
22px 	184%			22px 	170%			22px 	158%			22px 	138%
23px 	192%			23px 	177%			23px 	165%			23px 	144%
24px 	200%			24px 	185%			24px 	172%			24px 	150%
25px 	209%			25px 	193%			25px 	179%			25px 	156%
26px 	217%			26px 	200%			26px 	186%			26px 	163%
-------------------------------------------------------*/
html, body {
	height: 100%;
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}
html{font-size: 14px;}
body{
	text-align: center;
	line-height: 1.5;
	font-size:14px;
	font-family: ArialMT, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", メイリオ, sans-serif;
	-webkit-text-size-adjust: none;
	color:#333;
	background-color: #3485ef;
}
#wrapper {
	min-width:320px;
	min-height: calc(100vh - 60px);
	padding-top: 60px;
	display: flex;
	flex-direction: column;
	text-align:left;
	background-color: #fff;
	/*background-color: #3485ef;*/
}
#wrapper section {
	flex: 1;
	padding: 10px;
	background: #fff;
}
#wrapper section h2{
	margin: 15px 0;
	font-size: 1.43rem;
}
#wrapper section h2 span{font-size: 1.15rem;}
#index #wrapper{display: block;}

/* パンくずリスト
---------------------------------------  */
.breadcrumb{
	padding: 3px 0;
	overflow-x: auto;
	-webkit-overflow-scrolling:touch;
	white-space: nowrap;
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
}
.breadcrumb::-webkit-scrollbar{height: 5px;}
.breadcrumb::-webkit-scrollbar-track{background: #f1f1f1;}
.breadcrumb::-webkit-scrollbar-thumb {background: #bcbcbc;}

.breadcrumb li{
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	justify-content: flex-start;
	align-items: center;
	gap: 5px;
	margin-right: 7px;
	font-size: .72rem;
}
.breadcrumb li a{text-decoration: underline; color:#3485ef;}
.breadcrumb li:not(:last-child)::after{
	content: '';
	width: 6px;
	height: 6px;
	border-width: 1px 0 0 1px;
	border-style: solid;
	border-color: #3485ef;
	transform: rotate(135deg);
	display: block;
}

/* 05 header
------------------------------------------------------------*/
.stash header {transform: translateY(-100%);}
header {
	min-width: 320px;
	width: 100%;

	position: fixed;
	top: 0;
	left: 0;
	transition: transform 0.3s ease;
	z-index: 1000;
	will-change: transform;
	background: linear-gradient(to right,#222 0%,#222 50%,#3485ef 51%,#3485ef 100%);
}
header #hdInner{
	/*max-width: 1000px;*/
	height: 60px;
	padding: 0 10px;
	margin: 0 auto;
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	justify-content: space-between;
	align-items: center;
	background: #3485ef;
}
header #hdInner h1 img{
	width: 220px;
	height: auto;
}
header #hdInner h1{
	height: 100%;
	padding: 0 10px;
	margin-left: -10px;
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	background: #222;
	position: relative;
}
header #hdInner h1::after{
	content: '';
	width: 0;
	height: 0;
	margin: auto;

	position: absolute;
	top: 0;
	right: -27px;
	border-style: solid;
	border-color: transparent transparent transparent #222;
	border-width: 0 0 60px 28px;
	z-index: 10;
}
header #hdInner ul{
	display: -webkit-flex;
	display: flex;
	flex-flow: row-reverse wrap;
	text-align: center;
}
header #hdInner ul li a{
	width: 52px;
	height: 52px;
	padding: 30px 5px 5px;
	text-decoration: none;
	font-size: .84rem;
	color: #fff;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	display: block;
}

/* メニューbtn
------------------------------------------ */
header #nvBtn{position: relative;}

/* MENU
---------------------- */
#mn span{
	position: relative;
	display: inline-block;
	width: 6px;
	height: 6px;
	background: #fff;
	border-radius: 50%;
	vertical-align: middle;
	box-sizing: border-box;
	text-indent: -9999px;
	position: absolute;
	top: 15px;
	left: calc(50% - 3px);
}
/* 左右の点 */
#mn span:before,
#mn span:after{
	content: "";
	position: absolute;
	top: 50%;
	width: 6px;
	height: 6px;
	background: #fff;
	border-radius: 50%;
	transform: translateY(-50%);
}
#mn span:before{left: -10px;}
#mn span:after{right: -10px;}

/* CLOSE
---------------------- */
#cl span{
	display: inline-block;
	text-indent: -9999px;
}
#cl span::before,
#cl span::after{
	width: 22px;
	height: 3px;
	margin-left: -12px;
	display: block;
	content: '';
	background-color: #fff;
	border-radius: 3px;
	position: absolute;
	top: 16px;
	left: 50%;
}
#cl span::before {transform: rotate(45deg);}
#cl span::after {transform: rotate(-45deg);}

/* 検討中btn
------------------------------------------ */
header #nvCsd a{
	color:#333;
	background-image: url(../img/icon/icn_fav.png);
	-webkit-background-size: 22px 20px;
	background-size: 22px 20px;
	background-repeat: no-repeat;
	background-position: 50% 14px;
	position: relative;
	text-align: center;
	text-indent: -9999px;
}
header #nvCsd span{
	min-width: 1.2em;
	line-height: 1.2em;
	position: absolute;
	top: 22px;
	right: 4px;
	padding: 3px;
	background: #ff1233;
	border-radius: 4em;
	color: #fff;
	font-weight: bold;
	text-indent: 0;
}

/* 06 footer
------------------------------------------------------------*/
footer{
	min-width: 320px;
	text-align: left;
	background: #f4f4f9;
	border-top: 1px solid #cdcee3;
}
/* #nf #ftInner dl,
#index #ftInner dl{padding: 10px;} */
#ftInner dl{padding: 10px;}
#ftInner dl > dt{
	padding: 8px 0;
	color: #3485ef;;
	font-weight: bold;
	font-size: 1.15rem;
	border-bottom: 1px solid #cdcee3;
}
#ftInner dl > dd{border-bottom: 1px solid #cdcee3;}
#ftInner dl > dd > a{
	padding: 15px 20px 15px 5px;
	display: block;
	position: relative;
}
#ftInner dl > dd >  a::after{
	content: '';
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-width: 1px 1px 0 0;
	border-style: solid;
	border-color: #000;
	transform: rotate(45deg);
	display: block;
	position: absolute;
	top: 50%;
	right: 10px;
}

#pagetop{text-align: center;}
#pagetop a{
	padding: 10px 35px 10px 55px;
	display: inline-block;
	background: #fff;
	border: 1px solid #333;
	border-radius: 1.5em;
	font-size: .86rem;
}
#pagetop a span{
	position: relative;
}
#pagetop a span::before,
#pagetop a span::after{
	content: '';
	display: block;
	position: absolute;
}
#pagetop a span::before{
	width: 10px;
	border-top: 2px solid #333;
	position: absolute;
	top: 3px;
	left: -17px;
}
#pagetop a span::after{
	content: '';
	width: 6px;
	height: 6px;
	margin-top: -5px;
	border-width: 2px 2px 0 0;
	border-style: solid;
	border-color: #333;
	transform: rotate(-45deg);
	display: block;
	position: absolute;
	top: 13px;
	left: -16px;
}

#ftlogo{
	padding: 15px 0;
	margin-top: 15px;
	/*text-align: center;*/
	text-align: left;
}
#ftlogo p{text-align: center;}
#ftlogo p img{
	width: 220px;
	height: auto;
}
#ftlogo div{
	padding: 10px 0;
	display: -webkit-flex;
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	gap : 8px;
}
#ftlogo div p{font-weight: bold; font-size: 1.15rem;}
#ftlogo div p:after{content: ':';}
#ftlogo div span a{white-space: normal;}

#ftlogo ul{
	padding: 15px 0;
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	gap: 10px;
	justify-content: center;
}

footer #ftLinks{
	padding: 0 5px;
	margin: 20px 0;
	display: -webkit-flex;
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	font-size: .86rem;
}
footer #ftLinks li:not(:last-child)::after{content: '｜'; color:#cdcee3;}
footer #ftLinks li a{text-decoration: none;}

#copyright{
	text-align: center;
	font-size: .86rem;
}
#copyright p{
	margin: 20px 0;
	color: #808080;
}
#copyright small{
	padding: 5px 0;
	display: block;
	background: #333;
	color: #fff;
	font-size: .72rem;
}

/* 07 drawerメニュー
------------------------------------------------------------*/
/*#mn{}*/
#cl{display: none;}
.open #cl{display: block;}
.open #mn{display: none;}

/* drawerメニュー（動作用）
---------------------------------------*/
.open {
	position: fixed;
	width: 100%;
	height: 100%;
}
.open #overlay{
	z-index: 999;
	display: block;
	opacity: 1;
}
.open #drawer{
	-webkit-transform: translate3d(0, 0 ,0);
	transform: translate3d(0, 0 ,0);
	opacity: 1;
	pointer-events: inherit;
}
#drawer{
	width: 100vw;
	min-height: calc(100vh - 60px);
	min-width: 320px;
	-webkit-transform: translate3d(100vw, 0 ,0);
	transform: translate3d(100vw, 0 ,0);
	transition:
		opacity 0.2s ease-in-out,
		transform 0.2s ease-in-out
	;
	opacity: 0;
	pointer-events: none;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	
	position: fixed;
	z-index: 9999;
	top: 60px;
	right: 0;
	text-align: left;
	white-space: nowrap;
	background: rgba(63,55,79,.9);
}
#overlay{
	width: 100%;
	height: 120vh;
	background: rgba(0,0,0,0.3);
	position: fixed;
	top: 0;
	left: 0;
	z-index: -999;
	opacity: 0;
	text-indent: -9999px;
	transition: opacity .2s;
}


/* drawer・modalメニュー
---------------------------------------*/
#drawerInner{
	height: 100vh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	background: #fff;
	font-size: 1.17rem;
}
#drawerInner li > span,
#drawerInner li > a{
	display: block;
	padding: 15px 5px 15px 20px;
	color: #333;
	text-decoration: none;
	cursor: pointer;
	position: relative;
}



.drw_lv1 p:not(:first-child) {border-top: 1px solid #ddd;}
.drw_lv2{background: #eff0f6; text-indent: .5rem;}
.drw_lv2 a{border-top: 1px solid #cdcee3; display: block;}
.drw_lv2 a span{color: #3988ef;}
.drw_lv2 .arR::after{border-color: #3988ef;}

.state{
	padding: 15px 5px 15px 20px;
	color:#333;
	position: relative;
}
.state.acd::before {
	content: '';
	position: absolute;
	width: 11px;
	height: 1px;
	background-color: currentColor;
	top: 50%;
	right: 12px;
}
.state.acd::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 12px;
	width: 11px;
	height: 1px;
	background-color: currentColor;
	-webkit-transform: rotate(90deg);
	transform: rotate(90deg);
}
.state.acd.act::after {display: none;}
.state a{color: #333;}
a.evn{pointer-events: none;}


#drwMenu dt{
	padding: 15px;
	background: #d5e7ff;
	color: #3485ef;
	font-weight: bold;
	border-bottom: 1px solid #ddd;
}
#drwMenu dd ul li{
	text-indent: .5em;
	border-bottom: 1px solid #ddd;
}
#drwMenu dd ul li.arR::after{
	border-width: 2px 2px 0 0;
	border-color: #3988ef;
}



#remodal_srch{background: none;}
#srch{
	background: #fff;
	border-radius: 10px;
	overflow: hidden;
	text-align: left;
}
#srch li > span,
#srch li > a{
	display: block;
	padding: 15px 5px 15px 20px;
	color: #333;
	text-decoration: none;
	cursor: pointer;
	position: relative;
}

.hd_return{
	padding: 15px 0;
	background: #3485f0;
	color: #fff;
	text-align: center;
	position: relative;
	font-size: 1.29rem;
	font-weight: bold;
	text-align: center;
}
.hd_return .pnclose{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 10px;
	font-size: .86rem;
	cursor: pointer;
}


#panelBox{
	min-width: 100vw;
	width: 100vw;
	height: 100vh;
	margin-right: -100vw;
	position: fixed;
	z-index: 9999;
	top: 0;
	right: 0;
	text-align: left;
	white-space: nowrap;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	background: #fff;
}
.formlist li{border-bottom: 1px solid #ddd;}
.formlist li label{
	display: block;
	padding: 15px 5px 15px 20px;
	color: #333;
	text-decoration: none;
	cursor: pointer;
	position: relative;
}
#srch .flx{
	padding: 15px 10px;
	width: 100%;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	gap: 10px;
}
#srch .flx > *{
	padding: 5px 0;
	flex:1 1 auto;
}

.chkall{
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	justify-content: space-between;
}
.acd-lv2{
	display: block;
	text-indent: -9999px;
	flex:0 0 15%;
	position: relative;
}
.acd-lv2::before {
	content: '';
	position: absolute;
	width: 11px;
	height: 1px;
	background-color: currentColor;
	top: 50%;
	right: 12px;
}
.acd-lv2::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 12px;
	width: 11px;
	height: 1px;
	background-color: currentColor;
	-webkit-transform: rotate(90deg);
	transform: rotate(90deg);
}
.acd-lv2.act::after {display: none;}


#snackwrap{
	width: 100%;
	height: 0;
	display: -webkit-flex;
	display: flex;
	flex-flow: row;
	justify-content: center;
	bottom: 0;
	position: fixed;
	z-index: 99999;
}
#snackbar{
	width: 100%;
	padding: 10px 8px;
	background: #333;
	border-radius: 7px;
	font-size: 14px;
	color: #fff;
	position: fixed;
	bottom: -200px;
}
.noticeon{animation:g-snackbar-show 500ms cubic-bezier(.4,0,.2,1) both;}
.noticeoff{animation:g-snackbar-hide 400ms cubic-bezier(.4,0,.2,1) both;}

.toast{animation:g-snackbar 2000ms cubic-bezier(.4,0,.2,1) both;}
@keyframes g-snackbar {
 0% {
	pointer-events:none;
	bottom: -200px;
 }
 30% {
	bottom: 0;
 }
 80% {
	bottom: 0;
 }
 100% {
	bottom: -200px;
 }
}

#snackbar dl{
	padding: 0;
	margin: 0;
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	gap: 10px;
	justify-content: center;
	align-items: center;
}
#snackbar dl dd#notice_message{
	flex:1 1 auto;
	text-align: left;
}
#snackbar dl dd span{
	padding: 8px 20px;
	color:#4285f4;
	border-radius: 5px;
	cursor: pointer;
	display: block;
}
#snackbar dl dd span:hover{background: #4a4a4a;}

@keyframes g-snackbar-show {
 from {
	bottom: -200px;
 }
 to {
	bottom: 0;
 }
}

@keyframes g-snackbar-hide {
 from {
	bottom: 0;
 }
 to {
	bottom: -200px;
 }
}

#snackbar .cross{
	width: 38px;
	height: 38px;
	position: relative;
	display: block;
	cursor: pointer;
	text-indent: -9999px;
}
#snackbar .cross:before,
#snackbar .cross:after{
	left:11px;
	background: #fff;
}

#cancel{
	padding: 15px 0;
	text-align: center;
}
#cancel button{
	padding: 10px 20px;
	position: relative;
	text-align: center;
	text-decoration: none;
	font-size: 1.34rem;
	border: 1px solid #2d2d2d;
	border-radius: 5px;
	display: inline-block;
	-webkit-box-shadow: 0	3px	#ebebeb;
	box-shadow: 0	3px	#ebebeb;
	background: #fff;
	color: #333;
}

#cancel button span{
	position: relative;
	padding: 5px 0 5px 20px;
}
#cancel button span:before,
#cancel button span:after{
	width: 16px;
	height: 3px;
	margin-top: -2px;
	background: #000;
	border-radius: 4px;
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
}
#cancel button span:before{	transform: rotate(45deg);}
#cancel button span:after{	transform: rotate(-45deg);}


/* 08 共通パーツ系
------------------------------------------------------------*/
.btn{padding: 5px 15px;}
.btn a,
.btn button,
.btn input[type="submit"]{
	width: 100%;
	border: 2px solid transparent;

	padding: 14px 20px;
	text-align: center;
	text-decoration: none;
	font-size: 1.34rem;
	font-weight: bold;


	background: #3485ef;
	border-radius: 8px;
	color: #fff;

	display: block;
	position: relative;
	cursor: pointer;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

.btn.edge a,
.btn.edge button,
.btn.edge input[type="submit"]{
	border: 2px solid #2d2d2d;
	background: #fff;
	color :#101010;
}
.btn.round a,
.btn.round button{border-radius: 1.5em;}

.more a::after,
.more button::after{
	content: '';
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-width: 1px 0 0 1px;
	border-style: solid;
	border-color: #fff;
	transform: rotate(135deg);
	display: block;
	position: absolute;
	top: 50%;
	right: 15px;
}
.more.edge a::after{border-color: #333;}
.btn.brwn a,
.btn.brwn button{background: #a78c4f;}


.edit span,
.search span,
.tel span,
.mail span,
.line span,
.site span,
.insta span,
.fb span,
.xbtn span{
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
	gap: 5px;
}
.edit span::before{
	width: 15px;
	height: 15px;
	content: '';
	display: block;
	background: url(../img/icon/icn_edit.png) 0 0 no-repeat;
	-webkit-background-size: contain;
	background-size: contain;
}
.search span::before{
	width: 15px;
	height: 15px;
	content: '';
	display: block;
	background-image: url(../img/icon/icn_search_w.png);
	background-position: 0 0;
	background-repeat: no-repeat;
	-webkit-background-size: contain;
	background-size: contain;
}
.edge.search span::before{background-image: url(../img/icon/icn_search.png);}

.tel span::before,
.mail span::before,
.line span::before,
.site span::before,
.insta span::before,
.fb span::before,
.xbtn span::before{
	width: 25px;
	height: 26px;
	content: '';
	display: block;
	background-position: 0 0;
	background-repeat: no-repeat;
	-webkit-background-size: contain;
	background-size: contain;
}
.tel span::before {background-image: url(../img/icon/icn_tel.png);}
.mail span::before{background-image: url(../img/icon/icn_mail.png);}
.line span::before{background-image: url(../img/icon/icn_line.png);}
.site span::before{background-image: url(../img/icon/icn_site.png);}
.insta span::before{background-image: url(../img/icon/sns_insta.png);}
.fb span::before{background-image: url(../img/icon/sns_fb.png);}
.xbtn span::before{background-image: url(../img/icon/sns_x.png);}

.login{
	margin: 15px 0 30px;
	text-align: center;
}
.login a{
	padding: 5px 25px 5px 30px;
	display: inline-block;
	color: #fff;
	background: #3485f0;
	border: 1px solid #1567d2;
	border-radius: 8px;
	font-size: .86rem;
	font-weight: bold;
}
.login span{
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
.login span::before{
	width: 15px;
	height: 18px;
	content: '';
	display: block;
	background-position: 0 0;
	background-repeat: no-repeat;
	-webkit-background-size: contain;
	background-size: contain;
}
.login span::before{background-image: url(../img/icon/icn_login.png);}


.txtlink{
	color: #016ee3 !important;
	text-decoration: underline;
}

/* 注釈
---------------------------------------  */
.annotation::before{content: '※'; color: #ff3838;}
.required{
	padding: 2px 5px;
	background: #f26896;
	color: #fff;
	font-weight: normal;
	border-radius: 5px;
	font-size: .86rem;
	white-space: nowrap;
}
.any{
	padding: 2px 5px;
	background: #89abd7;
	color: #fff;
	font-weight: normal;
	border-radius: 5px;
	font-size: .86rem;
	white-space: nowrap;
}

.errors{
	padding: 10px;
	margin: 10px 0;
	border: 2px solid #f00;
	border-radius: 8px;
	color: #f00;
}
.errors li{list-style: disc inside;}

.flx{
	display: -webkit-flex;
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	gap: 3px;
	padding: inherit;
}

.discon{
	background: #bbb !important;
	color: #999 !important;
	pointer-events: none;
}
.discon span::before{opacity: .4;}
.copydata{display: none;}

/*.dis{display: none;}*/

/* ページタイトル
---------------------------------------  */
.sub{
	padding: 3px 5px;
	background: #20283f;
	color: #fff;
}
.sub h1{display: inline-block; font-weight: normal;}
.sub:before{
	width: .7em;
	height: .7em;
	margin-right: 3px;
	display: inline-block;
	background: #f17b24;
	border-radius: 100%;
	content: '';
	vertical-align: middle;
}

/* テーブルレイアウトセット(ul>li>dl>[dt+dd])
---------------------------------------  */
ul.tbl{
	/*border: 2px solid #000;*/
	border-radius: 5px;
	overflow: hidden;
}
ul.tbl li:last-child{margin-bottom: -1px;}
ul.tbl li dl{
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	overflow: hidden;
	justify-content: center;
	/*align-items: stretch;*/
	align-items: center;
}

ul.tbl li dl dt{
	padding: 2px;
	flex: 0 0 7em;
	font-weight: normal;
	font-size: .86rem;
	line-height: 20px;
	color:#fff;
	border-bottom: 1px solid #fff;
}
ul.tbl li dl dd{
	padding: 2px;
	flex: 1 1 0;
	/*white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;*/
	font-size: 1.15rem;
	/*border-bottom: 1px solid #000;*/
}

/* pager
---------------------------------------  */
.pagerset{
	margin: 10px 0;
	text-align: center;
}
.pagerset dl dt span{font-weight: bold;}
.pagerset dl dd{font-size: .86rem;}
ol.pager{
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	gap: 3px;
}
ol.pager{
	margin: 10px 0;
	display: -webkit-flex;
	display: flex;
	flex-flow: row nowrap;
	justify-content: center;
	align-items: center;
	gap: 3px;
}
ol.pager li span,
ol.pager li a{
	width: 2em;
	height: 2em;
	border-radius: 1.5em;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	border: 1px solid #4c4c4c;
}
ol.pager li span{
	color: #fff;
	background: #4c4c4c;
}
ol.pager li.prev a,
ol.pager li.next a{border: none;}

/* arrow
---------------------------------------  */
.arR{position: relative;}
.arR:after{
	content: '';
	width: 8px;
	height: 8px;
	margin-top: -5px;
	border-width: 1px 1px 0 0;
	border-style: solid;
	border-color: #fff;
	transform: rotate(45deg);
	display: block;
	position: absolute;
	top: 50%;
	right: 15px;
}
.arL{position: relative;}
.arL:before{
	content: '';
	width: 10px;
	height: 10px;
	margin-top: -5px;
	border-width: 1px 0 0 1px;
	border-style: solid;
	border-color: #000;
	transform: rotate(-45deg);
	display: block;
	position: absolute;
	top: 50%;
	left: 8px;
}
.arTriR{position: relative;}
.arTriR:after {
	content:'';
	position: absolute;
	top:50%;
	right:-16px;
	margin:-10px 0 0 0;
	width:0;
	height:0;
	border-style: solid;
	border-width: 8px 0 8px 14px;
	border-color: transparent transparent transparent #000;
}

.cross{position: relative;}
.cross:before,
.cross:after{
	width: 16px;
	height: 3px;
	margin-top: -2px;
	background: #000;
	border-radius: 4px;
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
}
.cross:before{	transform: rotate(45deg);}
.cross:after{	transform: rotate(-45deg);}


.execute-hidden {
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	/* visibility: hidden !important; */
}

.loading{
  color: #ffffff;
  font-size: 10px;
  margin: 100px auto;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  position: relative;
  text-indent: -9999em;
  -webkit-animation: loadAnimation 1.3s infinite linear;
  animation: loadAnimation 1.3s infinite linear;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
}
@-webkit-keyframes loadAnimation {
  0%,
  100% {
    box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
  }
  12.5% {
    box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
  }
  25% {
    box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
  }
  37.5% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
  }
  50% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
  }
  62.5% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
  }
  75% {
    box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
  }
  87.5% {
    box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
  }
}
@keyframes loadAnimation {
  0%,
  100% {
    box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
  }
  12.5% {
    box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
  }
  25% {
    box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
  }
  37.5% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
  }
  50% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
  }
  62.5% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
  }
  75% {
    box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
  }
  87.5% {
    box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
  }
}
