@charset "UTF-8";
/*===========================================
headline
===========================================*/
.headline_1_under {
  color: #00205b;
}

html:not(.sp) .headline_1_outer {
  display: flex;
  align-items: center;
  width: 100%;
  height: 176px;
  background-color: #fff;
}

html:not(.sp) .headline_1 {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  font-size: 38px;
  line-height: 1.4;
}

html:not(.sp) .headline_2 {
  margin-bottom: calc(60px - ((28px * 0.4) / 2));
  font-size: 22px;
  line-height: 1.4;
}

html:not(.sp) .headline_3 {
  margin-bottom: 36px;
  font-size: 22px;
  line-height: 1.4;
}

html:not(.sp) .headline_4 {
  font-size: 17px;
}

html.sp .headline_1_outer {
  background-color: #fff;
}
html.sp .headline_1 {
  padding: 40px 0;
  font-size: 26px;
  line-height: 1.4;
  text-align: center;
}

html.sp .headline_2 {
  margin-bottom: calc(30px - ((24px * 0.4) / 2));
  font-size: 1.17em;
  line-height: 1.4;
}

html.sp .headline_3 {
  margin-bottom: calc(30px - ((22px * 0.4) / 2));
}

/*===========================================
local_navi
===========================================*/
.local_navi {
  width: 100%;
  background-color: #00205b;
}

.local_navi_box {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.local_navi_list {
  display: inline-block;
  line-height: 1.4;
  vertical-align: middle;
}

html:not(.sp) .local_navi_list{
  font-size: 20px;
}

html:not(.sp) .local_navi_list-top {
  margin-right: 0;
  margin-left: auto;
  font-size: 15px;
}

.local_navi_list a {
  display: block;
  padding: 32px 30px;
  color: #fff;
  text-decoration: none;
  opacity: 1;
  transition: opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.local_navi_list.is-current a {
  opacity: 0.7;
}

html:not(.sp) .local_navi_list a:hover {
  text-decoration: none;
  opacity: 0.7;
}

html.sp .local_navi_box {
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
  margin-left: -1px;
}

html.sp .local_navi_list {
  flex-basis: auto;
  flex-grow: 0;
  flex-shrink: 0;
  width: 50%;
  border-left: 1px solid #2f456d;
}
html.sp .local_navi_list.local_navi_list-full {
  width: 100%;
  border-bottom: 1px solid #2f456d;
}

html.sp .local_navi_list:nth-child(n + 4) {
  border-top: 1px solid #2f456d;
}

html.sp .local_navi_list a {
  padding: 0.8em;
  text-align: center;
}

/*===========================================
icons
===========================================*/
/* PDF */
.icon_pdf {
  display: inline-block;
  position: relative;
}

.icon_pdf:after {
  box-sizing: border-box;
  display: inline-block;
  position: relative;
  top: -2px;
  left: 0;
  width: 34px;
  margin-left: 5px;
  padding: 4px 2px 2px 2px;
  border: solid 1px #ff0000;
  border-radius: 0.2em;
  background-color: #fff;
  background-image: none;
  color: #ff0000;
  font-size: 10px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  content: 'PDF';
}
/* YOUTUBE */
.icon_youtube {
  display: inline-block;
  position: relative;
}

.icon_youtube:after {
  box-sizing: border-box;
  display: inline-block;
  position: relative;
  top: -2px;
  left: 0;
  width: 54px;
  margin-left: 5px;
  padding: 4px 2px 2px 2px;
  border: solid 1px #ff0000;
  border-radius: 0.2em;
  background-color: #fff;
  background-image: none;
  color: #ff0000;
  font-size: 10px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  content: 'YouTube';
}

/*===========================================
button
===========================================*/
/* button layout */
.buttonContainer {
  margin: 0;
  padding: 0;
  font-size: 0;
  text-align: center;
}

/* button icon
-------------------------------- */
.button_icon {
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-right: 0.5em;
  background-image: url('/common/images/icon_search.png');
  background-repeat: no-repeat;
  background-size: 24px 24px;
  content: '';
}

/* button label
-------------------------------- */
.button_label {
  color: #ffffff;
}

html.IE:not(.sp) .button_label {
  -webkit-transform: translateY(0.2em);
  transform: translateY(0.2em);
}

/* button primary
-------------------------------- */
.button_primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #003477;
  color: #ffffff;
  font-weight: bold;
  text-decoration: none;
  vertical-align: top;
  cursor: pointer;
  opacity: 1;
  transition: opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

html:not(.sp) .button_primary {
  width: 360px;
  height: 100px;
  font-size: 24px;
}

html:not(.sp) .button_primary + .button_primary {
  margin: 0 0 0 60px;
}

html.sp .button_primary {
  width: 100%;
  height: 82px;
  font-size: 18px;
}

html.sp .button_primary + .button_primary {
  margin: 30px 0 0 0;
}

/* button hover */
.button_primary:hover {
  text-decoration: none;
}

html:not(.sp):not(.tablet) .button_primary:hover {
  opacity: 0.7;
}

/*===========================================
block
===========================================*/
.block {
  margin-right: auto;
  margin-left: auto;
  padding: 100px 20px;
}

.headline_1_outer + .block {
	margin-top: 0;
	padding-top: 0;
}
main > .block:last-child{
	padding-bottom: 160px;
}

html.sp .block {
  padding: calc(110 / 750 * 100%) 16px;
}
html.sp .headline_1_outer + .block {
	margin-top: 0;
	padding-top: 0;
}
html.sp .headline_1_outer + .block[class*="bg-color-"]{
	padding-top: calc(110 / 750 * 100%);
}
html.sp main > .block:last-child{
	padding-bottom: calc(160 / 750 * 100%);
}

.block_inner {
  width: 100%;
  max-width: 1100px;
  margin-right: auto;
  margin-left: auto;
}

.block_inner-small {
  max-width: 900px;
}

/*===========================================
box
===========================================*/
/* cardbox
-------------------------------- */
.cardbox_outer {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}

.cardbox_link {
  display: block;
  cursor: pointer;
  opacity: 1;
  transition: opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.cardbox_link:hover {
  text-decoration: none;
}

.cardbox_link .cardbox_label {
  color: #1a1a1a;
  margin-top: 0.6em;
}

html:not(.sp):not(.tablet) .cardbox_link:hover {
  opacity: 0.7;
}

.cardbox-col2 {
  margin: -30px -30px 0 -30px;
}

.cardbox-col2 .cardbox {
  flex-grow: 0;
  flex-shrink: 1;
  width: calc(50% - 60px);
  margin: 30px 30px 0 30px;
}

html.sp .cardbox-col2 {
  margin: -8px -8px 0 -8px;
}

html.sp .cardbox-col2 .cardbox {
  flex-grow: 0;
  flex-shrink: 1;
  width: calc(50% - 16px);
  margin: 8px 8px 0 8px;
}

html:not(.sp) .cardbox-col3 {
  margin: -24px -24px 0 -24px;
}

html:not(.sp) .cardbox-col3 .cardbox {
  flex-grow: 0;
  flex-shrink: 1;
  width: calc(33.333% - 48px);
  margin: 24px 24px 0 24px;
}

html.sp .cardbox-col3 {
  margin: -8px -8px 0 -8px;
}

html.sp .cardbox-col3 .cardbox {
  flex-grow: 0;
  flex-shrink: 1;
  width: calc(50% - 16px);
  margin: 8px 8px 0 8px;
}

html:not(.sp) .cardbox-col4 {
  margin: -16px -16px 0 -16px;
}

html:not(.sp) .cardbox-col4 .cardbox {
  flex-grow: 0;
  flex-shrink: 1;
  width: calc(25% - 32px);
  margin: 16px 16px 0 16px;
}

html.sp .cardbox-col4 {
  margin: -8px -8px 0 -8px;
}

html.sp .cardbox-col4 .cardbox {
  flex-grow: 0;
  flex-shrink: 1;
  width: calc(50% - 16px);
  margin: 8px 8px 0 8px;
}

/* white_box
-------------------------------- */
.white_box {
  width: 100%;
  max-width: 1100px;
  margin-right: auto;
  margin-left: auto;
  padding: 70px;
  background-color: #fff;
}

.white_box + .white_box {
  margin-top: 30px;
}

:not(.white_box) + .white_box {
  margin-top: 0px;
}

html.sp .white_box {
  padding: 30px 20px;
}

html:not(.sp) .white_box_title {
  margin-bottom: calc(30px - ((22px * 0.4) / 2));
  font-size: 22px;
  line-height: 1.4;
}

/*===========================================
list
===========================================*/
.list_disc .list_disc_item {
  margin-bottom: 20px;
  list-style-type: disc;
}

.list_disc .list:last-of-type {
  margin-bottom: 0;
}

.list_disc .list_disc_item a {
  display: block;
  color: #1a1a1a;
  text-decoration: none;
}

.list_disc .list_disc_item .main_text {
  display: block;
  font-weight: bold;
}

.list_disc .list_disc_item .sub_text {
  display: block;
}

html:not(.sp) .list_disc .list_disc_item a:hover {
  color: #1a1a1a;
  text-decoration: underline;
}

html:not(.sp) .list_disc .list_disc_item .main_text {
  font-size: 18px;
}

html:not(.sp) .list_disc .list_disc_item .sub_text {
  font-size: 15px;
}

html:not(.sp) .list_disc {
  padding-left: 18px;
}
html.sp .list_disc {
  padding-left: 16px;
}

/*===========================================
table
===========================================*/
/*
table style
----------------------------------*/
.table {
  width: 100%;
  max-width: 1100px;
  text-align: left;
}

/* pc */
html:not(.sp) .table {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

html:not(.sp) .table_body_title {
  width: 180px;
  padding: 20px 30px;
  border: solid 1px #ccc;
  background-color: #f5f5f5;
  vertical-align: top;
}

html:not(.sp) .table_body_cell {
  padding: 20px 30px;
  border: solid 1px #ccc;
}

/* sp */
html.sp .table {
  display: block;
}

html.sp .table_body {
  display: block;
}

html.sp .table_body_row {
  display: block;
}

html.sp .table_body_row:first-child {
  border-top: 0px;
}

html.sp .table_body_title {
  display: block;
  padding: 10px 15px;
  background-color: #f5f5f5;
}

html.sp .table_body_cell {
  display: block;
  padding: 10px 15px;
}

.table_ft_note {
  margin-top: 0.6em;
}

/*
data_table style
----------------------------------*/
.data_table {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  text-align: left;
}

.data_table_head_title {
  padding: 20px 30px;
  border: solid 1px #ccc;
  background-color: #808080;
  color: #fff;
}

.data_table_head_title:first-of-type {
  width: 180px;
}

.data_table_head_cell {
  border: solid 1px #ccc;
}

.data_table_body_title {
  padding: 20px 30px;
  border: solid 1px #ccc;
}

.data_table_body_cell {
  padding: 20px 30px;
  border: solid 1px #ccc;
}

/* sp */
html.sp .data_table_head_title {
  padding: 10px 15px;
}

html.sp .data_table_body_title {
  padding: 10px 15px;
}

html.sp .data_table_body_cell {
  padding: 10px 15px;
}
.data_table_ft_note {
  margin-top: 0.6em;
}

/*===========================================
sp boxscroll
===========================================*/
html:not(.sp) .txt_sp_scroll {
  display: none;
}

html.sp .txt_sp_scroll {
  position: relative;
  padding-left: 34px;
}

html.sp .txt_sp_scroll:before {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 26px;
  height: 30.5px;
  margin: auto;
  background: url(/common/images/ico_swipe.png) center no-repeat;
  background-size: contain;
  content: '';
}

html.sp .box_sp_scroll {
  -webkit-overflow-scrolling: touch;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
}

html.sp .box_sp_scroll .box_sp_scroll_head img {
  width: auto;
  height: 30px;
}

html.sp .box_sp_scroll > .minW640 {
  min-width: 640px;
}

html.sp .box_sp_scroll > .minW780 {
  min-width: 780px;
}

html.sp .box_sp_scroll > .minW960 {
  min-width: 960px;
}

html.sp .box_sp_scroll > .minW1100 {
  min-width: 1100px;
}

html.sp .txt_sp_scroll + .box_sp_scroll {
  margin-top: 0.75em;
}

/*===========================================
accordion
===========================================*/
.accArea {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
}
.accArea + .accArea{
  margin-top: 10px;
}
.accBtn {
  position: relative;
  padding: 30px;
}

.accBtn_label {
  position: relative;
  font-size: 20px;
  padding-left: 20px;
  font-weight: bold;
  cursor: pointer;
}
.accBtn_label::before{
  content: "+";
  position: absolute;
  left: -1px;
  top: calc(50% - 18px);
  color: #027fea;
  background:none;
}
.accBtn_label.active::before{
  position: absolute;
  content: "";
  left: 0;
  top: calc(50% - 2px);
  background-color: #027fea;
  width: 12px;
  height: 2px;
}
html.sp .accBtn {
  padding: 20px;
}

html.sp .accBtn_label {
  font-size: 17px;
}

.accIn {
  display: none;
  padding: 25px 75px 70px;
}
html.sp .accIn {
  padding: 0px 20px 25px;
}

/*===========================================
utility
===========================================*/
.u-text-center {
  text-align: center;
}

.u-font-bold {
  font-weight: bold;
}
