/* 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;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
    touch-action: manipulation;
} 

/* -------------------------------------------------
 * Common Items
 * ------------------------------------------------- */
html {
}
@media screen and (min-width:0px) and (min-height:0px) {
	html {
   		font-size: calc(0.6rem + 0.4vw);
   		/*border: 1px solid #f00;*/
	}
}
@media screen and (min-width:321px) and (min-height:241px) {
	html {
   		font-size: calc(0.8rem + 0.25vw);
   		/*border: 1px solid #0f0;*/
	}
}
@media screen and (min-width:721px) and (min-height:484px) {
	html {
   		font-size: calc(0.9rem + 0.25vw);
   		/*border: 1px solid #00f;*/
	}
}
@media screen and (min-width:1025px) and (min-height:769px) {
	html {
   		font-size: calc(0.95rem + 0.25vw);
   		/*border: 1px solid #ff0;*/
	}
}
@media screen and (min-width:1441px) and (min-height:1081px) {
	html {
   		font-size: calc(1rem + 0.25vw);
   		/*border: 1px solid #0ff;*/
	}
}

body {
    background-repeat:repeat-x;
	line-height:1.25rem;
    background-color: white;
}
h1, h1 a {
	font-size:1.25rem;
	line-height:1.25rem;
}
h2, h2 a {
	font-size:1.125rem;
	line-height:1.125rem;
}
h3, h3 a {
	font-size:0.9375rem;
	line-height:0.9375rem;
}

div, input {
    -ms-user-select: none;
    /*-webkit-user-select: none;*/
    -moz-user-select: none;
}
div.user_select_enable,
input[type=text], 
input[type=password], 
input[type=email] {
    -ms-user-select: text !important;
    /*-webkit-user-select: text !important;*/
    -moz-user-select: text !important;
}
button {
	border: 0;
}
a {
    color: #000000;
    font-weight: bold;
    text-decoration: none;
}
a:hover {
    color:#303030;
    text-decoration: none;
    cursor: pointer;
}

img {
	outline: none;
}

.inactive {
    display: none !important;
}

/* -------------------------------------------------
 * Input Items
 * ------------------------------------------------- */
.checkbox
{
    width: auto;
    display:block;
    float:left;
    padding-top:8px;
}
.checkbox input { display:block; float:left; margin:2px 4px 0 3px; padding:0; }
.checkbox label { display:inline; float:none; clear:none; padding:1px 3px; width:auto; font-weight:normal; }

label {
    color: #707070;
    display: block;
    font-family: sans-serif;
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: normal;
    float: none;
    width: auto;
    padding: 0;
    margin-bottom: 0.4rem;
}
label.check {
    display: inline;
    white-space: nowrap;
}
input[type=text],
input[type=password],
input[type=tel],
input[type=email],
textarea,
select {
    background: none repeat scroll 0 0 #FAFAFA;
    border-color: #B0B0B0;
    border-image: none;
    border-style: solid;
    border-width: 1px;
    border-radius: 5px;
    box-shadow: 0 2px 2px 0 #EFEFEF inset;
    color: #666666;
    font-family: sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 2rem;
    padding: 0.5em 0.8em;
    /*width: 23.75rem;*/
    width: 100%;
    box-sizing: border-box;
}
input[type=submit], input[type=button] {
    margin-left: 0;
    /*margin-left: 0 !important;*/
}
input[type="checkbox"] {
    transform: scale(1.5);
    cursor: pointer;
}
input.input_inactive {
    cursor: default;
    background-color: lightgray;
    border: 1px solid gray;
	box-shadow: none;
}
input:disabled {
    color: black;
    -webkit-text-fill-color: black;
    opacity: 1;
}
textarea {
	height: 10rem;
  	resize: none;
	  line-height: 1.2rem;
}

.btn_l {
    width: 100%;
    font-size: 1rem;
    text-align: center;
    box-sizing: border-box;
    
    border-radius: 8px;
}
.acceptbtn {
    background: #000000;
    color: #ffffff;
    font-size: 1rem;
    padding: 0.75rem 1.25rem 0.75rem 1.25rem;
    text-decoration: none;
    text-align: center;
}

.acceptbtn:hover {
    background: #303030;
    color: #F0F0F0;
    text-decoration: none;
}
.acceptbtn.disabledbtn,
.acceptbtn.disabledbtn:hover {
    cursor: default;
    background: #A0A0A0 !important;
    color: #D0D0D0 !important;
}
.link.disabledbtn,
.link.disabledbtn:hover {
    cursor: default;
    color: #D0D0D0 !important;
}
.btn_s {
    display: inline-block;
    position: relative;
    width: 7rem;
    height: 1.6rem;
	margin: 0rem;
    margin-bottom: 0.8rem;
	padding: 0.1rem;
    
    border-radius: 0.8rem;
    border: 1px solid steelblue;
    background-color: lightblue;
    
    cursor: pointer;
	
    font-family: sans-serif;
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: normal;
}

#showPassword {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    display: inline-block;
    transform: scale(1);
    width: 1.4rem;
    height: 1.4rem;
    cursor: pointer;
    vertical-align: middle;
    position: relative;
}

#showPassword::before {
    content: '';
    display: block;
    position: relative;
    width: 1.4rem;
    height: 1.4rem;
    left: 0;
    background-color: white;
    border-color: #B0B0B0;
    border-image: none;
    border-style: solid;
    border-width: 1px;
    border-radius: 5px;
    box-sizing: border-box;
}

#showPassword:checked::before {
    background-color: #707070;
    border-color: #707070;
}

#showPassword::after {
    content: '';
    display: block;
    position: relative;
    border-bottom: 3px solid white;
    border-left: 3px solid white;
    opacity: 0;
    height: 0.4rem;
    width: 0.75rem;
    transform: rotate(-45deg);
    top: -1.15rem;
    left: 0.25rem;
}

#showPassword:checked::after {
    opacity: 1;
}

#showPasswordLabel {
    margin: 0.6rem 0 0 0.5rem;
    display: inline-block;
    cursor: pointer;
}

/* -------------------------------------------------
 * Base Layers
 * ------------------------------------------------- */
#root { 
  position: relative;
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}

#container {
	position: relative;
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
}
#cb_foreground_layer {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: 100;

    background-color: #FFFFFF;

    transition: all 200ms 0s ease;
	z-index: 0;
    grid-row: 1/4;
}
#cb_foreground_layer.active {
    position: sticky;
    transition: all 200ms 0s ease;
	background-color: rgba(10, 10, 10, 0.6);
	z-index: 20;
    grid-column: 1/2;
}
#cb_foreground_layer .dialog {
    position: fixed;
    top: calc(50% - 0%);
    left: calc(50% - 0%);
    min-height: 10rem;
    max-width: 450px;
	width: 85%;
    border: 1px solid rgba(100, 100, 100, 0.5);
    border-radius: 10px;
    box-shadow: 1px 1px 3px 0px darkblue;

	background-color: #FFFFFF;
	
    transform: translate(-50%, -60%);
    z-index: 30;
	
    cursor: default;
    
    display: grid;
    grid-template-rows: auto 1fr auto;
    grid-template-columns: 1fr;
}
#cb_foreground_layer .dialog .header {
    grid-row: 1 / 2;
    grid-column: 1 / 2;
	min-height: 2rem;
    padding: 0.5rem 2.5rem 0.5rem 0.8rem;
    box-shadow: 0rem 0rem 0.2rem 0rem grey;
    
    text-align: center;
    /*border: solid 1px seagreen;*/
    border-radius: 10px 10px 0px 0px;
} 
#cb_foreground_layer .dialog .header p {
    /* line-height: 2rem; */
    padding: 0.2rem;
}
#cb_foreground_layer .dialog .header .cancel {
    position: absolute;
    top: calc(50% - 0%);
    right: calc(1% - 0%);
    transform: translate(0%, -50%);
    height: 2rem;
    width: 2rem;

    cursor: pointer;
	
	background-repeat: no-repeat;
    background-position: center;
    background-size: 1.5rem;
    background-image: url(data:image/png;base64,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);
}
#cb_foreground_layer .dialog .body {
    grid-row: 2 / 3;
    grid-column: 1 / 2;
    
    padding: 1rem 0.8rem 0.5rem 0.8rem;
	white-space: pre-wrap;
} 
#cb_foreground_layer .dialog .footer {
    grid-row: 3 / 4;
    grid-column: 1 / 2;
    
    padding: 0.5rem 0.8rem 0.5rem 0.8rem;
    border-radius: 0px 0px 10px 10px;
}
#cb_foreground_layer .dialog .footer .action_btn {
	position: relative;
	text-align: center;
}
#cb_foreground_layer .dialog .footer .btn_l {
	margin: 0;
	padding: 0.5rem;
	min-width: 50%;
	max-width: 90%;
}
#contents_body {
	position: relative;
    height: 100%;
	min-height: 667px;
    width: 100%;
    margin: 0;
    /* padding: 0.2rem 0.5rem; */
    
    box-sizing: border-box;
    background-color: #FFFFFF;
    overflow-y: auto;
    overflow-x: hidden;
	z-index: 10;
    display: grid;
	grid-template-rows: min-content 1fr auto;
    grid-template-columns: 100%;
}
/* 一定条件の画面用 */
/* 以下の条件に当てはまらない場合は全画面表示 */
/* 横幅が一定以上ある場合はウィンドウ表示 */
@media screen and (min-width:544px) and (min-height:668px) {
    #contents_header,
    #contents_footer {
        height: 2%;
    }
    #contents_body {
        position: relative;
        top: auto;
        left: auto;
        margin: 0 auto;
		min-height: 667px;
        height: 96%;
        min-width: 375px;
        max-width: 544px;
        
        border: 1px solid lightgrey;
        border-radius: 2px;
        display: grid;
		grid-template-rows: min-content 1fr auto;
        grid-template-columns: 100%;
    }
}
/* 横幅が一定以上あるのに縦が短い場合は幅上限を決めて枠表示 */
@media screen and (min-width:544px) and (max-height:667px) {
    #contents_header,
    #contents_footer {
        height: 2%;
    }
    #contents_body {
        position: relative;
        top: auto;
        left: auto;
        margin: 0 auto;
		min-height: 667px;
        max-height: 96%;
        min-width: 375px;
        max-width: 544px;
        
        border: 1px solid lightgrey;
        border-radius: 2px;
        display: grid;
		grid-template-rows: min-content 1fr auto;
        grid-template-columns: 100%;
    }
}
/* -------------------------------------------------
 * Body Layers
 * ------------------------------------------------- */
#body_header {
	position: relative;
    padding: 0.2rem 0.5rem 0 0.5rem;
    /* height: auto;
    max-height: 3rem;
    min-height: 2rem; */
    
    box-sizing: border-box;
    grid-row: 1/2;
    grid-column: 1/2;
}
#body_content {
	position: relative;
    height: 100%;
	min-height: 65vh;
    padding: 1.4rem 0.8rem 0.4rem 0.8rem;
    background-color: white;
    z-index: 0;
    grid-row: 2/3;
    grid-column: 1/2;
    display: grid;
    grid-template-rows: auto auto;
}
#body_footer {
	position: relative;
    /*height: 5%;
    max-height: 3rem;
    min-height: 2rem;*/
    grid-row: 3/4;
    grid-column: 1/2;
    box-sizing: border-box;
}

/* -------------------------------------------------
 * Body Header Items
 * ------------------------------------------------- */
#body_header h1 {
    display: block;
    position: relative;
    height: 100%;
    min-height: 2.5rem;
    width: 100%;

    text-align: center;
    white-space: nowrap;
}
#body_header .label,
#body_header .logo {
    position: absolute;
    top: calc(50% - 0%);
    left: calc(50% - 0%);
    transform: translate(-50%, -50%);
}
#body_header .logo {
    min-height: 2.5rem;
    height: auto;
    width: 100%;
    border: none;
    outline: none;
    background-repeat:no-repeat;
    background-position: center;
    background-size: contain;
}
#body_header .menu {
    position: absolute;
    top: calc(50% - 0%);
    right: calc(0% - 0%);
    transform: translate(0%, -50%);
    height: 2rem;
    width: 2rem;
    
    cursor: pointer;
}
#body_header .menu {
    background-image: url(data:image/png;base64,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);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1.5rem;
    
    transition: all 100ms 0s ease;
}
#body_header .menu.cancel {
    background-image: url(data:image/png;base64,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);
    
    transition: all 100ms 0s ease;
}

/* -------------------------------------------------
 * Body Header Items お知らせアイコン
 * ------------------------------------------------- */
#body_header .news_icon {
    position: absolute;
    top: calc(50% - 0%);
    right: calc(8% - 0%);
    transform: translate(0%, -50%);
    height: 2rem;
    width: 2rem;
    
    cursor: pointer;
}
#body_header .news_icon {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTZweCIgaGVpZ2h0PSIyNTZweCIgdmlld0JveD0iMCAwIDI1NiAyNTYiPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTSAxMjggMiAKICAgICAgICBhIDI1IDI1IDAgMCAxIDI1IDI1CiAgICAgICAgYSA4MCA4MCAwIDAgMSA1NSA4MAogICAgICAgIGwgMCAyNQogICAgICAgIGMgMCAzMCwgMzAgMzAsIDMwIDYwCiAgICAgICAgbCAwIDEwCiAgICAgICAgbCAtMjIwIDAKICAgICAgICBsIDAgLTEwCiAgICAgICAgYyAwIC0zMCwgMzAgLTMwLCAzMCAtNjAKICAgICAgICBsIDAgLTI1CiAgICAgICAgYSA4MCA4MCAwIDAgMSA1NSAtODAKICAgICAgICBhIDI1IDI1IDAgMCAxIDI1IC0yNSIgZmlsbD0iIzRiNGI0YiIgLz4KICAgICAgICA8cGF0aCBkPSJNIDkwIDIxNAogICAgICAgIGEgNDAgNDAgMCAwIDAgODAgMCIgZmlsbD0iIzRiNGI0YiIgLz4KICAgIDwvZz4KPC9zdmc+);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1.5rem;
    
    transition: all 100ms 0s ease;
}
#body_header .news_icon.unread::after {
    display: flex;
    content: "";
    margin-top: 5%;
    margin-left: 70%;
    width: 20%;
    height: 20%;
    vertical-align: top;
    position: relative;
    border-radius: 5px;
    background-color: #dc143c;
}
#body_header .news_icon.hidden {
    display: none;
}

/* -------------------------------------------------
 * Body Footer Items
 * ------------------------------------------------- */
 #body_footer p {
	display: flex;
    -ms-flex-pack: distribute;
    justify-content: space-around;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;

    position: relative;
    width: 100%;
    text-align: center;
}
#body_footer p a {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
}

/* -------------------------------------------------
 * Body Content Items
 * ------------------------------------------------- */
#bc_foreground_layer {
    position: absolute;
    top: 0;
    left: 0;
    height: 0%;
    width: 100%;
    z-index: 100;

    background-color: #FFFFFF;
	box-shadow: 0px 0px 3px 1px lightgray;
	opacity: 0;

    transition: all 100ms 0s ease-in;
}
#bc_foreground_layer.active {
    height: 95%;
	opacity: 1;
    transition: all 100ms 0s ease-out;
    box-shadow: 0rem 0.1rem 0.1rem grey;
}
#bc_foreground_layer p {
    display: none;
}
#bc_foreground_layer.active p {
    display: block;
    padding: 0rem 1rem;  
}
#bc_foreground_layer .menulist {
    height: 0%;
    position: relative;
    display: flex;
    display: -ms-flexbox;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
       -ms-flex-direction: column;
           flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
    justify-content: space-between;
}
#bc_foreground_layer .menulist p {
}
#bc_foreground_layer.active .menulist {
    height: 100%;
    position: relative;
    padding: 1rem 0.4rem;
}
#bc_foreground_layer select {
    position: relative;
}
#bc_foreground_layer.active select {
    position: relative;
}
#bc_content_layer {
    position: relative;
    height: 100%;
    width: 100%;
}

#body_content .panel {
    position: relative;
    height: 100%;
    width: 100%;
}
#body_content .panel > div {
    position: relative;
    height: 100%;
    width: 100%;

    display: flex;
    display: -ms-flexbox;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
       -ms-flex-direction: column;
           flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
    justify-content: space-between;
}

#body_content .title {
	text-align: center;
	margin: 1.5rem 0 2rem 0;
  	word-break: break-word;
}
#body_content .description {
    padding: 1rem 0rem;
}
#body_content .description.optional {
	white-space: pre-wrap;
}

#body_content > p {
    padding: 1rem 0.5rem;
}

#body_content .title,
#body_content .description,
#body_content .method_area {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
           flex-grow: 1;
}
#body_content .description {
    -webkit-box-flex: 2;
    -ms-flex-positive: 2;
           flex-grow: 2;
}
#body_content .input_form {
    -webkit-box-flex: 5;
    -ms-flex-positive: 5;
        flex-grow: 5;
}

#Notification {
	position: relative;
    width: 100%;

    padding: 0rem 0.5rem;
    border: 1px solid transparent;

    -webkit-box-flex: 0;
    -ms-flex-positive: 0;
           flex-grow: 0;
}
#Notification.notice {
    background-color: mintcream;
    border-color: chartreuse;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
           flex-grow: 1;
}
#Notification.error {
    color: crimson;
    padding: 0.4rem 0.5rem;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
           flex-grow: 1;
    white-space: pre-wrap;
}
#Notification.success {
    color: green;
    padding: 0.4rem 0.5rem;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
           flex-grow: 1;
}

.form {
    position: relative;
    height: 100%;
    width: 100%;
    padding: 0.5rem 0rem;
    box-sizing: border-box;
    
    display: flex;
    display: -ms-flexbox;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
       -ms-flex-direction: column;
           flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
    justify-content: space-between;
    word-break: break-word;
}
.form .input_area {
    position: relative;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
           flex-grow: 1;
}
.form .input_area > p {
    position: relative;
    padding-bottom: 1rem;
}
.form .action_area {
    position: relative;
    padding-top: 1rem;
}
.form .linklist,
.menulist .linklist {
    position: relative;
    padding-top: 1rem;
    text-align: center;
	min-height: 5rem;
}
.form .linklist p,
.menulist .linklist p {
    position: relative;
}
.form .linklist a,
.menulist .linklist a {
    display: block;
    line-height: 1.5rem;
    text-decoration: underline;
}
.form .linklist a:hover,
.menulist .linklist a:hover {
    font-weight: bolder;
    text-decoration: none;
}
.form .documentlinklist {
    position: relative;
    -webkit-box-flex: 2;
    -ms-flex-positive: 2;
           flex-grow: 2;
}
.form .documentlinklist a { 
    display: inline-block;
    line-height: 1.5rem;
    text-decoration: underline;
}
.form button {
	margin: 0.5rem 0;
}

.menulist .linklist {
    position: relative;
}
.menulist .menuitem {
    position: relative;
    -webkit-box-flex: 2;
    -ms-flex-positive: 2;
           flex-grow: 2;
}
.form h1,
.menulist h1 {
	text-align: center;
	margin: 1.5rem 0 2rem 0;
    /*white-space: nowrap;*/
}
.menulist h1 {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
           flex-grow: 1;
}
.menulist .menuitem h2,
.menulist .menuitem p {
	margin: 0.5rem 1rem;
	padding: 0.2rem;
    box-sizing: border-box;
}
.menulist .menuitem h2 {
	border-bottom: 1px solid black;
	line-height: 1.5rem;
}
.menulist .menuitem p {
	line-height: 1.25rem;
}
.submenulist{
	font-size: 1rem;
}
.appversion p {
    text-decoration: underline;
    font-size: 1rem;
    color: black;
    text-align: right;
	margin-top: 2rem;
}

.boxlist {
    box-sizing: border-box;
}
.boxlist .boxitem {
    position: relative;
    min-height: 4rem;
	border: 1px solid black;
	margin: 0.5rem 1rem;
	padding: 0.2rem;
    box-sizing: border-box;
}
.boxlist .boxitem h2 {
	line-height: 1.5rem;
	padding: 0.5rem;
	font-size: 1.5rem;
	font-weight: normal;
}

.boxlist .boxitem h2.no-icon {
    line-height: 3.0rem;
    padding-left: 1.0rem;
}

.boxlist .boxitem p {
	line-height: 1.5rem;
	padding: 0.5rem;
}
.boxlist .boxitem > div {
    position: relative;
    height: auto;
    width: 100%;
    padding: 0rem 1rem;
    box-sizing: border-box;
	
	text-align: right;
}

ul.actionlist {
	margin-left: 2rem;
}
ul.actionlist.returntoapplication {
	margin-left: 1rem;
}

ul.actionlist li {
	padding: 0.2rem;
	list-style: none;
	line-height: 1.4rem;
}
ul.actionlist li a {
    text-decoration: underline;
}
ul.subactionlist li {
	padding: 0.2rem;
	list-style: none;
	line-height: 1.4rem;
	margin: 1.5rem 0rem 1.5rem 2rem;
}
ul.subactionlist li a {
    text-decoration: underline;
}

dl.faq {
	line-height: 1.8rem;
}
dl.faq div {
	margin: 1rem 0.5rem;
}
dl.faq div dt:first-child {
	border-bottom: 1px solid black;
}
dl.faq div dt:nth-child(2)::before {
  content: "Q.";
  margin-right: 0.5rem;
}
dl.faq div dd::before {
  content: "A.";
  margin-right: 0.5rem;
}
dl.faq dt,
dl.faq dd {
	white-space: pre-line;
    word-break: break-word;
}
dl.faq a {
	text-decoration: underline;
}
dl.faq .highlighting {
	font-weight: bolder;
	text-shadow: 1px 1px 1px gray;
}

button.link {
  color: #000000;
  background-color: transparent;
  text-decoration: underline;

  font-size: 1rem;
  font-weight: bold;
}

button.link:hover {
  cursor: pointer;
  text-decoration: none;
  font-weight: bolder;
}

button.ind,
p.ind {
    text-indent: 1em;
}

button.agreement.tos {
  padding: 1rem 0.5rem;
  font-size: 1.2rem;
}

button.agreement {
  font-size: 0.9rem;
}

button.clr{
    color: blue;
}

input[type="checkbox"] {
    display: none;
}
input[type="checkbox"] + label.check {
    display: inline-block;
    position: relative;
    width: 8.5rem;
    height: 1.6rem;
    /*margin-top: 1.2rem;*/
    margin-left: 0.5rem;
    
    border: solid 1px rgba(100, 105, 145, 0.8);
    border-radius: 0.8rem;
    background-color: lightgray;
    
    cursor: pointer;
}

input[type="checkbox"] + label.check span {
    display: inline-block;
    position: absolute;
    top: calc(50% - 0%);
    left: calc(50% - 0%);
    transform: translate(-50%, -175%);
    
    color: midnightblue;
}
input[type="checkbox"]:checked + label.check {
    border: 1px solid steelblue;
    background-color: lightblue;
}
input[type="checkbox"] + label.check::before {
    content: attr(data-disabled);
    color: gray;
    text-shadow: 0px 0px 1px aliceblue;
    
    position: absolute;
    top: calc(50% - 0%);
    right: 0.5rem;
    transform: translate(0%, -45%);
}
input[type="checkbox"]:checked + label.check::before {
    content: attr(data-enabled);
    color: black;
    text-shadow: 0px 0px 1px darkgray;
    
    position: absolute;
    top: calc(50% - 0%);
    left: 0.5rem;
    transform: translate(0%, -45%);

	text-align: left
}
input[type="checkbox"] + label.check > div {
    position: absolute;
    top: calc(50% - 0%);
    left: calc(1% - 0%);
    transform: translate(0%, -50%);
    
    width: 1.4rem;
    height: 1.4rem;
    border: 1px solid aliceblue;
    border-radius: 0.7rem;
    background-color: white;
    
    transition: all 200ms ease-out;
}
input[type="checkbox"]:checked + label.check > div {
    border: 1px solid transparent;
    background-color: white;
    top: calc(50% - 0%);
    left: calc(99% - 1.4rem);
    transform: translate(0%, -50%);
    
    transition: all 200ms ease-out;
}

.listblock input[type=checkbox] {
    display: block;
    float: left;
    margin: 0.2rem 0 0 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    transform: scale(1);
    width: 1.4rem;
    height: 1.4rem;
    cursor: pointer;
    vertical-align: middle;
    position: relative;
}

.listblock input[type=checkbox]::before {
    content: '';
    display: block;
    position: relative;
    width: 1.4rem;
    height: 1.4rem;
    left: 0;
    background-color: white;
    border-color: #B0B0B0;
    border-image: none;
    border-style: solid;
    border-width: 1px;
    border-radius: 5px;
    box-sizing: border-box;
}

.listblock input[type=checkbox]:checked::before {
    background-color: #707070;
    border-color: #707070;
}

.listblock input[type=checkbox]::after {
    content: '';
    display: block;
    position: relative;
    border-bottom: 3px solid white;
    border-left: 3px solid white;
    height: 0.4rem;
    width: 0.75rem;
    transform: rotate(-45deg);
    top: -1.15rem;
    left: 0.25rem;
    opacity: 0;
}

.listblock input[type=checkbox]:checked::after {
    opacity: 1;
}

.listblock span {
    display: block;
    overflow: hidden;
    padding: 0 0.5rem;
}

.listblock label {
    color: #000000;
}

/* -------------------------------------------------
 * Document Items
 * ------------------------------------------------- */
#Document {
    height: 50vh;
    overflow-y: auto;
    overflow-x: hidden;
    word-wrap: break-word;
    word-break: break-word;
    box-sizing: border-box;
}
  
#Document .description {
    position: relative;
    padding-right: 0.5rem;
    white-space: pre-wrap;
}

#Document table {
    position: relative;
    box-sizing: border-box;
    word-break: break-word;
	border-collapse: collapse;
}

#Document table, tr, td {
    border: solid 1px;
}

#Document h2 {
    text-align: center;
}

#Document span {
    font-weight: bold;
}

/* -------------------------------------------------
 * ViewFaq Items
 * ------------------------------------------------- */
#ViewFaq .faq_label {
	margin-bottom: 0.5rem;
}
#ViewFaq .linklist p {
	font-size:1.25rem;
	line-height:1.25rem;
}
.form .faq_area {
    position: relative;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
           flex-grow: 1;
	height: 30rem;
}
.form .faq_area {
	box-shadow: 0px 0px 2px 1px gray;
	border-radius: 3px;
    overflow-y: auto;
    overflow-x: hidden;
}
.form .faq_area .input_area {
	padding: 0.5rem;
}

/* -------------------------------------------------
 * News Items
 * ------------------------------------------------- */
#News .linklist p {
	font-size:1.25rem;
	line-height:1.25rem;
}
.form .news_area {
    position: relative;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
           flex-grow: 1;
	min-height: 76.8%;
}
.form .news_area {
	box-shadow: 0px 0px 2px 1px gray;
	border-radius: 3px;
    overflow-y: auto;
    overflow-x: hidden;
}
.form .news_area .input_area {
	padding: 0.5rem;
}

dl.news {
	line-height: 1.8rem;
}
dl.news div {
	margin: 1rem 0.5rem;
	border-top: 1px solid black;
}
dl.news div:first-child {
	border-top: initial;
}
dl.news div dd::before {
  margin-right: 0.5rem;
}
dl.news dt {
	margin: 0.5rem 0.5rem;
	white-space: pre-line;
    word-break: break-word;
    font-weight: bold;
}
dl.news dt.unread::before {
	display: inline-block;
	content: "";
	margin-top: 10px;
	margin-right: 10px;
	width: 10px;
	height: 10px;
	vertical-align: top;
	border-radius: 5px;
	background-color: #dc143c;
}
dl.news dd {
	margin: 0.5rem 0.5rem;
	white-space: pre-line;
    word-break: break-word;
}
dl.news a {
	text-decoration: underline;
}
dl.news .highlighting {
	font-weight: bolder;
	text-shadow: 1px 1px 1px gray;
}

/* -------------------------------------------------
 * LoginHistory Items
 * ------------------------------------------------- */
 #LoginHistory .box {
	border: none;
	box-shadow: 0px 0px 3px 1px lightgray;
 }

/* -------------------------------------------------
 * Progress Bar Items
 * ------------------------------------------------- */
 .progress-bar {
	 width: 100%;
	 background-color: lightgray;
	 padding: 0.2rem;
	 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
 }
 .progress-bar-fill {
	 display: block;
	 height: 1rem;
	 width: 2rem;
	 background-color: steelblue;
	 border-radius: 3px;

    transition: all 200ms ease-in-out;
}

/* -------------------------------------------------
 * Loading Items
 * ------------------------------------------------- */
.loading {
    position: absolute;
    top: calc(50% - 1.5rem);
    left: calc(50% - 1.5rem);
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	
	border: 0.4em solid lightgray;
	border-top-color: steelblue;
	animation: spinner 1.5s linear infinite;
}
@keyframes spinner {
  to {
    transform: rotate(360deg);
  }
}

/* -------------------------------------------------
 * Social Area Items
 * ------------------------------------------------- */
 #SocialArea {
     position: relative;
     border-top: solid 1px #A0A0A0;
     border-radius: 1px;

     margin-top: 1.9rem;
     padding-top: 1.6rem;
     text-align: center;

     -webkit-box-flex: 1;
     -ms-flex-positive: 1;
            flex-grow: 1;
 }
 #SocialArea:before {
     content: attr(data-separator);
     top: -0.9rem;
     left: 50%;
     transform: translate(-50%, 0%);
     width: 40%;

     position: absolute;
     background-color: white;
 }
 #SocialArea div {
    position: relative;
    /* line-height: 2rem; */
    padding-bottom: 0.2rem;
 }
 #SocialArea .social_btn {
    cursor: pointer;
 }
 #SocialArea span {
    display: inline-block;
    border: solid 1px #A0A0A0;
    border-radius: 10px;
    padding: 0.8rem 0.5rem 0.8rem 5rem;
    width: 85%;
    min-width: 12rem;
    box-sizing: border-box;
 }

.icon-social {
    padding: 10px;
    margin-left: 20px;
}
.icon-social::before {
	vertical-align: middle;
	margin-right: 15px;
	width: 50px;
    height: 50px;
	display: inline-block;
	content: "";
}
.icon-apple::before {
    background: url('../images/apple.png') no-repeat 0 0 / 50px auto;
	box-shadow: 0 3px 6px rgb(54 69 99 / 30%);
}
.icon-facebook::before {
    background: url('../images/facebook.png') no-repeat 0 0 / 50px auto;
	box-shadow: 0 3px 6px rgb(54 69 99 / 30%);
}
.icon-google-oauth2::before {
    background: url('../images/google.png') no-repeat 0 0 / 50px auto;
	box-shadow: 0 3px 6px rgb(54 69 99 / 30%);
}
.box-all {
  position: relative !important;
}
.box-all .box-right {
  position: absolute !important;
  right: 0;
  margin-top: 0.5rem;
  margin-right: 1rem;
}

.sub_title{
	border-bottom: solid 1px #000000;
	margin-top: 25%;
}

.bottom {
    position: absolute;
    bottom: 10px;
    width: 100%;
}

.btn_b {
    font-size: 1rem;
    text-align: center;
    box-sizing: border-box;

    border-radius: 8px;
}

.btn_bl {
    background: #000000;
    color: #ffffff;
    font-size: 1rem;
    padding: 0.75rem 1.25rem 0.75rem 1.25rem;
    text-decoration: none;
    text-align: center;
    border: solid 1px;
}

.btn_wh {
    background: #ffffff;
    color: #000000;
    font-size: 1rem;
    padding: 0.75rem 1.25rem 0.75rem 1.25rem;
    text-decoration: none;
    text-align: center;
    border: solid 1px;
}

.btns {
    text-align:center;
}

#body_content .bottom {
    display: flex;
    flex-direction: column;
}

.box {
    width: 90%; 
    height: 70%;
    border: solid 1px #000;
    margin: auto;
    border-radius: 5px;
    overflow: auto;
    height: 55vh;
}

.history_item {
    margin-top: 0.3em;
    width: 95%;
    margin-left: auto;
    margin-right: auto;
    padding: 0.5em;
    word-break: break-word;
}
.history_item:nth-child(2n+1) {
    background-color: #f0ecec;
}
.history_item:nth-child(2n) {
    background-color: #cccbcb;
}
.history_item .item_header {
	display: inline-block;
}

.box1 {
    background-color: #cccbcb;
    margin-top: 0.3em;
    width: 95%;
    margin-left: auto;
    margin-right: auto;
    padding: 0.5em;
}

.box2 {
    background-color: #f0ecec;
    margin-top: 0.3em;
    width: 95%;
    margin-left: auto;
    margin-right: auto;
    padding: 0.5em;
}

.box3 {
    border: solid 1px rgb(174, 174, 174);
    margin-top: 0.3em;
    width: 95%;
    margin-left: auto;
    margin-right: auto;
    padding: 0.5em;
    border-radius: 2px;
}

.toggle-input {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
    opacity: 0;
    cursor: pointer;
  }
  
  .toggle-label {
    width: 80px;
    height: 30px;
    background: #ccc;
    position: relative;
    display: inline-block;
    border-radius: 46px;
    transition: 0.4s;
    box-sizing: border-box;
  }

  /*〇のスタイル*/
  .toggle-label:after {
    content: "";
    position: absolute;
    width: 30px;
    height: 30px;
    border-radius: 100%;
    left: 0;
    top: 0;
    z-index: 2;
    background: #fff;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
    transition: 0.4s;
  }
  
  .toggle-input:checked + .toggle-label {
    background-color: #96c0d0;
  }
  .toggle-input:checked + .toggle-label:after {
    left: 50px;
  }
  
  .toggle-switch {
    position: relative;
    width: 75px;
    height: 42px;
    margin: auto;
  }

  .toggle-switch label span:after{
    content        : "未設定";               /* 表示する文字       */
    padding        : 0 0 0 36px;          /* 表示する位置       */
    color          : #999999;             /* 文字色             */
    font-size: 12px;
  }

  .toggle-switch  input[type="checkbox"]:checked + label span:after{
    content        : "設定済";                /* 表示する文字       */
    padding        : 0 36px 0 0;          /* 表示する位置       */
    color          : black;             /* 文字色             */
  }



  #message {
    position: relative;
    top: 10em;
    left: auto;
    margin: 0 auto;
    height: 50%;
    max-width: 450px;
    border: 1px solid lightgrey;
    border-radius: 2px;
}

.messageIn {
    margin-top: 2em;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
}

.inquiry {
    height: 13em;
    font-family: sans-serif;
    white-space: pre-wrap ;
}

.line img {
    vertical-align: middle;
    display: inline-block;
}

.right {
    margin: 0 0 0 auto;
}


/* -------------------------------------------------
 * facebook login page
 * ------------------------------------------------- */


.fb_bg_color {
    background-color: #e9ebee;
    height: 70%;
    width: 100%;
    margin: 0em;
}

.box5 {
    background-color: white;
    position: relative;
    top: 3em;
    left: 15em;
    height: 60%;
    max-width: 600px;
    margin: 1.5rem 0 2rem 0;
}

div.fb_title{
    text-align: center;
    padding-top: 30px;
    
}

.fb_description {
    padding: 1rem 0rem;
    margin-top: 50px;
}

.fb_input {
    width: 60%;
    height: 40px;
    margin: auto;
    
}

.fb_mailtel,
.fb_pass {
    margin-top: 10px;
    height: 40px;
}

button.fb_login {
    width: 60%;
    height: 40px;
    margin: auto;
    background-color: #365899;
    color: #FFFFFF;
    font-weight: bold;
}

.line100 {
    border: solid 1px #ccc;
    width: 120px;
}


button.fb_new {
    width: 40%;
    height: 40px;
    margin: auto;
    background-color: #36a420;
    color: #FFFFFF;
    font-weight: bold;
    margin-top: 10px;
}

.grecaptcha-badge {
	z-index: 10000 !important;
}