@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700&display=swap');

/*==========================================
全体
===========================================*/
html {
	font-size: 62.5%;
}
body {
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	background-color: #F8F8F8;
	color: #002060;
	letter-spacing: 0.5px;
}

/*==========================================
調整用
===========================================*/
.red {
  color: #FF0000;
}
.blue {
  color: #0070c0;
}
.black {
  color: #000000;
}
.white{
	color:#FFF!important;
}
.bold {
  font-weight: bold;
}
.center {
  text-align: center;
}
.spacer20 {
  height: 20px;
}
.spacer30 {
  height: 30px;
}
.spacer50 {
  height: 50px;
}
.spacer100 {
  height: 100px;
}
.btnmode {
	-ms-user-select: none; /* IE 10+ */
	-moz-user-select: -moz-none;
	-khtml-user-select: none;
	-webkit-user-select: none;
	user-select: none;
	cursor: pointer;
}
.disable-scroll {
	overflow-y: hidden;
}
.hide {
	display: none;
}
.blur {
  filter: blur(30px);
  opacity: 0.8;
}
.lightblue{
	color:#1F85E1;	
}
.mt-10{
	margin-top: -10px!important;
}
.mt-20{
	margin-top: -20px!important;
}
.mt0{
	margin-top: 0!important;
}
.mt5{
	margin-top: 5px!important;
}
.mt10{
	margin-top: 10px!important;
}
.mt20{
	margin-top: 20px!important;
}
.mt30{
	margin-top: 30px!important;
}
.mt40{
	margin-top: 40px!important;
}
.mt50{
	margin-top: 50px!important;
}
.mt60{
	margin-top: 60px!important;
}
.mt70{
	margin-top: 70px!important;
}
.mt80{
	margin-top: 80px!important;
}
.mb5{
	margin-bottom: 5px!important;
}
.mb10{
	margin-bottom: 10px!important;
}
.mb20{
	margin-bottom: 20px!important;
}
.mb30{
	margin-bottom: 30px!important;
}
.mb40{
	margin-bottom: 40px!important;
}
.mb50{
	margin-bottom: 50px!important;
}
.mb60{
	margin-bottom: 60px!important;
}
.mb70{
	margin-bottom: 70px!important;
}
.mb80{
	margin-bottom: 80px!important;
}
.mr5{
	margin-right: 5px!important;
}
.mr20{
	margin-right: 20px!important;
}
.mr30{
	margin-right: 30px!important;
}
.ml5{
	margin-left: 5px!important;
}
.ml20{
	margin-left: 20px!important;
}
.ml30{
	margin-left: 30px!important;
}
.pt0{
	padding-top: 0!important;
}
.pt5{
	padding-top: 5px!important;
}
.pt10{
	padding-top: 10px!important;
}
.pt20{
	padding-top: 20px!important;
}
.pt30{
	padding-top: 30px!important;
}
.pt40{
	padding-top: 40px!important;
}
.pt50{
	padding-top: 50px!important;
}
.pb0{
	padding-bottom: 0!important;
}
.pb5{
	padding-bottom: 5px!important;
}
.pb10{
	padding-bottom: 10px!important;
}
.pb20{
	padding-bottom: 20px!important;
}
.pb30{
	padding-bottom: 30px!important;
}
.pb40{
	padding-bottom: 40px!important;
}

.flex1{
	display: flex;
	justify-content: space-between;
}

.pc {
  display: none;
}
.sp {
  display: block;
}
@media only screen and (min-width:900px) /*900px以上*/ {
.pc {
  display: block;
}
.sp {
  display: none;
}
}

/*==========================================
 全体
===========================================*/
#wrapper{
	width: 100%;
	display: flex;
    flex-direction: column;
	min-height: 100vh;
	overflow: hidden;
	-webkit-transition: opacity .5s,filter .5s;
	-moz-transition: opacity .5s,filter .5s;
	-ms-transition: opacity .5s,filter .5s;
	transition: opacity .5s,filter .5s;
}

p{
	font-size: 1.6rem;
	line-height: 1.8em;
}
.main-wrapper{
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}
.side-navigation-wrapper{
	display: none;
}

@media only screen and (min-width:900px) /*960px以上*/ {
.main-wrapper{
	margin-left: 245px;
}
.side-navigation-wrapper{
	display: block;
}
}
/*==========================================
 ヘッダーのスタイル
===========================================*/
header {
	background-color: #fff;
}
.header{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 20px;
}
img.logo {
	width: 120px;
	height: auto;
	margin: 15px 0;
}
.menu-button {
	display: block;
	position: relative;
	width: 36px;
	height: 36px;
}
.hb_menu {
	display: block;
	display: flex;
	padding-right: 20px;
}
.menu-button span {
	display: block;
	width: 32px;
	position: absolute;
	transition: transform .5s, opacity .5s;
}
.menu-button span:nth-child(-n+3) {
	height: 3px;
	background-color: #002060;
	right: 0;
	left: 0;
	margin: auto;
}
.menu-button span:nth-child(1) {
	top: 4px;
}
.menu-button span:nth-child(2) {
	top: 12px;
}
.menu-button span:nth-child(3) {
	top: 20px;
}
.menu-button span:nth-child(4) {
	width: 100%;
	font-size: 1.0rem;
	bottom: -1px;
	color: #002060;
	text-align: center;
	font-weight: bold;
	text-indent: 0;
}
.menu-button.show span:nth-child(1) {
	transform: translateY(4px) rotate(-45deg);
}
.menu-button.show span:nth-child(2) {
	transform: translateY(-4px) rotate(45deg);
}

.member-name{
	display: flex;
	align-items:center; 
	padding: 10px 20px 15px;
	background-color: #fff;
}
.member-name-left{
	font-size: 1.2rem;
	background-color: #DFE4E9;
	border-radius: 30px;
	padding: 2px 20px 5px;
	margin-right: 20px;
}
.member-name-right{
	font-size: 1.4rem;		
}
.pc-top-nav{
	display: none;
}
.sp-nav{	
}
.sp-nav ul{
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.sp-nav li a{
	display: block;
	text-align: center;
	text-indent: 0;
	margin-left: 15px;
}
.sp-nav li a span	{
	display: block;
	font-size: 1.0rem;
	font-weight:bold;
	color: #222E5F;
	padding-top:5px;
	text-indent: 0;
	letter-spacing: 0!important;
}
img.top-nav-icon{
	width: 30px;
	height: auto;
}
@media only  screen and (min-width:900px) /*900px以上*/{
.header {
	padding: 0 40px;
}
img.logo {
	width: 155px;
	height: auto;
	margin: 28px 0;
  }
.sp-nav{
	display: none;
}
.hb-menu {
	display: none;
}
.member-name-n{/*マイページヘッダー部分*/
	display: flex;
	align-items:center; 
	padding: 10px 20px 5px 0;
	background-color: #222E5F;
}
.member-name{
	position: relative;
}
.pc-top-nav{
	display: block;
	display: flex;
	align-items: flex-start;
	position: relative;
	top: -10px;
}
.pc-nav {
	display: block;
	display: flex;

}
.pc-nav ul{
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.pc-nav li a{
	display: block;
	text-align: center;
	text-indent: 0;
	margin-left: 15px;
}
.pc-nav li a span	{
	display: block;
	font-size: 1.0rem;
	font-weight:bold;
	color: #222E5F;
	padding-top:5px;
	text-indent: 0;
	letter-spacing: 0!important;
}
img.top-nav-icon{
	width: 30px;
	height: auto;
}
}
/*==========================================
 タイトル部分
===========================================*/
.title-bg {
	padding: 10px 20px;
	background-color: #222E5F;
}
 h1.title {
	font-size: 1.8rem;
	color: #FFF;
} 
img.title-icon{
	width: 40px;
	height: auto;
	margin-right: 10px;
}
.title-bg2 {
	padding: 20px;
	background-color: #222E5F;
}
 h1.title2 {
	font-size: 1.8rem;
	line-height: 1.4em;
	color: #FFF;
} 
@media only screen and (min-width:900px) /*900px以上*/ {
.title-bg {
 	padding-left: 40px;
  }
h1.title {
	font-size: 2.0rem;
}
img.title-icon{
	width: 50px;
	height: auto;
	margin-right: 15px;
}
.title-bg2 {
 	padding: 30px 40px;
}
 h1.title2 {
	font-size: 2.0rem;
}
}
/*==========================================
contentsの中のタイトル部分
===========================================*/
h2.subtitle{
	border-left: 8px solid #222E5F;
	font-size: 1.6rem;
	line-height: 1.3em;
	font-weight: bold;
	padding: 4px 15px;
}
h3.subject{
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.6em;
	margin-bottom: 10px;
}
/*==========================================
contents部分
===========================================*/
.contents {
	padding: 50px 0;
	margin-right: auto;
	margin-left: auto;
	max-width: 1080px;
}
.contents-bg{
	width: 100%;
	background-color: #fff;
	margin: 0 auto;
	padding: 40px 20px;
}
.top-text{
	margin: 0 20px 40px;
}
.text-s{
	font-size: 1.4rem;
	line-height: 1.8em;
}
@media only screen and (min-width:768px) /*768px以上*/ {
.contents {
	padding: 60px 25px;
	margin-right: auto;
	margin-left: auto;
}
.contents-bg{
	padding: 60px;
	border-radius: 12px;
}
.top-text{
/*	margin-left: 0;*/
}
}
/*===============================
ログイン画面
=================================*/
.login-wrapper{
	width: 90%;
	max-width: 580px;
	margin: 0px auto;
	padding: 50px 0;
}
.text{
	margin-bottom: 30px;
}
@media only screen and (min-width:900px) /*900px以上*/ {
.login-wrapper{
	padding: 70px 0;
}
}
/*===============================
メンバーページトップ
=================================*/
.info{
}
.info h2{
	font-size: 1.6rem;
	font-weight: bold;
	margin: 20px 0 40px;
}
.info-text{
	padding-bottom: 30px;
}
@media only screen and (min-width:900px) /*900px以上*/ {
.info h2{
	font-size: 1.8rem;
	font-weight: bold;
	margin: 20px 0 60px;
}
.info-text{
	padding-bottom: 50px;
}
}
/*===============================
メンバーページのヘルプページ
=================================*/
.help-text{
	margin-left: 20px;
}
ul.help-text2{
	margin-left: 25px;
	list-style-type: disc;
}
ul.help-text2 li{
	font-size: 1.6rem;
	line-height: 1.6em;
	text-indent: -1;
	padding-left: 1;
	margin-bottom: 15px;
}
img.member-card{
	display: block;
	width: 100%;
	max-width: 600px;
	height: auto;
	margin: 0 auto;
}
.help-btn{
	text-align: center;
}
@media only screen and (min-width:500px) /*900px以上*/ {
.help-btn{
	text-align: left;
}
}
@media only screen and (min-width:900px) /*900px以上*/ {
img.member-card{
	 margin-left: 20px;
}
}
/*================================
入力フォーム部分
==================================*/
.form-wrapper{
	max-width: 800px;
	margin: 0 auto;
}
table.form-table {
	border-collapse: collapse;
}
table.form-table {
	width: 100%;
}
table.form-table th,
table.form-table td {
	display: block;
	width: 100%;
}
table.form-table td {
	padding: 20px 0 50px;
	text-align: left;
	font-size:	1.6rem;
	line-height: 1.4em;
	color: #002060;
}
table.form-table th {
	font-size: 1.6rem;
	line-height:1.5em;
	font-weight: bold;
	color: #002060;
	position: relative;
	text-align: left;
}
.popup-body table.form-table td {
	padding-bottom: 30px;
}
.inquiry{
	font-size: 1.4rem;
	padding-top: 10px;
}
a.link{
	color: #1F85E1;
	text-decoration: underline;
}
.form-text{
	margin: 0 0 30px;
	font-size: 1.6rem;
	line-height: 1.8em;
}
.required::after{
	content: "必須";
	color: #fff;
	font-size: 1.2rem;
	font-weight: normal;
	background-color: #009E96;
	padding: 0 15px 2px;
	margin-left: 15px;
	border-radius: 4px;
	top: -2px;
	position: relative;
	word-break: keep-all;
}
@media only screen and (min-width:900px) /*900px以上*/ {
}
/*=====================================
入力フォーム
======================================*/
input[type="submit"],
input[type="text"],
input[type="password"],
input[type="tel"],
select,
textarea,
button {
	-moz-appearance: none;
	-webkit-appearance: none;
	-webkit-box-shadow: none;
	box-shadow: none;
	outline: none;
	border: none;
}

input[type="text"],
input[type="password"],
input[type="tel"],
textarea {
    background: #fff;
    font-size: 16px;
	color: #222E5F;
    padding: 9px 15px;
    transition: 0.8s;
    border-radius: 5px;
    border: 1px solid #BFC9D3;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
 
input[type="text"]:focus,
input[type="password"]:focus,
input[type="tel"]:focus,
textarea:focus {
	background: #f8f8f8;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
  
input::placeholder,
textarea::placeholder {
	color: #ccc;
}
 
::-webkit-input-placeholder {
	color: #ccc;
	opacity: 1;
}
 
::-moz-placeholder {
	color: #ccc;
	opacity: 1;
}
 
:-ms-input-placeholder {
	color: #ccc;
	opacity: 1;
}
.input-1{
	width:100%;
}
.input-2{
	width:100%;
}
.input-3{
	width:38%;
	max-width: 250px;
}
.input-4{
	width: calc(100% - 90px);
}
.input-5{
	width: calc(100% - 165px);
}
.input-6{
	width: 100px;
}
.error-form {
	border-color: #e9322d !important;
	-webkit-box-shadow: 0 0 6px #f8b9b7 !important;
	-moz-box-shadow: 0 0 6px #f8b9b7 !important;
	box-shadow: 0 0 6px #f8b9b7 !important;
}
.error-msg {
	color: #ff0000;
	margin-top: 10px;
}
@media only screen and (min-width:900px) /*900px以上*/ {
.input-2{
	width:60%;
}
}
/*=====================================
セレクトボックス
======================================*/
.selectbox {
    display: inline-flex;
    align-items: center;
    position: relative;
	margin-bottom: 15px;
}

.selectbox::after {
    position: absolute;
    right: 15px;
    width: 10px;
    height: 7px;
    background-color: #009E96;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    content: '';
    pointer-events: none;
}
.selectbox select {
    appearance: none;
    height: 2.6em;
	/*padding: .4em calc(.8em + 30px) .4em .9em;*/
	padding: 5px calc(15px + 30px) 8px 15px;
    border: 1px solid #BFC9D3;
    border-radius: 3px;
    background-color: #fff;
    color: #333333;
    font-size: 1.6rem;
    cursor: pointer;
}
.birthyear{
	width: 200px;
}
.s-space{
	padding-left: 5px;
	padding-right: 10px;
}
.sp-only {
  display: block;
}

@media screen and (min-width: 575px) {
.sp-only {
    display: none;
  }
.birthyear{
	width: 150px;
}
}
@media only screen and (min-width:768px) /*768px以上*/ {
.s-space{
	padding-right: 15px;
}
}
/*==========================================
チェックボックス
===========================================*/

.checkboxItem {
	display: flex;
	align-items: center;
	column-gap: 8px;
	width: fit-content;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
}

.checkboxItem:not(:last-of-type) {
	margin-bottom: 16px;
}

.checkbox {
	appearance: none;
	position: relative;
	width: 20px;
	height: 20px;
	border: 2px solid #BFC9D3;
	border-radius: 2px;
	cursor: pointer;
}

.checkbox:checked::after {
	content: "";
	position: absolute;
	top: -3px;
	left: 3px;
	width: 18px;
	height: 10px;
	border-bottom: 3px solid #009E96;
	border-left: 3px solid #009E96;
	transform: rotate(-45deg);
}
@media only screen and (min-width:900px) /*900px以上*/ {
.checkboxItem {
	font-size: 1.8rem;
	line-height: -1;
}
}
/*==========================================
ラジオボタン
===========================================*/
.radio-item {
	display: flex;
	flex-flow: column;
}
.radio-item label{
	display: inline-block;
	font-size: 1.6rem;
	color: #112a51;
	cursor: pointer;
	margin: 0 0 20px -5px;
}
.radio-item2 {
}
.radio-item2 label{
	display: inline-block;
	font-size: 1.6rem;
	color: #112a51;
	cursor: pointer;
	margin-left: -5px;
	margin-right: 25px;
	margin-bottom: 20px;
}
.radio-item3 label{
	display: inline-block;
	font-size: 1.6rem;
	color: #112a51;
	cursor: pointer;
	margin: 30px 0 20px; 
	margin-left: -5px;
	margin-right: 25px;
}
input[type="radio"] {
	appearance: none;
	}
input[type="radio"] {
	position: relative;
	width: 20px;
	height: 20px;
	border: 1px solid #8c9eb5;
	border-radius: 50%;
	top: -3px;
}
input[type="radio"]:checked:before {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #009e96;
	content: '';
}

/*==========================================
	ボタン関係
===========================================*/
button.small-btn {
	width: 100%;
	max-width: 100px;
	background-color: #000;
	color: #fff;
	padding: 4px 0 6px;
	font-size: 1.4rem;
	border-radius: 30px;
    cursor: pointer;
	/*margin: 10px 5px;*/
}
button.base {
	width: 100%;
	max-width: 300px;
	background-color: #000;
	color: #fff;
	padding: 8px 0 12px;
	font-size: 1.8rem;
	border-radius: 30px;
    cursor: pointer;
	margin: 10px 5px;
}
button.ok {
	background-color: #009E96;
	color: #fff;
}
button.cancel {
	border: 1px solid #009E96;
	background-color: #fff;
	color: #009E96;
}
button {
	transition: filter 0.3s ease;
}
button:hover {
	filter: saturate(160%) brightness(105%);
}

button:disabled {
	border: 1px solid #DFE4E9;
	background-color: #DFE4E9;
	color: #fff;
	filter: saturate(100%) brightness(100%);
	cursor:not-allowed;
}
.btn-wrapper{
	display: flex;
	flex-flow: column;
	align-items: center;
	margin-top: 40px;
}
/*==========================================
	フッター
===========================================*/
footer{
	width:100%;
	padding: 20px;
	margin-top: auto;
	text-align: center;
	background-color: #4C627C;

}

footer p{
	font-size: 1.2rem;
	color: #FFFFFF;
}

/*==========================================
テーブルデザインcss 全体
===========================================*/
table.layout1{
	width: 100%;
	table-layout:fixed;
	border-collapse: collapse;
  	border-spacing: 0;
}
table.layout1 tr:first-child{
    border-top: 2px solid #454545;
}
table.layout1 tr:last-child{
	border-bottom: solid 2px #454545;
}
table.layout1 th,
table.layout1 td{
	border: dotted 1px #989898;
}
table.layout1 th:first-child,
table.layout1 td:first-child{
	border-left: none;
}
table.layout1 th:last-child,
table.layout1 td:last-child{
	border-right: none;
}
table.layout1 th,
table.layout1 td{
	font-size: 1.2rem;
	line-height: 1.4em;
	padding: 13px 10px;
	vertical-align: middle;
}
table.layout1 th{
	background-color: #DFE4E9;
}
table.layout1 td{
	background-color: #fff;
}

/*layout2　td センター用*/
table.layout2 td{
	text-align: center;
}

@media only screen and (min-width:900px)/*900px以上*/{
table.layout1 th,
table.layout1 td{
	font-size: 1.4rem;
	line-height: 1.8em;
	}
}
/*==========================================
エラー
===========================================*/
.error {
	background-color: #ffeaea !important;
}
.error-message {
	color: #ff0000;
	font-size: 1.4rem;
	margin-top: 10px;
}