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

:root{
	--input-background: 255,255,255;
	--input-border: 255,0,0;
	--input-color: 0,0,0;
	--spinner-time: 1s;
	}

body{
	background: rgb(var(--base-bg));
	color: rgb(var(--base-fg));
	fill: currentColor;
	font-family: 'Noto Sans JP', sans-serif;
	text-align: justify;
	overflow-wrap: break-word;
	word-wrap: break-word;
	line-height: 1em;
	}
/*
フォーム入力時に選択範囲が判り難いのでコメントアウト
	::selection {
		background: rgb(var(--base-fg));
		color: rgb(var(--base-bg));
		}
	::-moz-selection {
		background: rgb(var(--base-fg));
		color: rgb(var(--base-bg));
		}
*/
	_::content, _:future, body:not(*:root) {
		/* Chromeのハック */
		/*フォント細いって言われたとき
		font-weight: 500;
		*/
		}
	_::-webkit-full-page-media, _:future, :root body{
		/* safariのハック */
		}

a,
button{
	color: inherit;
	fill: currentColor;
	transition-property: color,text-decoration,background,background-color,background-size,border,border-color,box-shadow,fill,filter,opacity;
	transition-duration: 0.2s;
	transition-timing-function: ease-out;
	}

main{}
	main a{
		color: rgb(var(--btn-primary-fg));
		text-decoration: underline;
		}
	main p{
		line-height: 1.7em;
		}
	main :is(input,textarea,select){
		background-color: rgb(var(--textarea-bg));
		border-color: rgb(var(--textarea-bd));
		border-radius: 5px;
		color: rgb(var(--textarea-fg));
		}
		main :where(input,textarea,select):focus{
			/*border: 1px solid rgb(var(--base-fg));*/
			}
	main :where(input[type="radio"],input[type="checkbox"]){}
		main :where(input[type="radio"],input[type="checkbox"])+label{
			line-height: 1.5em;
			padding: 0.1em ;
		}
		input[type="radio"]+label{
			line-height: 1.5em;
			padding: 0.5em 1em;
		}

main :where(input[type="radio"], input[type="checkbox"]) + label i {
	/*color: #fff; 直書きでテスト中 */
	background-color: white;/* 直書きでテスト中 */
	border: solid 1px black;/* 直書きでテスト中 */
 }

			main :where(input[type="radio"],input[type="checkbox"])+label i{
				background: rgb(var(--base-bg));
				border: 1px solid currentColor;
				font-size: 1.2em;
				transform: translateY(0.1em);
				
/*				color: rgba(var(--base-fg),0.3); 元々のcss */
/*				color: rgb(var(--base-bg));*/
				color: #1AFF00; /* 直書きでテスト中 */
				
				/*color: #ffffff; 直書きでテスト中 */

				fill: currentColor;
				background-color: white;/* 直書きでテスト中 */
				border: solid 1px black;/* 直書きでテスト中 */
				}

			main :where(input[type="radio"],input[type="checkbox"]):checked+label{}
			main :where(input[type="radio"],input[type="checkbox"]):checked+label i{
				-webkit-animation: checked 0.2s forwards;
				animation: checked 0.2s forwards;
				background: rgb(var(--textarea-bg));
				border-color: transparent;
				/*	color: rgba(var(--textarea-fg));	*/
				color: black;
				}

				main :where(input[type="radio"]):checked+label{
					border: 1px solid white;
					background-color: #666666;
					border-radius: 3px;
				}


			@-webkit-keyframes checked{
				30% {box-shadow: 0 0 0 1em rgb(var(--textarea-bg),0.5);}
				}
			@keyframes checked{
				30% {box-shadow: 0 0 0 1em rgb(var(--textarea-bg),0.5);}
				}
			main :where(input[type="checkbox"]):checked+label svg{
				/* color: #000000; テスト中 */
				}



#wrapper{
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	min-height: 100vh;
	margin: auto;
	}

#header,
#nav,
#main{
	order: -1;
	}

#header{
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	display: flex;
	justify-content: space-between;
	background: rgb(var(--humb-bg));
	color: rgb(var(--humb-fg));
	z-index: 110;
	}

#siteName{
	position: relative;
	display: flex;
	grid-gap: 1em;
	align-items: center;
	width: calc(100% - 5em);
	margin-right: auto;
	}
	#siteName h1{
		font-weight: 700;
		line-height: 1.5em;
		white-space: nowrap;
		text-overflow: ellipsis;
		overflow: hidden;
		}
	#siteName figure{
		order: -1;
		}
	#siteName svg{
		width: auto;
		height: 2em;
		}
	#siteName a{
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		opacity: 0;
		}

#navButton{
	position: relative;
	flex: 0 0 4em;
	width: 4em;
	height: 4em;
	margin: 0 0 0 auto;
	padding: 0;
	background: rgb(var(--humb-bg));
	border: none;
	color: transparent;
	text-align: center;
	box-sizing: border-box;
	overflow: hidden;
	cursor: pointer;
	}
	#navButton svg{
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		}
	#navButton line{
		stroke: rgb(var(--humb-fg));
		stroke-width: 2px;
		stroke-linecap: round;
		transition: all 0.2s ease-out;
		transform-origin: center center;
		}
	.nav #navButton{}
		.nav #navButton line:nth-child(1){
			transform: rotate(-45deg) translate(0, 20%);
			}
		.nav #navButton line:nth-child(2){
			transform: translate(100%, 0);
			}
		.nav #navButton line:nth-child(3){
			transform: rotate(45deg) translate(0, -20%);
			}

#nav{
	position: -webkit-sticky;
	position: sticky;
	top: 4em;
	width: 100%;
	height: 0;
	opacity: 0;
	z-index: 111;
	}
	#nav ul{
		display: grid;
		align-content: flex-start;
		grid-gap: 0.5em;
		padding: 1em 2em 2em 2em;
		background: rgb(var(--menu-bg));
		color: rgb(var(--menu-fg));
		transition: transform 0.2s ease-out;
		}
	#nav li{
		border-bottom: 1px solid currentColor;
		}
	#nav a{
		display: flex;
		align-items: center;
		grid-gap: 0.8em;
		padding: 1em 0.5em;
		font-weight: 700;
		}
	.done #nav{
		opacity: 1;
		}

#main{
	margin-bottom: auto;
	padding-bottom: var(--space);
	overflow: hidden;
	}

#pagenation{
	overflow: hidden;
	}
	#pagenation :where(ul,ol){
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		grid-gap: 1em;
		list-style: none;
		}
	#pagenation a{
		display: flex;
		align-items: center;
		justify-content: center;
		text-decoration: none;
		}
		#pagenation a:not([rel]){
			height: 2.6em;
			width: 2.6em;
			padding: 0 0.3em;
			background: var(--primary-color);
			color: #fff;
			}
		#pagenation a[rel]{
			grid-gap: 0.5em;
			color: inherit;
			}
	#pagenation .lsc-current-page{
		background: #ccc !important;
		color: #fff;
		pointer-events: none;
		}

#subject{
	padding: var(--space) 0;
	}
	#subject .headline{
		}
		#subject .headline{
			}
	#subject .wrap{
		display: grid;
		grid-gap: 2em;
		}

#step{
	margin-bottom: var(--space);
	}
	#step ul{
		display: flex;
		align-items: center;
		justify-content: center;
		grid-gap: 2em;
		counter-reset: count;
		}
	#step li{
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		grid-gap: 1em;
		}
		#step li:before{
			counter-increment: count;
			content: counter(count)"";
			display: flex;
			align-items: center;
			justify-content: center;
			width: 2em;
			height: 2em;
			padding-bottom: 0.2em;
			background: rgb(var(--base-bg));
			border: 2px solid currentColor;
			border-radius: 100%;
			font-size: 1.2em;
			font-weight: 700;
			}
	#step li:after{
		content: "";
		position: absolute;
		top: 1em;
		left: -50%;
		width: 200%;
		height: 0;
		margin-top: 2px;
		border-top: 2px solid currentColor;
		z-index: -1;
		}
		#step li:first-child:after,
		#step li:last-child:after{
			left: -50%;
			width: 100%;
			}
		#step li:first-child:after{
			left: 0;
			}
	#step li:not([class]){
		opacity: 0.5;
		}
	#step li.clear{}
		#step li.clear:before{
			background: rgb(var(--base-fg));
			border-color: transparent;
			color: rgb(var(--base-bg));
			}

#globalLoading{
  position: absolute;
	top: 0;
	display: flex;
  left: 0;
  width: 100%;
  height: 100%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(3px);
  z-index: 1000;
  background-color: rgba(0,0,0,0.5);
}
#copyrightMinimum,
#copyright{
	margin: auto 0 0 0;
	padding: 2em 0;
	}
	#copyrightMinimum p,
	#copyright p{
		font-size: 0.8em;
		line-height: 1.5em;
		text-align: center;
		}
	#copyrightMinimum .wrap,
	#copyright .wrap{
		display: grid;
		grid-gap: 0.5em;
		}

.wrap{
	width: var(--wrap);
	margin-left: auto;
	margin-right: auto;
	}

.subject{
	display: flex;
	align-items: center;
	justify-content: center;
	grid-gap: 0.5em;
	color: rgb(var(--title1-fg));
	font-size: min(6vw, 2em);
	font-weight: 700;
	line-height: 1.5em;
	text-align: center;
	}
	.subject:before,
	.subject:after{
		content: "";
		flex: 0 0 1em;
		width: 1em;
		height: 0;
		background: currentColor;
		border: 1px solid currentColor;
		transform: translate(0, 0.1em);
		}

.headline{
	color: rgb(var(--title1-fg));
	color: #333;
	font-size: min(6vw, 2em);
	font-weight: 700;
	line-height: 1.5em;
	}

.title{
	position: relative;
	padding-bottom: calc(6px + 0.5em);
	color: rgb(var(--title2-fg));
	font-size: min(5vw, 1.6em);
	font-weight: 700;
	line-height: 1.5em;
	}
	.title:after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 6px;
		background-image: repeating-linear-gradient(-45deg, currentColor, currentColor 1px, transparent 2px, transparent 4px);
		background-size: 6px 6px;
		/*backface-visibility: hidden;*/
		}

.subTitle{
	font-size: 1.2em;
	font-weight: 700;
	line-height: 1.5em;
	}

.buttonSet{
	display: flex;
	justify-content: center;
	align-items: center;
	grid-gap: 1em;
	}

.button{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	grid-gap: 0.8em;
	padding: 0.5em 1.5em 0.55em 1.5em;
	background: rgb(var(--btn-bg));
	border: none;
	border-radius: 2.7em;
	color: rgb(var(--btn-fg));
	font-weight: 700;
	line-height: 1.5em;
	text-align: center;
	text-decoration: none;
	}
	.button:hover{
		background: rgb(var(--btn-fg));
		border-color: transparent;
		color: rgb(var(--btn-bg));
		}
	.button i{
		transform: translate(0, -0.25em);
		}
	.button.btnDanger{
		background: rgb(var(--btn-danger-bg));
		color: rgb(var(--btn-danger-fg));
		}
	.button.btnPrimary{
		background: rgb(var(--btn-primary-bg));
		color: rgb(var(--btn-primary-fg));
		}
	.button.dim{
		background: rgb(var(--btn-dim-bg));
		color: rgb(var(--btn-dim-fg));
		}
	.button:where(#btnSend, .primary){
		background: rgb(var(--btn-primary-bg));
		color: rgb(var(--btn-primary-fg));
		}
	.button:where(#btnModify,.dim){
		background: rgb(var(--btn-dim-bg));
		color: rgb(var(--btn-dim-fg));
		}
	.buttonid:where(#lsfBtnConfirm,#discard,.danger){
		background: rgb(var(--btn-danger-bg));
		color: rgb(var(--btn-danger-fg));
		}
	.button[disabled="disabled"]{
		opacity: 0.5;
		pointer-events: none;
		}

.topicsList{}
	.topicsList dl{
		position: relative;
		display: grid;
		grid-gap: 0.5em;
		padding: 1.5em 2em 1.5em 0;
		border-bottom: 1px solid currentColor;
		}
	.topicsList dt{
		font-weight: 700;
		line-height: 1.5em;
		}
	.topicsList dt+dd{
		order: -1;
		}
	.topicsList dt+dd+dd{
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		max-height: calc(1.5em * 2);
		font-size: 0.75em;
		line-height: 1.5em;
		overflow: hidden;
		}
		.topicsList dt+dd+dd:empty{
			display: none;
			}
	.topicsList dd{}
		.topicsList dd:last-child{
			display: contents;
			}
		.topicsList dd time{
			font-size: 0.875em;
			}
		.topicsList dd a[href]{
			position: absolute;
			top: 0;
			left: 0;
			display: flex;
			align-items: center;
			justify-content: flex-end;
			width: 100%;
			height: 100%;
			color: inherit;
			}
			.topicsList dd a[href]:hover{
				background: rgba(var(--base-fg),0.1);
				}

.entry{
	display: grid;
	}
	.entry :where(dt,dd){
		padding: 0.8em;
		border: 1px solid rgb(var(--base-fg));
		}
	.entry dt{
		background: rgb(var(--base-fg));
		color: rgb(var(--base-bg));
		font-weight: 700;
		}
		.entry dt.required:after{
			content: "*";
			}
	.entry dd{
		display: grid;
		grid-gap: 1em;
		}
	.entry dd+dd{
		padding: 0;
		border: none;
		justify-content: center;
		}
	.entry ul{
		display: flex;
		grid-gap: 1em;
		}

.loading,
.loadingBack{
	position: relative;
	}
	.loading:before,
	.loading:after{
		all: initial;
		}
	.loading:before{
		content: "Loading...";
		position: absolute;
		top: 0;
		left: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
		background: rgba(var(--base-bg), 0.5);
		color: rgb(var(--base-fg));
		font: inherit;
		font-weight: 700;
		}
	.loading:after{
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 10em;
		height: 10em;
		margin: -5em;
		border: 2px solid rgb(var(--spinner-fg));
		border-top-color: transparent;
		border-radius: 100%;
		animation: loadingSpinner 0.75s infinite linear;
		}
	@keyframes loadingSpinner {
		from {
		transform: rotate(0deg);
		}
		to {
		transform: rotate(360deg);
		}
	}
.loadingBack{}
	.loadingBack:after{
		animation-direction: reverse;
		}

.modal{
	position: relative;
	visibility: hidden;
	}
	.modal.open{
		visibility: visible;
		}
	.modal .wrap{
		max-width: calc(var(--wrap) - var(--space) - var(--space));
		}
	.modal .entry :where(dt,dd){
		border: 1px solid rgb(var(--modal-fg));
		}
	.modal .entry dt{
		background: rgb(var(--modal-fg));
		color: rgb(var(--modal-bg));
		}
.modalWrapper{
	position: fixed;
	top: 0;
	left: 0;
	display: grid;
	align-content: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding:var(--space);
	background: rgba(0,0,0,0.75);
	z-index: 100;
	}
.modalInner{
	position: relative;
	width: auto;
	max-width: var(--wrap);
	padding: calc(var(--space) / 2);
	background: rgb(var(--modal-bg));
	border-radius: 10px;
	color: rgb(var(--modal-fg));
	overflow-y: auto;
	}
.modalClose{
	position: relative;
	justify-self: flex-end;
	margin: 0;
	padding: 0.75em;
	width: 1.5em;
	height: 1.5em;
	background: rgb(var(--modal-fg));
	border-radius: 100%;
	color: rgb(var(--modal-bg));
	cursor: pointer;
	transform: translate(50%, 50%);
	order: -1;
	z-index: 2;
	}
	.modalClose svg{
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		transform: scale(0.6);
		}

.errorText{
	padding: 1em;
	border: 1px solid currentColor;
	color: rgb(var(--border-fg));
	}

.considerations{
	display: grid;
	grid-gap: 1em;
	border: 1px solid currentColor;
	}
	.considerations p{
		line-height: 1.5em;
		}
	.considerations ul{
		display: grid;
		grid-gap: 0.5em;
		}
	.considerations li{
		position: relative;
		padding-left: 1em;
		line-height: 1.5em;
		}
	.considerations li:before{
		content: "";
		position: absolute;
		top: 0.75em;
		left: 0.25em;
		width: 5px;
		height: 5px;
		background: currentColor;
		border-radius: 100%;
		transform: translateY(-50%);
		}

.anchor{
	position: absolute;
	margin-top: -4em;
	opacity: 0;
	transform: translate(0,-4em);
	}





/* for lower */
@media (max-width: 1399.98px) {
/*1399px以下*/
}
@media (max-width: 1199.98px) {
/*1199px以下*/
}
@media (max-width: 991.98px) {
/*991px以下*/
:root{
	--wrap: calc(100vw - 2em);
	}
body{
	font-size: clamp(1.4rem, 2.085vw, 1.6rem);
	}
#siteName{
	margin-left: 1em;
	}
}


/* Small */
@media (max-width: 767.98px) {
/*767px以下*/
:root{
	--space: 2em;
	}
.considerations{
	padding: 1em;
	}
}
@media (max-width: 767.98px) and (orientation:portrait) {
/*767px以下縦向き*/
#nav{}
	#nav ul{
		transform: scaleY(0);
		transform-origin: center top;
		}
	.nav #nav ul{
		transform: scaleY(1);
		}
.buttonSet{
	flex-direction: column;
	}
	.buttonSet .button{
		width: 80%;
		}
.entry{}
	.entry dd+dd{
		margin-top: 1em;
		}
}
@media (max-width: 767.98px) and (orientation:landscape) {
/*767px以下横向き*/
}
@media (max-width: 767.98px) and (orientation:landscape), (min-width: 768px) {
/*767px以下 横向き, 768px以上,*/
#nav{}
	#nav ul{
		width: 20em;
		margin-left: auto;
		height: 100vh;
		transform: scaleX(0);
		transform-origin: right top;
		}
	.nav #nav ul{
		transform: scaleX(1);
		}
.entry{
	grid-template-columns: min(15em, 30%) auto;
	grid-gap: 1em 0;
	}
	.entry dd+dd{
		grid-column: 1 / 3;
		}
}
@media (max-width: 767.98px) and (orientation:landscape), (min-width: 768px) and (max-width: 991.98px) {
/*767px以下 横向き, 768px～991px*/
}


/* Medium */
@media (min-width: 768px) {
/*768px以上*/
.considerations{
	padding: 1.5em;
	}
}
@media (min-width: 768px) and (max-width: 1199.98px) {
/*768px～1199px*/
}
@media (min-width: 768px) and (max-width: 991.98px) {
/*768px～991px*/
:root{
	--space: 3em;
	}
}


/* Large */
@media (min-width: 992px) {
/*992px以上*/
:root{
	--space: 4em;
	}
#siteName{
	margin-left: 2em;
	}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
/*992px～1199px*/
:root{
	--wrap: 960px;
	}
body{
	font-size: 1.4rem;
	}
}


/* X-Large */
@media (min-width: 1200px) {
/*1200px以上*/
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
/*1200px～1399px*/
:root{
	--wrap: 1140px;
	}
body{
	font-size: 1.6rem;
	}
}


/* XX-Large */
@media (min-width: 1400px) {
/*1400px以上*/
:root{
	--wrap: 1320px;
	}
body{
	font-size: 1.8rem;
	}
}





