@charset "UTF-8";
/*-------------------
  ブレイクポイント
--------------------*/
/*-------------------
  カラー
--------------------*/
.forMIN {
  display: none !important;
}
@media screen and (max-width: 480px) {
  .forMIN {
    display: block !important;
  }
  .forMIN.inline {
    display: inline !important;
  }
}

.forSE {
  display: none !important;
}
@media screen and (max-width: 374px) {
  .forSE {
    display: block !important;
  }
}

.forSEi {
  display: none !important;
}
@media screen and (max-width: 374px) {
  .forSEi {
    display: inline !important;
  }
}

.nonSP {
  display: none !important;
}
@media all and (min-width: 768px) {
  .nonSP {
    display: block !important;
  }
}

.nonSPi {
  display: none !important;
}
@media all and (min-width: 768px) {
  .nonSPi {
    display: inline !important;
  }
}

.forSP {
  display: none !important;
}
@media all and (max-width: 767px) {
  .forSP {
    display: block !important;
  }
}

.forSPi {
  display: none !important;
}
@media all and (max-width: 767px) {
  .forSPi {
    display: inline !important;
  }
}

.forTB {
  display: none !important;
}
@media all and (max-width: 1024px) {
  .forTB {
    display: block !important;
  }
}

.forTBi {
  display: none !important;
}
@media all and (max-width: 1024px) {
  .forTBi {
    display: inline !important;
  }
}

.forPC {
  display: none !important;
}
@media all and (min-width: 1025px) {
  .forPC {
    display: block !important;
  }
}

.forPCi {
  display: none !important;
}
@media all and (min-width: 1025px) {
  .forPCi {
    display: inline !important;
  }
}

.nonPC {
  display: block !important;
}
@media all and (min-width: 1025px) {
  .nonPC {
    display: none !important;
  }
}

.nonPCi {
  display: inline !important;
}
@media all and (min-width: 1025px) {
  .nonPCi {
    display: none !important;
  }
}

.futura {
  font-family: futura-pt, sans-serif;
  font-weight: 500;
  font-style: normal;
}

.roboto {
  font-family: "Roboto", sans-serif;
}

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

html {
  font-size: 100%;
}

body {
  line-height: 1;
}

article, aside, details, figcaption, figure,
footer, header, main, hgroup, menu, nav, section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

address {
  font-style: normal;
}

a {
  color: #363636;
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

/*矢印消す*/
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield !important;
}

input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #fff inset;
  -webkit-text-fill-color: #002958;
}

/*
input, select {
    vertical-align:middle;
    -webkit-appearance: none;
}
*/
.data_block {
  display: block;
}

.data_block + .data_block {
  margin-top: 0.5em;
}

.inline-block {
  display: inline-block;
}
.inline-block.addMgn {
  margin: 5px;
}

ul, ol, li {
  list-style-type: none;
}

/*--------------------------
共通
--------------------------*/
body {
  font-family: "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  font-size: 13px;
}
@media all and (min-width: 768px) {
  body {
    font-size: 14px;
  }
}
@media all and (min-width: 1025px) {
  body {
    font-size: 16px;
  }
}

img {
  width: 100%;
}

@media all and (min-width: 1025px) {
  a {
    transition: all 0.3s;
  }
  a:hover {
    color: #0762AE;
  }
}

.is_hide {
  display: none !important;
}

.bold {
  font-weight: bold;
}

.inline {
  display: inline !important;
  width: auto !important;
}

.inline_block {
  display: inline-block;
  width: auto !important;
}

.align_center {
  text-align: center;
}

.align_right {
  text-align: right;
}

.align_left {
  text-align: left;
}

@media all and (min-width: 1025px) {
  .align_center_pc {
    text-align: center;
  }
  .align_right_pc {
    text-align: right;
  }
  .pc_flex {
    display: flex;
  }
  .pc_flex.is_between {
    justify-content: space-between;
  }
  .pc_flex.is_center {
    justify-content: center;
  }
}

.noMgnT {
  margin-top: 0 !important;
}

.noMgnB {
  margin-bottom: 0 !important;
}

.noPdgT {
  padding-top: 0 !important;
}

.noPdgB {
  padding-bottom: 0 !important;
}

.no_disp {
  display: none;
}

.underline {
  text-decoration: underline;
}
@media all and (min-width: 1025px) {
  .underline {
    transition: all 0.3s;
  }
  .underline:hover {
    color: #16426E;
    text-decoration: underline;
  }
}

.color_red {
  color: #dd1e3b;
}

/*--------------------------
レイアウト
--------------------------*/
.g_main {
  padding-top: 60px;
}
@media all and (min-width: 768px) {
  .g_main {
    padding-top: 70px;
  }
}
@media all and (min-width: 1025px) {
  .g_main {
    padding-top: 90px;
  }
}

/*--------------------------
インナー
--------------------------*/
.inner {
  margin: 0 4%;
}
@media all and (min-width: 768px) {
  .inner {
    margin: 0 50px;
  }
}
@media all and (min-width: 1025px) {
  .inner {
    margin: 0 50px;
    max-width: 1200px;
  }
}
@media all and (min-width: 1281px) {
  .inner {
    margin: 0 auto;
  }
}

/*--------------------------
セクション
--------------------------*/
.section {
  padding: 50px 0;
}
@media all and (min-width: 768px) {
  .section {
    padding: 70px 0;
  }
}
@media all and (min-width: 1025px) {
  .section {
    padding: 90px 0;
  }
}

/*--------------------------
ヘッダー
--------------------------*/
#g_header {
  padding: 10px 4%;
  height: 60px;
  position: fixed;
  width: 100%;
  background: #fff;
  z-index: 1000;
  box-sizing: border-box;
}
#g_header .g_menu_flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
#g_header .g_logo {
  width: 200px;
}
@media all and (min-width: 768px) {
  #g_header {
    height: 70px;
    padding: 10px 50px;
  }
  #g_header .g_logo {
    width: 220px;
  }
}
@media all and (min-width: 1025px) {
  #g_header {
    height: 90px;
  }
  #g_header .g_logo {
    width: 255px;
  }
  body.scroll #g_header {
    background: rgba(255, 255, 255, 0.8);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
  }
}

/*--------------------------
メニュー
--------------------------*/
@media all and (max-width: 1024px) {
  #g_menu {
    display: block;
    position: fixed;
    padding: 30px 0 40px;
    top: 60px;
    left: 100%;
    z-index: 1000;
    width: 100%;
    height: 100%;
    text-align: left;
    background-color: #2F6A9B;
    background: url(../img/home/menu_bg.svg), linear-gradient(270deg, #13446e 0%, #2f6a9b 100%);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: right -20px bottom, center center;
    transition: all 0.8s cubic-bezier(0.51, 0.09, 0.21, 0.73);
    box-sizing: border-box;
  }
  #g_menu .scrollbar {
    overflow-y: auto;
    position: fixed;
    height: 100%;
    width: 100%;
    padding-bottom: 100px;
  }
  #g_menu ul {
    padding: 0 40px;
    box-sizing: border-box;
  }
  #g_menu ul li {
    padding: 12px 0;
  }
  #g_menu ul li a {
    text-decoration: none;
  }
  #g_menu ul li a .eng, #g_menu ul li a .ja {
    display: block;
  }
  #g_menu ul li a .ja {
    color: #fff;
    font-weight: bold;
    font-size: 16px;
  }
  #g_menu ul li a .eng {
    font-family: futura-pt, sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 0.8em;
    font-size: 10px;
    color: #3D89C7;
    margin-top: 5px;
  }
  #g_menu ul li a .icon {
    display: none;
  }
  #g_menu ul li a.register .ja {
    color: #2ba2a7;
  }
}
@media screen and (min-width: 767px) and (max-width: 1024px) {
  #g_menu {
    top: 70px;
  }
  #g_menu ul {
    padding: 20px 80px;
  }
  #g_menu ul li a .ja {
    font-size: 20px;
  }
  #g_menu ul li a .eng {
    font-size: 12px;
  }
}
@media all and (min-width: 1025px) {
  #g_menu .g_button {
    min-width: 160px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #2F6A9B;
    border-radius: 30px;
    font-size: 17px;
    line-height: 42px;
    transition: all 0.3s;
  }
  #g_menu .g_button.is_white {
    color: #2F6A9B;
    background-color: #fff;
  }
  #g_menu .g_button.is_blue {
    background: #2F6A9B;
    color: #fff;
  }
  #g_menu .g_button .icon {
    display: inline-block;
    width: 17px;
    height: 17px;
  }
  #g_menu .g_button .icon::before {
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    background-position: center center;
    transition: all 0.3s;
  }
  #g_menu .g_button.register .icon::before {
    background: url(../img/home/icon_register.svg) no-repeat;
    background-size: contain;
  }
  #g_menu .g_button.login .icon::before {
    background: url(../img/home/icon_login.svg) no-repeat;
    background-size: contain;
  }
  #g_menu .g_button.logout .icon::before {
    background: url(../img/home/icon_logout.svg) no-repeat;
    background-size: contain;
  }
  #g_menu .g_button.mypage .icon {
    margin: 0 12px 0 0;
  }
  #g_menu .g_button.mypage .icon::before {
    background: url(../img/home/icon_dashboard.svg) no-repeat;
    background-size: contain;
  }
  #g_menu .g_button:hover {
    border-color: #2ba2a7;
    color: #fff;
    background-color: #2ba2a7;
  }
  #g_menu .g_button:hover.register .icon::before {
    background: url(../img/home/icon_register_hvr.svg) no-repeat;
    background-size: contain;
  }
  #g_menu .g_button:hover.mypage .icon::before {
    background: url(../img/home/icon_dashboard_hvr.svg) no-repeat;
    background-size: contain;
  }
  #g_menu ul {
    display: flex;
    box-sizing: border-box;
  }
  #g_menu ul li {
    padding: 12px 0;
  }
  #g_menu ul li + li {
    margin-left: 20px;
  }
  #g_menu ul li a {
    text-decoration: none;
  }
  #g_menu ul li a .eng {
    display: none;
  }
  #g_menu ul li a .ja {
    font-weight: bold;
    font-size: 15px;
  }
  #g_menu ul li a .icon {
    display: inline-block;
    width: 17px;
    height: 17px;
    line-height: 0;
    margin-left: 12px;
  }
  #g_menu ul li a.login .ja, #g_menu ul li a.logout .ja {
    display: none;
  }
  #g_menu ul li a.login .eng, #g_menu ul li a.logout .eng {
    display: block;
    font-family: futura-pt, sans-serif;
    font-weight: 500;
    font-style: normal;
  }
}

/*--------------------------
メニューボタン
--------------------------*/
#btnMenu {
  display: block;
  position: absolute;
  box-sizing: border-box;
  width: 60px;
  height: 60px;
  top: 0px;
  right: 0px;
  background: #2F6A9B;
  z-index: 1010;
  transform: rotate(0deg);
  transition: 0.5s ease-in-out;
}
#btnMenu span {
  display: block;
  position: absolute;
  height: 2px;
  width: 26px;
  left: 17px;
  background: #fff;
  opacity: 1;
  right: 0;
  transform: rotate(0deg);
  transition: 0.25s ease-in-out;
}
#btnMenu span:nth-child(1) {
  top: 21px;
}
#btnMenu span:nth-child(2) {
  top: 30px;
}
#btnMenu span:nth-child(3) {
  top: 39px;
  width: 18px;
}
@media all and (min-width: 768px) {
  #btnMenu {
    width: 70px;
    height: 70px;
  }
  #btnMenu span {
    left: 22px;
  }
  #btnMenu span:nth-child(1) {
    top: 26px;
  }
  #btnMenu span:nth-child(2) {
    top: 35px;
  }
  #btnMenu span:nth-child(3) {
    top: 44px;
    width: 18px;
  }
}
@media screen and (min-width: 1201px) {
  #btnMenu {
    display: none !important;
  }
}

/*--------------------------
スマホ用ログインボタン
--------------------------*/
@media all and (max-width: 1024px) {
  .btnAuth {
    display: block;
    position: fixed;
    width: 60px;
    height: 60px;
    background-color: #2ba2a7;
    padding: 10px 18px 18px;
    box-sizing: border-box;
    top: 0;
    right: 60px;
    z-index: 1010;
  }
  .btnAuth img {
    width: 24px;
    height: 24px;
    -o-object-fit: contain;
       object-fit: contain;
  }
  .btnAuth .caption {
    position: fixed;
    font-size: 10px;
    color: #fff;
    top: 40px;
    right: 60px;
    font-family: futura-pt, sans-serif;
    font-weight: 500;
    font-style: normal;
    width: 60px;
    text-align: center;
  }
}
@media all and (min-width: 768px) {
  .btnAuth {
    width: 70px;
    height: 70px;
    right: 70px;
    padding: 15px 20px 20px;
  }
  .btnAuth img {
    width: 30px;
    height: 30px;
  }
  .btnAuth .caption {
    width: 70px;
    right: 70px;
    top: 47px;
  }
}
@media all and (min-width: 1025px) {
  .btnAuth {
    display: none;
  }
}

/*--------------------------
メニューが開かれた場合
--------------------------*/
@media screen and (max-width: 1200px) {
  body.open #g_menu {
    left: 0;
  }
}
body.open #btnMenu span:nth-child(2) {
  top: 46%;
  width: 0%;
  right: 50%;
}
body.open #btnMenu span:nth-child(1) {
  top: 28px;
  transform: rotate(45deg);
}
body.open #btnMenu span:nth-child(3) {
  top: 28px;
  width: 26px;
  transform: rotate(-45deg);
}
@media all and (min-width: 768px) {
  body.open #btnMenu span:nth-child(1),
body.open #btnMenu span:nth-child(3) {
    top: 33px;
  }
}

/*--------------------------
フッター
--------------------------*/
#g_footer {
  background: #2F6A9B;
  padding: 50px 0;
  color: #fff;
}
#g_footer .name {
  font-weight: bold;
  font-size: 18px;
  margin-bottom: 30px;
  letter-spacing: 0.1em;
}
#g_footer address {
  font-style: normal;
  line-height: 2;
  font-size: 12px;
}
#g_footer address a {
  color: #fff;
}
#g_footer .f_menu {
  display: flex;
  margin-top: 30px;
}
#g_footer .f_menu a {
  color: #fff;
  font-size: 12px;
  text-decoration: underline;
}
#g_footer .copyright {
  font-size: 11px;
  margin-top: 30px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 100;
}
@media all and (max-width: 1024px) {
  #g_footer {
    text-align: center;
  }
}
@media all and (max-width: 767px) {
  #g_footer .f_menu {
    flex-direction: column;
    align-items: center;
  }
  #g_footer .f_menu li + li {
    margin-top: 10px;
  }
}
@media all and (min-width: 768px) {
  #g_footer .name {
    font-size: 24px;
  }
  #g_footer address {
    font-size: 14px;
  }
  #g_footer .copyright {
    font-size: 13px;
  }
  #g_footer .f_menu {
    flex-direction: row;
    justify-content: center;
  }
  #g_footer .f_menu li + li {
    margin: 0 0 0 20px;
  }
}
@media all and (min-width: 1025px) {
  #g_footer .pc_cols {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  #g_footer .pc_cols .col:nth-child(1) {
    width: 60%;
  }
  #g_footer .pc_cols .col:last-child {
    width: 177px;
  }
  #g_footer address a {
    transition: all 0.3s;
  }
  #g_footer address a:hover {
    opacity: 0.8;
  }
  #g_footer .f_menu {
    justify-content: space-between;
    max-width: 420px;
  }
  #g_footer .f_menu a {
    font-size: 13px;
    transition: all 0.3s;
  }
  #g_footer .f_menu a:hover {
    opacity: 0.8;
  }
  #g_footer .g_button {
    min-width: 160px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #fff;
    border-radius: 30px;
    font-size: 17px;
    line-height: 42px;
    transition: all 0.3s;
  }
  #g_footer .g_button.is_white {
    color: #2F6A9B;
    background-color: #fff;
  }
  #g_footer .g_button.is_border {
    color: #fff;
  }
  #g_footer .g_button .icon {
    display: inline-block;
    width: 17px;
    height: 17px;
  }
  #g_footer .g_button .icon::before {
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    background-position: center center;
    transition: all 0.3s;
  }
  #g_footer .g_button.register .icon::before {
    background: url(../img/home/icon_register_hvr.svg) no-repeat;
    background-size: contain;
  }
  #g_footer .g_button.login .icon::before {
    background: url(../img/home/icon_login_hvr.svg) no-repeat;
    background-size: contain;
  }
  #g_footer .g_button.logout .icon::before {
    background: url(../img/home/icon_logout_hvr.svg) no-repeat;
    background-size: contain;
  }
  #g_footer .g_button.mypage .icon {
    margin: 0 12px 0 0;
  }
  #g_footer .g_button.mypage .icon::before {
    background: url(../img/home/icon_dashboard_hvr.svg) no-repeat;
    background-size: contain;
  }
  #g_footer .g_button:hover {
    border-color: #2ba2a7;
    color: #fff;
    background-color: #2ba2a7;
  }
  #g_footer .g_button:hover.login .icon::before {
    background: url(../img/home/icon_login.svg) no-repeat;
    background-size: contain;
  }
  #g_footer .g_button:hover.logout .icon::before {
    background: url(../img/home/icon_logout.svg) no-repeat;
    background-size: contain;
  }
  #g_footer ul {
    box-sizing: border-box;
  }
  #g_footer ul li + li {
    margin-top: 20px;
  }
  #g_footer ul li a {
    text-decoration: none;
  }
  #g_footer ul li a .eng {
    display: none;
  }
  #g_footer ul li a .ja {
    font-weight: bold;
    font-size: 15px;
  }
  #g_footer ul li a .icon {
    display: inline-block;
    width: 17px;
    height: 17px;
    line-height: 0;
    margin-left: 12px;
  }
  #g_footer ul li a.login .ja, #g_footer ul li a.logout .ja {
    display: none;
  }
  #g_footer ul li a.login .eng, #g_footer ul li a.logout .eng {
    display: block;
    font-family: futura-pt, sans-serif;
    font-weight: 500;
    font-style: normal;
  }
}

/*--------------------------
大見出し
--------------------------*/
.big_title {
  margin-bottom: 30px;
  line-height: 1;
}
.big_title .ja {
  display: inline-block;
  font-size: 28px;
  color: #494D4E;
  font-weight: bold;
  letter-spacing: 0.1em;
  margin-right: 10px;
}
.big_title .eng {
  display: inline-block;
  font-size: 13px;
  color: #2F6A9B;
  font-family: futura-pt, sans-serif;
  font-weight: 500;
  font-style: normal;
  margin-top: 10px;
}
@media all and (min-width: 768px) {
  .big_title {
    margin-bottom: 35px;
  }
  .big_title .ja {
    font-size: 40px;
    margin-right: 15px;
  }
  .big_title .eng {
    font-size: 20px;
  }
}

/*--------------------------
スライダー
--------------------------*/
.slick-dotted.slick-slider {
  margin-bottom: 0;
}

.slick-dots {
  bottom: 15px;
}
.slick-dots li {
  margin: 0;
}
.slick-dots li button::before {
  border-radius: 50%;
  width: 8px;
  height: 8px;
  top: calc(50% - 4px);
  left: calc(50% - 4px);
  background-color: #fff;
  margin: 0;
  content: '';
  opacity: 1;
}
.slick-dots li.slick-active button::before {
  background-color: #0762AE;
  opacity: 1;
}

#slider {
  width: 100%;
  overflow: hidden;
}
#slider img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
  -o-object-position: center center;
     object-position: center center;
}

/*--------------------------
トップページメニュー
--------------------------*/
#page_menu {
  padding: 30px 0;
  border-bottom: 1px solid #DEDEDE;
  width: 100%;
  background: #fff;
}
#page_menu ul {
  display: flex;
  justify-content: center;
  align-items: center;
}
#page_menu ul li + li {
  margin-left: 4.5%;
}
#page_menu ul li a {
  position: relative;
  font-size: 15px;
  color: #1C1C1C;
  padding-right: 20px;
  text-decoration: none;
  transition: all 0.3s;
}
#page_menu ul li a::after {
  content: "";
  width: 0;
  height: 0;
  display: block;
  position: absolute;
  border-style: solid;
  border-width: 7px 5px 0 5px;
  border-color: #707070 transparent transparent transparent;
  top: calc(50% - 3.5px);
  right: 0;
  transition: all 0.3s;
}
#page_menu ul li a:hover {
  color: #2F6A9B;
}
#page_menu ul li a:hover::after {
  border-top-color: #2F6A9B;
}

/*--------------------------
パンくず
--------------------------*/
#breadcrumb {
  padding: 15px 0;
}
#breadcrumb .breadlist {
  line-height: 1.5;
}
#breadcrumb .breadlist li {
  position: relative;
  display: inline;
}
#breadcrumb .breadlist li a,
#breadcrumb .breadlist li span {
  margin-bottom: 3px;
  color: #2F6A9B;
}
#breadcrumb .breadlist li:not(:first-child) {
  padding-left: 30px;
}
#breadcrumb .breadlist li:not(:first-child)::before {
  position: absolute;
  top: 0.5em;
  left: 9px;
  display: block;
  content: "";
  margin: 0;
  width: 0.5em;
  height: 1px;
  background: #2F6A9B;
}
@media all and (min-width: 768px) {
  #breadcrumb .breadlist li:not(:first-child)::before {
    left: 11px;
  }
}
@media all and (min-width: 1025px) {
  #breadcrumb .breadlist li {
    font-size: 15px;
  }
  #breadcrumb .breadlist li a {
    transition: all 0.3s;
  }
  #breadcrumb .breadlist li a.hvr-underline-from-left {
    display: inline-block;
    vertical-align: middle;
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    overflow: hidden;
    transition: color 0.3s;
  }
  #breadcrumb .breadlist li a.hvr-underline-from-left::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 100%;
    bottom: 5px;
    background: #262626;
    width: 0;
    height: 1px;
    transition: all 0.3s;
  }
  #breadcrumb .breadlist li a:hover {
    color: #262626;
    text-decoration: none;
  }
  #breadcrumb .breadlist li a:hover::before {
    width: 100%;
  }
}

/*--------------------------
お知らせ
--------------------------*/
#news .posts li {
  border-bottom: 1px solid #D3D3D3;
}
#news .posts li:first-child {
  border-top: 1px solid #D3D3D3;
}
#news .posts .post {
  display: block;
  position: relative;
  text-decoration: none;
  padding: 1em 30px 1em 0;
  box-sizing: border-box;
  transition: all 0.3s;
}
#news .posts .post::before, #news .posts .post::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  transition: all 0.3s;
}
#news .posts .post::before {
  background: #E2E2E2;
  width: 20px;
  height: 20px;
  top: calc(50% - 10px);
  border-radius: 50%;
  right: 0;
}
#news .posts .post::after {
  width: 4px;
  height: 4px;
  border-top: 1px solid #707070;
  border-right: 1px solid #707070;
  transform: rotate(45deg);
  top: calc(50% - 3px);
  right: 8px;
}
#news .posts .post .post_meta {
  display: flex;
  align-items: center;
}
#news .posts .post .post_meta .cat {
  border: 1px solid;
  text-align: center;
  width: 55px;
  line-height: 18px;
  margin-right: 1em;
}
#news .posts .post .post_meta .cat.is_normal {
  border-color: #2A77B7;
  color: #2A77B7;
  font-family: futura-pt, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 13px;
  letter-spacing: 0.05em;
}
#news .posts .post .post_meta .cat.is_important {
  border-color: #dd225b;
  color: #dd225b;
  font-size: 12px;
  letter-spacing: 0.3em;
}
#news .posts .post .post_meta .date {
  color: #707070;
  font-size: 13px;
  line-height: 18px;
}
#news .posts .post .post_title {
  font-size: 14px;
  font-weight: bold;
  margin-top: 10px;
  color: #262626;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media all and (max-width: 767px) {
  #news .posts {
    margin-top: 30px;
  }
  #news .posts .post::before {
    background: #2F6A9B;
  }
  #news .posts .post::after {
    border-top-color: #fff;
    border-right-color: #fff;
  }
}
@media all and (min-width: 768px) {
  #news .posts .post {
    display: flex;
    align-items: center;
    padding: 20px 40px 20px 0;
  }
  #news .posts .post .post_meta {
    width: 200px;
  }
  #news .posts .post .post_meta .cat {
    width: 54px;
    margin-right: 30px;
    line-height: 19px;
  }
  #news .posts .post .post_meta .cat.is_normal {
    font-size: 14px;
  }
  #news .posts .post .post_meta .cat.is_important {
    font-size: 13px;
  }
  #news .posts .post .post_meta .date {
    font-size: 15px;
  }
  #news .posts .post .post_title {
    margin-top: 0;
    font-size: 15px;
    max-width: calc(100% - 200px);
  }
}
@media all and (min-width: 1025px) {
  #news .posts .post:hover .post_title {
    color: #2F6A9B;
  }
  #news .posts .post:hover::before {
    background: #2F6A9B;
  }
  #news .posts .post:hover::after {
    border-top-color: #fff;
    border-right-color: #fff;
  }
  #news .big_title .ja {
    margin-right: 0;
    display: block;
  }
  #news .big_title .eng {
    display: block;
  }
  #news .pc_cols {
    position: relative;
    display: flex;
    justify-content: space-between;
  }
  #news .pc_cols .col:first-child {
    width: 180px;
    min-height: 180px;
  }
  #news .pc_cols .col:nth-of-type(2) {
    width: calc(100% - 220px);
    max-width: 860px;
  }
  #news .pc_cols .col.btn_list_wrap {
    position: absolute;
    left: 0;
    bottom: 0;
  }
}
#news .no_post {
  text-align: center;
}
@media all and (min-width: 1025px) {
  #news .no_post {
    margin-top: 50px;
  }
}

.btn_list {
  display: block;
  position: relative;
  border: 1px solid #406997;
  line-height: 40px;
  width: 100%;
  max-width: 180px;
  color: #2F6A9B;
  text-align: center;
  text-decoration: none !important;
  font-size: 14px;
  margin: 30px auto 0;
  box-sizing: border-box;
  text-decoration: none;
}
@media all and (min-width: 768px) {
  .btn_list {
    line-height: 50px;
    font-size: 15px;
    margin: 40px auto 0;
  }
}
@media all and (min-width: 1025px) {
  .btn_list {
    width: 180px;
    transition: all 0.3s;
    margin: 50px auto 0;
  }
  .btn_list:hover {
    background: #406997;
    color: #fff;
  }
}

/*--------------------------
ログイン
--------------------------*/
#auth .attention span {
  display: block;
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
  color: #494D4E;
}
#auth .attention span:first-child {
  width: 44px;
  margin: 0 auto 20px;
}
@media all and (min-width: 768px) {
  #auth .attention {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  #auth .attention span {
    display: inline-block;
    font-size: 26px;
  }
  #auth .attention span:first-child {
    margin: 0 20px 0 0;
  }
}
#auth .auth_block_wrap {
  margin-top: 30px;
}
#auth .auth_block_wrap .auth_block {
  padding: 45px 25px;
  border-radius: 5px;
  margin-top: 20px;
  font-size: 15px;
  color: #262626;
  box-sizing: border-box;
}
#auth .auth_block_wrap .auth_block .auth_title {
  text-align: center;
  font-weight: bold;
  font-size: 17px;
  margin-bottom: 40px;
}
#auth .auth_block_wrap .auth_block .text {
  color: #262626;
  line-height: 1.9;
}
#auth .auth_block_wrap .auth_block .btn_wrap {
  text-align: center;
  margin: 40px 0 0;
}
#auth .auth_block_wrap .auth_block .btn_wrap .button {
  display: inline-block;
  min-width: 180px;
  color: #fff;
  line-height: 40px;
  text-align: center;
  text-decoration: none;
}
#auth .auth_block_wrap .auth_block.register {
  background: #E7F4FC;
}
#auth .auth_block_wrap .auth_block.register .auth_title {
  color: #2F6A9B;
}
#auth .auth_block_wrap .auth_block.register .button {
  background: #2F6A9B;
}
#auth .auth_block_wrap .auth_block.login {
  background: #E6F4F4;
}
#auth .auth_block_wrap .auth_block.login .auth_title {
  color: #2BA2A7;
}
#auth .auth_block_wrap .auth_block.login .button {
  background: #2BA2A7;
}
@media all and (min-width: 768px) {
  #auth .auth_block_wrap {
    margin: 40px auto 0;
    max-width: 1030px;
    display: flex;
    justify-content: space-between;
  }
  #auth .auth_block_wrap .auth_block {
    position: relative;
    width: 48.5%;
    padding-bottom: 120px;
    text-align: center;
  }
  #auth .auth_block_wrap .auth_block .auth_title {
    font-size: 20px;
  }
  #auth .auth_block_wrap .auth_block .btn_wrap {
    position: absolute;
    bottom: 40px;
    left: calc(50% - 90px);
    z-index: 1;
  }
}
@media all and (min-width: 1025px) {
  #auth .auth_block_wrap .auth_block .button {
    transition: all 0.3s;
  }
  #auth .auth_block_wrap .auth_block.register .button {
    border: 1px solid #2F6A9B;
  }
  #auth .auth_block_wrap .auth_block.register .button:hover {
    background: #fff;
    color: #2F6A9B;
  }
  #auth .auth_block_wrap .auth_block.login .button {
    border: 1px solid #2BA2A7;
  }
  #auth .auth_block_wrap .auth_block.login .button:hover {
    background: #fff;
    color: #2BA2A7;
  }
}

/*--------------------------
開催予定
--------------------------*/
#schedule {
  background: #E7ECF0;
}
#schedule .no_event {
  text-align: center;
}
#schedule .list_schedules dt {
  display: none;
}
#schedule .list_schedules .ac_content {
  background: #E7F4FC;
  padding: 30px 4%;
  box-sizing: border-box;
  line-height: 1.8;
  display: none;
}
#schedule .list_schedules .ac_section {
  margin-bottom: 20px;
}
#schedule .list_schedules .ac_section_name {
  background: #2F6A9B;
  margin-bottom: 10px;
  font-size: 1.1em;
  padding: 0.2em 1em;
  color: #fff;
  letter-spacing: 0.1em;
}
#schedule .list_schedules .ac_place_title {
  color: #2F6A9B;
  margin-top: 40px;
  letter-spacing: 0.1em;
  font-size: 1.1em;
  font-weight: bold;
  padding: 0 0 5px 5px;
  border-bottom: 1px solid #4d96d3;
  margin-bottom: 30px;
}
#schedule .list_schedules .p_block {
  position: relative;
  color: #2F6A9B;
  font-weight: bold;
  padding-left: 20px;
}
#schedule .list_schedules .p_block::before {
  content: "";
  display: block;
  position: absolute;
  width: 12px;
  height: 18px;
  background: url(../img/home/icon_map.svg) no-repeat;
  background-size: contain;
  background-position: center;
  left: 0px;
  top: calc(50% - 9px);
}
#schedule .list_schedules .p_name {
  font-size: 1.2em;
  font-weight: bold;
}
#schedule .list_schedules .event_places {
  color: #494D4E;
}
#schedule .list_schedules .event_places li + li {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px dashed #dcdcdc;
}
#schedule .list_schedules .ac_section_content {
  padding-left: 2em;
}
#schedule .list_schedules .ac_field_value {
  padding-left: 2em;
}
#schedule .list_schedules .cert_name {
  font-weight: bold;
  color: #2A77B7;
  text-indent: -1.5em;
}
#schedule .list_schedules .min_title {
  display: inline-block;
  font-weight: bold;
  min-width: 80px;
  color: #143958;
  margin-right: 0.5em;
}
#schedule .list_schedules .ac_btn_sp {
  display: block;
  padding: 1em;
  background: #205988;
  color: #fff;
  font-weight: bold;
  font-size: 1.1em;
  text-align: center;
  text-decoration: none;
  position: relative;
}
#schedule .list_schedules .ac_btn_sp img {
  position: absolute;
  right: 20px;
  top: calc(50% - 5px);
  width: 14px;
  transition: all 0.3s;
}
#schedule .list_schedules .btn_close {
  display: inline-block;
  padding: 0.5em;
  color: #fff;
  font-weight: 500;
  background: #2F6A9B;
  border: 1px solid #2F6A9B;
  text-decoration: none;
  min-width: 120px;
  text-align: center;
}
@media all and (max-width: 1024px) {
  #schedule .list_schedules .ac_header .item {
    display: flex;
    width: 100%;
  }
  #schedule .list_schedules .ac_header .item span, #schedule .list_schedules .ac_header .item a {
    display: block;
    padding: 1em;
    box-sizing: border-box;
  }
  #schedule .list_schedules .ac_header .item .label {
    width: 100px;
    background: #2F6A9B;
    color: #fff;
  }
  #schedule .list_schedules .ac_header .item .data {
    width: calc(100% - 80px);
    background: #fff;
  }
  #schedule .list_schedules .accordion {
    margin-bottom: 20px;
  }
  #schedule .list_schedules .accordion:last-child {
    margin-bottom: 0;
  }
  #schedule .list_schedules .accordion.is_expand .ac_btn_sp img {
    transform: rotate(180deg);
  }
}
@media all and (min-width: 768px) {
  #schedule .list_schedules .ac_header .item .label {
    width: 120px;
  }
  #schedule .list_schedules .ac_header .item .data {
    width: calc(100% - 120px);
  }
  #schedule .list_schedules .ac_content {
    padding: 50px 50px;
  }
}
@media all and (min-width: 1025px) {
  #schedule .list_schedules dt {
    display: flex;
  }
  #schedule .list_schedules dt > * {
    background: #2F6A9B;
    color: #fff;
    padding: 1em;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  #schedule .list_schedules .ac_header {
    display: flex;
    border: solid #E7ECF0;
    border-width: 0 0px 1px 0px;
  }
  #schedule .list_schedules .ac_header .item {
    line-height: 1.5;
  }
  #schedule .list_schedules .ac_header .item .data {
    width: auto;
  }
  #schedule .list_schedules .ac_header .item,
#schedule .list_schedules .ac_header .action {
    background: #fff;
    padding: 1em;
    display: flex;
    align-items: center;
    box-sizing: border-box;
  }
  #schedule .list_schedules .ac_header .action {
    background: #205988;
  }
  #schedule .list_schedules .accordion.is_expand .ac_btn_pc img {
    transform: rotate(180deg);
  }
  #schedule .list_schedules .certs {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  #schedule .list_schedules .certs .ac_section {
    width: 48%;
    margin-bottom: 30px;
  }
  #schedule .list_schedules .ac_section_name {
    margin-bottom: 30px;
  }
  #schedule .list_schedules .result_date,
#schedule .list_schedules .event_date,
#schedule .list_schedules .entry_limit,
#schedule .list_schedules .cert,
#schedule .list_schedules .action {
    border-left: 1px solid #E7ECF0;
  }
  #schedule .list_schedules .event_name {
    width: 25%;
  }
  #schedule .list_schedules .result_date,
#schedule .list_schedules .event_date,
#schedule .list_schedules .entry_limit,
#schedule .list_schedules .cert {
    width: calc(17.5% + 5px);
  }
  #schedule .list_schedules .action {
    width: 5%;
    text-align: center;
  }
  #schedule .list_schedules .ac_place_title {
    margin-top: 30px;
    font-size: 1.2em;
  }
  #schedule .list_schedules .event_places {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  #schedule .list_schedules .event_places > li {
    width: 48%;
  }
  #schedule .list_schedules .event_places > li:nth-child(-n+2) {
    margin-top: 0px;
    padding-top: 0px;
    border-top: none;
  }
  #schedule .list_schedules .ac_btn_pc {
    width: 14px;
    margin: 0 auto;
    transition: all 0.3s;
  }
  #schedule .list_schedules .ac_btn_pc img {
    transition: all 0.3s;
  }
  #schedule .list_schedules .ac_btn_pc:hover {
    opacity: 0.8;
  }
  #schedule .list_schedules .btn_close {
    min-width: 200px;
    transition: all 0.3s;
  }
  #schedule .list_schedules .btn_close:hover {
    background: #fff;
    color: #2F6A9B;
  }
}

/*--------------------------
試験概要
--------------------------*/
#outline .outlines li {
  box-sizing: border-box;
  padding: 30px 20px;
  border: 3px solid;
  background-color: #fff;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.16);
}
#outline .outlines li .title {
  font-size: 17px;
  font-weight: bold;
  letter-spacing: 0.05em;
  margin-bottom: 20px;
}
#outline .outlines li .title span {
  font-size: 34px;
  margin-right: 5px;
}
#outline .outlines li .text {
  line-height: 2;
  font-weight: bold;
  color: #262626;
}
#outline .outlines li .price {
  margin: 30px 0 -1em;
}
#outline .outlines li .price .bg {
  display: inline-block;
  padding: 5px 15px;
  margin: 0 auto 1em 0;
}
#outline .outlines li .price dl {
  position: relative;
  padding-left: 50px;
  font-weight: bold;
  color: #2A77B7;
}
#outline .outlines li .price dl dt {
  position: absolute;
  left: 0;
  line-height: 1.25;
  z-index: 1;
}
#outline .outlines li .price dl dd {
  display: inline-block;
  margin: 0 20px 1em 0;
}
#outline .outlines li .price .num {
  font-size: 1.25em;
}
#outline .outlines li:nth-child(2n+1) {
  border-color: #468DC9;
  background-image: url(../img/home/outline1_bg.png);
  background-size: contain;
  background-position: center bottom;
  background-repeat: no-repeat;
}
#outline .outlines li:nth-child(2n+1) .title {
  color: #2A77B7;
}
#outline .outlines li:nth-child(2n+1) .price .bg {
  color: #fff;
  background-color: #2A77B7;
}
#outline .outlines li:nth-child(2n+1) .price dl {
  color: #2A77B7;
}
#outline .outlines li:nth-child(2n) {
  border-color: #4BB0B4;
  background-image: url(../img/home/outline2_bg.png);
  background-size: contain;
  background-position: center bottom;
  background-repeat: no-repeat;
}
#outline .outlines li:nth-child(2n) .title {
  color: #2BA2A7;
}
#outline .outlines li:nth-child(2n) .price .bg {
  color: #fff;
  background-color: #2BA2A7;
}
#outline .outlines li:nth-child(2n) .price dl {
  color: #2BA2A7;
}
@media all and (max-width: 767px) {
  #outline .outlines li + li {
    margin-top: 30px;
  }
}
@media all and (min-width: 768px) {
  #outline .outlines {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  #outline .outlines li {
    width: 49.1%;
    padding: 50px 30px;
  }
  #outline .outlines li .title {
    font-size: 26px;
  }
  #outline .outlines li .title span {
    font-size: 50px;
  }
  #outline .outlines li .price dl {
    padding-left: 70px;
  }
}
@media all and (min-width: 1025px) {
  #outline .outlines li {
    padding: 60px 35px 60px 50px;
  }
  #outline .outlines li .title {
    font-size: 31px;
  }
  #outline .outlines li .title span {
    font-size: 57px;
  }
  #outline .outlines li .text {
    font-size: 15px;
    letter-spacing: 0;
  }
}
@media all and (min-width: 1281px) {
  #outline .outlines br {
    display: none;
  }
}

/*--------------------------
受験資格
--------------------------*/
#requirement .big_title .kome {
  margin-top: 10px;
}
#requirement .title {
  position: relative;
  font-size: 22px;
  letter-spacing: 0.1em;
}
#requirement .title span {
  display: inline-block;
  color: #494D4E;
  font-weight: bold;
  position: relative;
  padding-bottom: 8px;
}
#requirement .title span::before {
  background-color: #E7ECF0;
  content: "";
  position: absolute;
  bottom: 3px;
  display: inline-block;
  opacity: 0.75;
  width: calc(100% + 20px);
  height: 12px;
  transform: skewX(-45deg);
  z-index: -1;
}
#requirement .text + .title {
  margin-top: 20px;
}
#requirement .sub_title, #requirement .text {
  padding-left: 25px;
  box-sizing: border-box;
}
#requirement .sub_title {
  position: relative;
  font-weight: bold;
  font-size: 16px;
  line-height: 1.2;
  color: #494D4E;
  margin-top: 30px;
  margin-bottom: 1em;
}
#requirement .sub_title::before {
  content: "";
  width: 8px;
  height: 17px;
  display: block;
  position: absolute;
  background-color: #2A77B7;
  left: 0;
  top: 1px;
}
#requirement .sub_title.blue::before {
  background-color: #2A77B7;
}
#requirement .sub_title.green::before {
  background-color: #2BA2A7;
}
#requirement .requirements .text {
  line-height: 1.8;
  color: #494D4E;
  font-size: 13px;
}
@media all and (max-width: 767px) {
  #requirement .requirements .image {
    margin-top: 40px;
  }
}
@media all and (min-width: 768px) {
  #requirement .requirements {
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
  }
  #requirement .requirements .image {
    width: 45.8%;
  }
  #requirement .requirements .texts {
    width: 50%;
  }
  #requirement .requirements .text {
    font-size: 14px;
  }
}
@media all and (min-width: 1025px) {
  #requirement .requirements .title {
    margin-bottom: 35px;
    font-size: 26px;
  }
  #requirement .requirements .sub_title {
    font-size: 17px;
  }
  #requirement .requirements .text {
    font-size: 15px;
  }
}

/*--------------------------
試験内容
--------------------------*/
#detail .details .exam + .exam {
  margin-top: 20px;
}
#detail .details .exam .exam_title {
  display: inline-block;
  padding: 5px 1em;
  background: #fff;
  font-weight: bold;
  letter-spacing: 0.1em;
  border: 1px solid;
  font-size: 1em;
}
#detail .details .exam .exam_title.blue {
  border-color: #4276B2;
  color: #4276B2;
}
#detail .details .exam .exam_title.green {
  border-color: #55A0A5;
  color: #55A0A5;
}
#detail .details .exam .exam_text {
  font-weight: bold;
  color: #494D4E;
  line-height: 1.5;
}
@media all and (max-width: 767px) {
  #detail .details .detail + .detail {
    margin-top: 20px;
  }
  #detail .details .exam .exam_title {
    margin-bottom: 10px;
  }
}
@media all and (min-width: 768px) {
  #detail .details {
    display: flex;
    justify-content: space-between;
  }
  #detail .details .detail:nth-of-type(2n+1) {
    width: 45%;
  }
  #detail .details .detail:nth-of-type(2n) {
    width: 50%;
  }
  #detail .details .exam {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    font-size: 15px;
  }
  #detail .details .exam .exam_text {
    width: calc(100% - 100px);
    margin-top: 2px;
  }
}
#detail .kome {
  color: #707070;
  margin-top: 30px;
  line-height: 2;
  letter-spacing: 0.05em;
  font-size: 0.85em;
}
#detail .kome li {
  text-indent: -1em;
  padding-left: 1em;
}

/*--------------------------
流れ
--------------------------*/
#flow {
  background: #2F6A9B;
  color: #fff;
}
#flow .big_title .ja {
  color: #fff;
}
#flow .big_title .eng {
  color: #8ECCFF;
}
#flow .flow {
  margin-top: 40px;
}
#flow .flow .flowitem {
  display: flex;
  justify-content: space-between;
  margin-bottom: 5px;
}
#flow .flow .flowitem .num {
  width: 60px;
  white-space: nowrap;
  font-family: futura-pt, sans-serif;
  font-weight: 500;
  font-style: normal;
  position: relative;
}
#flow .flow .flowitem .num span {
  position: absolute;
  font-size: 11px;
  color: #fff;
  white-space: nowrap;
  text-align: center;
  top: 50%;
  width: 100%;
}
#flow .flow .flowitem .texts {
  width: calc(100% - 65px);
  background: #fff;
  padding: 25px 20px;
  box-sizing: border-box;
}
#flow .flow .flowitem .texts .flow_title {
  color: #494D4E;
  font-weight: bold;
  font-size: 16px;
  margin-bottom: 1em;
  letter-spacing: 0.05em;
}
#flow .flow .flowitem .texts .text {
  color: #262626;
  font-size: 13px;
  line-height: 1.6;
}
#flow .flow li .num::before, #flow .flow li .num::after {
  content: "";
  width: 60px;
  position: absolute;
}
#flow .flow li .num::before {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 15px 30px 0 30px;
  border-color: #2F6A9B transparent transparent transparent;
}
#flow .flow li .num::after {
  top: 100%;
  left: 0px;
  z-index: 2;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 15px 30px 0 30px;
  border-color: #2F6A9B transparent transparent transparent;
}
#flow .flow li.st1 .num {
  background-color: #90CBFF;
}
#flow .flow li.st1 .num::before {
  content: none;
}
#flow .flow li.st1 .num::after {
  border-top-color: #90CBFF;
}
#flow .flow li.st2 .num {
  background-color: #70AEE3;
}
#flow .flow li.st2 .num::after {
  border-top-color: #70AEE3;
}
#flow .flow li.st3 .num {
  background-color: #58A0DD;
}
#flow .flow li.st3 .num::after {
  border-top-color: #58A0DD;
}
#flow .flow li.st4 .num {
  background-color: #4D96D3;
}
#flow .flow li.st4 .num::after {
  border-top-color: #4D96D3;
}
#flow .flow li.st5 .num {
  background-color: #3D89C7;
  margin-bottom: 15px;
}
#flow .flow li.st5 .num::after {
  border-top-color: #3D89C7;
}
#flow .flow li.st6 .num {
  background-color: #70AEE3;
}
#flow .flow li.st6 .num::before {
  content: none;
}
#flow .flow li.st6 .num::after {
  border-top-color: #70AEE3;
}
#flow .flow li.st7 .num {
  background-color: #58A0DD;
}
#flow .flow li.st7 .num::after {
  border-top-color: #58A0DD;
}
#flow .flow li.st8 .num {
  background-color: #4D96D3;
}
#flow .flow li.st8 .num::after {
  border-top-color: #4D96D3;
}
#flow .flow li.st9 .num {
  background-color: #3D89C7;
  margin-bottom: 15px;
}
#flow .flow li.st9 .num::after {
  border-top-color: #3D89C7;
}
#flow .flow li.approve {
  margin-bottom: 5px;
}
#flow .flow li.approve .bg_blue {
  padding: 30px 20px;
  background: #6997BE;
  font-weight: bold;
  font-size: 16px;
  text-align: center;
}
#flow .flow li.approve .dot_text {
  display: inline-block;
  padding-bottom: 0.5em;
  background-image: linear-gradient(to right, #A5D7FF, #A5D7FF 3px, transparent 4px, transparent 7px);
  /* 幅2の線を作る */
  background-size: 3px 3px;
  /* グラデーションの幅・高さを指定 */
  background-position: center bottom;
  background-repeat: repeat-x;
  background-size: 7px 2px;
}
@media all and (min-width: 768px) {
  #flow .flow {
    display: flex;
    justify-content: space-between;
  }
  #flow .flow .pc_left, #flow .flow .pc_right {
    width: 48.5%;
  }
  #flow .flow .flowitem .num {
    width: 70px;
  }
  #flow .flow .flowitem .num span {
    font-size: 18px;
  }
  #flow .flow .flowitem .num::before, #flow .flow .flowitem .num::after {
    border-width: 15px 35px 0 35px;
  }
  #flow .flow .flowitem .texts {
    padding: 38px;
    width: calc(100% - 75px);
  }
  #flow .flow .flowitem .texts .flow_title {
    font-size: 20px;
  }
  #flow .flow .flowitem .texts .text {
    font-size: 15px;
  }
  #flow .flow li.st5 .num {
    height: 150px;
  }
  #flow .flow li.approve .bg_blue {
    padding: 35px 12px 30px;
  }
  #flow .flow li.approve .dot_text {
    font-size: 20px;
  }
}

/*--------------------------
試験会場
--------------------------*/
#access .event_name {
  border-left: 5px solid #2F6A9B;
  font-size: 20px;
  font-weight: bold;
  padding: 10px;
  margin: 60px 0 40px;
  background: rgba(47, 106, 155, 0.2);
}
#access .event_name .date {
  display: block;
  font-size: 14px;
  font-weight: normal;
  margin-top: 10px;
}
@media all and (min-width: 768px) {
  #access .event_name {
    border-left-width: 10px;
    padding: 15px;
    font-size: 26px;
  }
  #access .event_name .date {
    display: inline-block;
    margin: 0 0 0 20px;
    font-size: 16px;
  }
}
#access .places li {
  margin-top: 60px;
}
#access .places .place {
  color: #494D4E;
}
#access .places .place .place_wrap {
  font-weight: bold;
  font-size: 18px;
  line-height: 1.3;
}
#access .places .place .place_wrap span {
  margin: 0 1em 1em 0;
}
#access .places .place .place_wrap .area {
  display: inline-block;
  padding: 5px 1em;
  background-color: #2A77B7;
  color: #fff;
  font-size: 14px;
}
#access .places .place .place_wrap .name {
  display: inline-block;
}
#access .places .place address {
  line-height: 2;
  font-style: normal;
  font-weight: bold;
}
#access .places .place .howto {
  color: #2F6A9B;
  font-weight: bold;
  margin-bottom: 1em;
  font-size: 14px;
}
#access .places .place .text {
  line-height: 2;
}
#access .places .place .btn_map {
  display: block;
  position: relative;
  border: 1px solid #406997;
  padding: 10px 40px 10px 20px;
  width: 100%;
  max-width: 350px;
  color: #2F6A9B;
  text-align: center;
  text-decoration: none;
  font-size: 14px;
  margin: 0 auto;
  box-sizing: border-box;
}
#access .places .place .btn_map::after {
  content: "";
  display: block;
  position: absolute;
  width: 12px;
  height: 18px;
  background: url(../img/home/icon_map.svg) no-repeat;
  background-size: contain;
  background-position: center;
  right: 20px;
  top: calc(50% - 9px);
}
#access .places .place .ggmap {
  position: relative;
  margin-top: 30px;
  overflow: hidden;
  border: 2px solid #0762AE !important;
}
#access .places .place .ggmap iframe {
  width: 100%;
  height: 75vw;
  max-height: 450px;
  border: none;
}
@media all and (max-width: 767px) {
  #access .places .pc_cols .col + .col {
    margin-top: 30px;
  }
  #access .places address {
    margin-top: 1em;
  }
}
@media all and (min-width: 768px) {
  #access .places .pc_cols {
    display: flex;
    justify-content: space-between;
    position: relative;
  }
  #access .places .pc_cols .col:nth-child(1), #access .places .pc_cols .col:nth-child(2) {
    width: calc((100% - 240px) / 2);
  }
  #access .places .pc_cols .col:nth-child(3) {
    width: 156px;
  }
  #access .places .place {
    font-size: 15px;
  }
  #access .places .place .place_wrap {
    font-size: 24px;
    line-height: 36px;
  }
  #access .places .place .place_wrap span {
    margin: 0 20px 30px 0;
  }
  #access .places .place .place_wrap .area {
    padding: 0 1em;
    font-size: 18px;
  }
  #access .places .place .place_wrap .name {
    display: inline-block;
  }
  #access .places .place .howto {
    font-size: 15px;
  }
  #access .places .place .btn_map {
    font-size: 15px;
    width: 156px;
    position: absolute;
    bottom: 0;
    right: 0;
  }
  #access .places .ggmap iframe {
    width: 100%;
    height: 30vw;
  }
  #access .places .place .btn_map {
    transition: all 0.3s;
  }
  #access .places .place .btn_map:hover {
    opacity: 0.8;
  }
}
#access .event_name + .places li:first-child {
  margin-top: 0;
}

/*--------------------------
ニュース共通ヘッダー
--------------------------*/
.news_header {
  background: url(../img/news/bg_news_head_sp.jpg) no-repeat;
  background-size: cover;
  padding: 60px 0;
  text-align: center;
  color: #fff;
}
.news_header.doc {
  background-image: url(../img/news/bg_doc_head_sp.jpg);
}
.news_header .ja {
  font-size: 20px;
  letter-spacing: 0.1em;
}
.news_header .eng {
  font-size: 13px;
  letter-spacing: 0.05em;
  margin-top: 10px;
}
@media all and (min-width: 768px) {
  .news_header {
    background: url(../img/news/bg_news_head_pc.jpg) no-repeat;
    background-size: cover;
    padding: 78px 0;
  }
  .news_header.doc {
    background-image: url(../img/news/bg_doc_head_pc.jpg);
  }
  .news_header .ja {
    font-size: 28px;
  }
  .news_header .eng {
    font-size: 20px;
    margin-top: 15px;
  }
}

/*--------------------------
下層共通
--------------------------*/
body:not(#pageHome) .contents {
  min-height: calc(100vh - 510px);
}
@media all and (min-width: 768px) {
  body:not(#pageHome) .contents {
    min-height: calc(100vh - 593px);
  }
}
@media all and (min-width: 1025px) {
  body:not(#pageHome) .contents {
    min-height: calc(100vh - 618px);
  }
}

/*--------------------------
ニュース一覧
--------------------------*/
#pageNewsList .contents .inner {
  max-width: 860px;
}
@media screen and (min-width: 960px) {
  #pageNewsList .contents .inner {
    margin: 0 auto;
  }
}
#pageNewsList #news .posts {
  margin-top: 0;
}
@media all and (min-width: 768px) {
  #pageNewsList #news {
    padding-bottom: 40px;
  }
}
@media all and (min-width: 1025px) {
  #pageNewsList #news {
    padding-bottom: 60px;
  }
}
#pageNewsList #news .tab_content {
  display: none;
}
#pageNewsList #news .tab_content.is_active {
  display: block !important;
}

.pagination_wrap {
  margin-top: 40px;
}
.pagination_wrap .pagination {
  text-align: center;
}
.pagination_wrap .pagination li {
  display: inline-block;
  margin: 0 5px 10px;
}
.pagination_wrap .pagination li a, .pagination_wrap .pagination li span {
  display: block;
  width: 40px;
  line-height: 40px;
  font-family: futura-pt, sans-serif;
  font-weight: 500;
  font-style: normal;
}
.pagination_wrap .pagination li a {
  background: #E2E2E2;
  color: #2F6A9B;
  text-decoration: none;
  transition: all 0.3s;
}
.pagination_wrap .pagination li span {
  background: #2F6A9B;
  color: #fff;
}
.pagination_wrap .pagination li.disabled {
  display: none;
}
@media all and (min-width: 768px) {
  .pagination_wrap .pagination {
    margin-top: 50px;
  }
  .pagination_wrap .pagination li {
    margin: 0 10px 20px;
  }
}
@media all and (min-width: 1025px) {
  .pagination_wrap .pagination a:hover {
    background: #2ba2a7;
    color: #fff;
  }
}

/*--------------------------
ニュース一覧タブメニュー
--------------------------*/
#tab_menu {
  padding: 20px 0 30px;
}
#tab_menu ul {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
#tab_menu ul li {
  margin-right: 20px;
}
#tab_menu ul li:last-child {
  margin-right: 0;
}
#tab_menu ul li a {
  text-decoration: none;
  font-size: 15px;
  letter-spacing: 0.05em;
  color: #707070;
}
#tab_menu ul li.is_active a {
  color: #2A77B7;
  text-decoration: underline;
}
@media all and (min-width: 768px) {
  #tab_menu {
    padding: 0 0 50px;
  }
  #tab_menu ul li a {
    font-size: 17px;
  }
}
@media all and (min-width: 1025px) {
  #tab_menu ul li a {
    transition: all 0.3s;
  }
  #tab_menu ul li a:hover {
    color: #2A77B7;
  }
}

/*--------------------------
ニュース詳細
--------------------------*/
#pageNewsDetail .contents {
  margin: 30px 0 50px;
}
@media all and (min-width: 768px) {
  #pageNewsDetail .contents {
    margin: 40px 0 60px;
  }
}
@media all and (min-width: 1025px) {
  #pageNewsDetail .contents {
    margin: 40px 0 80px;
  }
}
#pageNewsDetail .inner {
  max-width: 1000px;
}
@media screen and (min-width: 1100px) {
  #pageNewsDetail .inner {
    margin: 0 auto;
  }
}
#pageNewsDetail .cat span {
  display: inline-block;
  border: 1px solid;
  text-align: center;
  width: 55px;
  line-height: 18px;
}
#pageNewsDetail .cat.is_normal span {
  border-color: #2A77B7;
  color: #2A77B7;
  font-family: futura-pt, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 13px;
  letter-spacing: 0.05em;
}
#pageNewsDetail .cat.is_important span {
  border-color: #dd225b;
  color: #dd225b;
  font-size: 12px;
  letter-spacing: 0.3em;
}
@media all and (min-width: 768px) {
  #pageNewsDetail .cat span {
    width: 54px;
    line-height: 19px;
    font-size: 14px;
  }
}
#pageNewsDetail .title {
  margin-top: 30px;
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #494D4E;
}
@media all and (min-width: 768px) {
  #pageNewsDetail .title {
    font-size: 26px;
    margin-top: 40px;
  }
}
#pageNewsDetail .date {
  font-size: 13px;
  margin-top: 30px;
}
@media all and (min-width: 768px) {
  #pageNewsDetail .date {
    font-size: 15px;
    margin-top: 40px;
  }
}
#pageNewsDetail .body {
  margin-top: 30px;
  border: 1px solid #D3D3D3;
  padding: 30px 4%;
  box-sizing: border-box;
  font-size: 13px;
  line-height: 1.85;
  color: #262626;
}
#pageNewsDetail .body img {
  max-width: 100%;
}
@media all and (min-width: 768px) {
  #pageNewsDetail .body {
    margin-top: 40px;
    padding: 50px;
    font-size: 15px;
  }
}

/*--------------------------
規約関連
--------------------------*/
#pagePrivacy .contents,
#pageCommerce .contents,
#pageGuide .contents {
  line-height: 2;
  padding: 30px 0 60px;
}
@media all and (min-width: 768px) {
  #pagePrivacy .contents,
#pageCommerce .contents,
#pageGuide .contents {
    padding: 40px 0 80px;
  }
}
@media all and (min-width: 1025px) {
  #pagePrivacy .contents,
#pageCommerce .contents,
#pageGuide .contents {
    padding: 50px 0 120px;
  }
}
#pagePrivacy .contents .inner,
#pageCommerce .contents .inner,
#pageGuide .contents .inner {
  max-width: 860px;
}
@media screen and (min-width: 960px) {
  #pagePrivacy .contents .inner,
#pageCommerce .contents .inner,
#pageGuide .contents .inner {
    margin: 0 auto;
  }
}

.article + .article {
  margin-top: 60px;
}
.article .big_title {
  border-top: 1px solid #cdcdcd;
  border-bottom: 1px solid #cdcdcd;
  padding: 0.8em 0;
  font-size: 1.2em;
  color: #707070;
}
.article p, .article li, .article table {
  font-size: 0.9em;
}
.article .sec {
  margin-top: 30px;
}
@media all and (min-width: 768px) {
  .article .sec {
    margin-top: 40px;
  }
}
.article .sec.noMgnT {
  margin-top: 0;
}
.article .sec .article_title {
  color: #2F6A9B;
  font-weight: bold;
  margin-bottom: 1em;
  font-size: 1em;
}
.article .sec p {
  line-height: 2;
}
.article .list_bar > li {
  padding-left: 15px;
  position: relative;
  line-height: 2;
}
.article .list_bar > li::before {
  content: "";
  width: 5px;
  height: 1px;
  display: inline-block;
  position: absolute;
  background: #4D4D4D;
  top: 0.9em;
  left: 0;
}
.article .list_kome {
  margin-top: 25px;
}
.article .list_kome > li {
  padding-left: 15px;
  position: relative;
  line-height: 1.5;
  font-size: 0.8rem;
  color: #707070;
}
.article .list_kome > li::before {
  content: "※";
  font-size: inherit;
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
}
.article .table_blue {
  width: 100%;
  border-spacing: 0;
  border-collapse: collapse;
  border: 1px solid #d4d4d4;
  line-height: 2;
}
.article .table_blue font-size th, .article .table_blue td {
  padding: 10px;
  box-sizing: border-box;
  border-bottom: 1px solid #d4d4d4;
}
.article .table_blue th {
  color: #fff;
  background: #2F6A9B;
  font-weight: bold;
  border-bottom: 1px solid #d4d4d4;
  vertical-align: middle;
  padding: 10px;
}

#pageGuide .article {
  margin-top: 30px;
}
#pageGuide .article + .article {
  margin-top: 60px;
}
#pageGuide .guide_flow .texts {
  border-radius: 10px;
  border: 1px solid #cdcdcd;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}
#pageGuide .guide_flow .texts .article_title {
  text-align: center;
  color: #fff;
  background: #2F6A9B;
  padding: 10px 20px;
  margin: 0;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}
#pageGuide .guide_flow .texts .text {
  background: #fff;
  padding: 20px 20px;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
}
@media all and (max-width: 767px) {
  #pageGuide .guide_flow .texts + .texts {
    margin-top: 40px;
    position: relative;
  }
  #pageGuide .guide_flow .texts + .texts::before {
    content: "";
    display: block;
    position: absolute;
    width: 20px;
    height: 20px;
    background: url(../img/common/icon_arrow_down.svg) no-repeat;
    background-size: contain;
    background-position: center;
    top: -30px;
    left: calc(50% - 10px);
  }
}
@media all and (min-width: 768px) {
  #pageGuide .guide_flow {
    display: flex;
    justify-content: space-between;
  }
  #pageGuide .guide_flow .texts {
    width: calc((100% - 120px) / 3);
  }
  #pageGuide .guide_flow .texts + .texts {
    margin-left: 60px;
    position: relative;
  }
  #pageGuide .guide_flow .texts + .texts::before {
    content: "";
    display: block;
    position: absolute;
    width: 34px;
    height: 34px;
    background: url(../img/common/icon_arrow_right.svg) no-repeat;
    background-size: contain;
    background-position: center;
    top: calc(50% - 17px);
    left: -45px;
  }
}
