@charset "UTF-8";
/* Scss Document */
/* =========================================================
 * reset　　　    /*リセット
========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Barlow+Condensed:ital,wght@1,200;1,300&family=Crimson+Text:wght@400;600;700&display=swap');
blockquote, body, div, dl, dt, dd, fieldset, form, h1, h2, h3, h4, h5, h6, input, li, ol, p, pre, select, span, textarea, td, th, ul, figure, figcaption {
  margin: 0px;
  padding: 0px;
}
fieldset, img {
  border: 0;
}
h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}
ol,
ul {
  list-style-type: none;
}
img {
  border: none;
  vertical-align: bottom;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
caption, th {
  text-align: left;
}
iframe {
  border: none;
}
a {
  text-decoration: none;
}
a:focus {
  outline: none;
}
address, caption, cite, code, dfn, em, th, var {
  font-style: normal;
  font-weight: normal;
}
li img {
  line-height: 0;
  font-size: 0;
  vertical-align: top;
}
/* IE */
* html ul li dl, * html ol li dl {
  display: inline;
}
*:first-child + html ul li dl, *:first-child + html ol li dl {
  display: inline;
}
/* =========================================================
 * default settings      　   /*デフォルトセッティング
========================================================= */
html {
  font-size: 62.5%;
  overflow-x: hidden;
}
body {
  color: #000;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic Pro",メイリオ,Meiryo, sans-serif;
  font-size: 1em;
  font-weight: 400;
  line-height: 2.2;
  background: #fff;
  -webkit-text-size-adjust: 100%;
}
_:-ms-lang(x)::-ms-backdrop, body {
  letter-spacing: -0.01em;
}
* {
  box-sizing: border-box;
}
p {
  line-break: strict;
  overflow-wrap: break-word;
}
a {
  color: #000;
  transition: color 0.4s ease-in-out;
  overflow-wrap: anywhere;
}
.disabled a {
  pointer-events: none;
}

input::-ms-clear {
  visibility: hidden;
}
#wrapper {
  width: 100%;
}
.pc {
  display: block;
}
.sp {
  display: none;
}
.hide, .hidden {
  visibility: hidden;
}
img {
  max-width: 100%;
}
main img.is-frame {
  border: 1px solid rgba(0, 91, 172, 0.1);
}
sub {
  vertical-align: baseline;
}
.inner {
  max-width: 1040px;
  /*min-width: 768px;*/
  margin: 0 auto;
  padding: 0 15px;
  box-sizing: content-box;
}
@media screen and (max-width: 767px) {
  /*a {
    transition: none;
    backface-visibility: hidden;
    transform: perspective(0);
  }
  a:hover {
  }*/
  body {
    -webkit-text-size-adjust: 100%;
    background: #fff;
    min-width: 100%;
  }
  /*img {width: 100%;}*/
  .pc {display: none;}
  .sp {display: inline-block;}
  .inner {
    width: 90%;
    max-width: 90%;
    min-width: 90%;
    padding: 0;
  }
}

@media (hover: hover) and (pointer: fine) {
  a:hover {
    color: #005bac;
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
}


/* =========================================================
 * font
========================================================= */
/*noto-sans*/
.barlow {
  font-family: "Barlow Condensed", Arial, Helvetica, sans-serif;
  font-style: italic;
  font-weight: 200;
}
/*.font-noto {
  font-family: 'Noto Sans JP', sans-serif;
}
_:-ms-lang(x)::-ms-backdrop, .font-noto {
  letter-spacing: -0.01em;
}*/
.crimson {
  font-family: "Crimson Text", Georgia, "Times New Roman", Times, "serif";
}
_:-ms-lang(x)::-ms-backdrop, .crimson {
  letter-spacing: -0.01em;
}

/* =========================================================
 * clearfix　　   /*クリアフィックス
========================================================= */
.clearfix {
  zoom: 1;
}
.clearfix:before {
  content: "";
  display: table;
}
.clearfix:after {
  content: "";
  display: table;
  clear: both;
}


/* =========================================================
 * ヘッダ
========================================================= */
header {
  width: 100%;
  background: #FFFFFF;
  position: fixed;
  top: 29px;
  z-index: 99;
}
header .fixed-content {
  position: fixed;
  top: 0;
  left: 0;
}
header .head_box {
  display: flex;
  justify-content: space-between;
  padding: 0 0 0 15px;
}
header .head_box p {
  position: absolute;
  display: flex;
  align-items: center;
  width: 25%;
  max-width: 285px;
  height: 60px;
  padding-top: 12px;
  line-height: 1;
}
header .head_box .head_box_c {
  display: flex;
  justify-content: flex-end;
}
header .head_box .head_box_c .head_nav {
  width: calc(100% - 130px);
  padding-right: 3vw;
}
header .head_box .head_box_c .head_nav .sub_nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: 60px;
  padding-top: 12px;
}
header .head_box .head_box_c .head_nav .sub_nav li {
  margin-left: 2.5vw;
}
header .head_box .head_box_c .head_nav .sub_nav li a,
header .head_box .head_box_c .head_nav .sub_nav li .search {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  margin: 5px 0;
  padding: 5px 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
  transition: all 0.4s ease-in-out;
  cursor: pointer;
}
header .head_box .head_box_c .head_nav .sub_nav li a:after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 12px;
  margin-left: 12px;
  vertical-align: middle;
  background: url("../../images/common/icon_arrow_blue.svg") no-repeat center center;
}
header .head_box .head_box_c .head_nav .sub_nav li a:before {
  position: absolute;
  bottom: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 1px;
  background: #005bac;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform .3s;
}
header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2) a:before,
header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2) a:after {
  content: none;
}
header .head_box .head_box_c .head_nav .sub_nav li a span,
header .head_box .head_box_c .head_nav .sub_nav li .search span {
  padding-left: 8px;
  color: #005bac;
  font-size: 16px;
}
header .head_box .head_box_c .head_nav .sub_nav :nth-child(2) .dropmenu-search {
  display: block;
  position: absolute;
  top: 36px;
  left: -50px;
  width: 330px;
  height: 0;
  padding: 0;
  z-index: 5;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
}
header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2) .dropmenu-search form {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  position: relative;
  background: #f2f7fb;
}
header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2) .dropmenu-search form::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-top: 20px solid #f2f7fb;
  border-right: transparent;
  border-bottom: transparent;
  border-left: 20px solid #f2f7fb;
  transform: rotate(45deg);
  position: absolute;
  top: -10px;
  left: 28%;
}
header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2) .dropmenu-search form input[type="text"] {
  width: 320px;
  height: 45px;
  font-size: 13px;
  padding-left: 10px;
  padding-right: 25px;
  border: none;
  box-sizing: border-box;
  background: #f2f7fb;
  outline: 0;
}
header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2) .dropmenu-search form button {
  position: relative;
  font-size: 2.4rem;
  line-height: 45px;
  padding: 0 10px;
  border: 0;
  background: #f2f7fb;
  outline: none;
  cursor: pointer;
}
header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2) .dropmenu-search form button:before {
  content: "\f002";
  color: #005bac;
  font-family: "Font Awesome 5 Free";
  font-weight: bold;
}
header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2) .dropmenu-search form button span {
  display: none;
}
header .head_box .head_box_c .head_nav .main_nav {
  display: flex;
  justify-content: flex-end;
  font-feature-settings: "palt";
}
header .head_box .head_box_c .head_nav .main_nav li:not(:first-child) {
  margin-left: min(3vw, 32px);
}
header .head_box .head_box_c .head_nav .main_nav li a {
  position: relative;
  display: inline-block;
  padding-bottom: 20px;
  font-size: min(1.7vw, 15px);
  letter-spacing: 0.15em;
  line-height: 2;
  font-weight: 600;
}
header .head_box .head_box_c .head_nav .main_nav li a:after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #005bac;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform .3s;
}
header .head_box .head_box_c .head_mail {
  width: 130px;
  margin: 0;
}
header .head_box .head_box_c .head_mail a {
  display: block;
  padding: 27px 21px;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  color: #005bac;
  background: #f7f7f7;
  transition: all 0.4s ease-in-out;
}
header .head_box .head_box_c .head_mail a svg {
  width: 21px;
  height: 16px;
  fill: #005bac;
}
header .lang-selector {
  position: relative;
  width: 134px;
  z-index: 5;
}
header .lang-selector .btn-selector {
  padding: 0 8px 1px;
  font-size: 1.5rem;
  line-height: 2;
  background-color: #fff;
  border: 1px solid #D2D5D8;
  cursor: pointer;
}
header .lang-selector .btn-selector > span {
  position: relative;
  display: block;
  padding: 0 25px;
  background: url("../../images/common/icon_lang.svg") no-repeat left 7px;
}
header .lang-selector .btn-selector > span:after {
  content: "";
  position: absolute;
  right: 0;
  top: calc(50% - 2px);
  width: 8px;
  height: 6px;
  background-color: #8a8a8a;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
header .lang-selector:hover .btn-selector > span:after {
  transform: scaleY(-1);
}
header .lang-selector a {
  position: relative;
  display: block;
  margin: 0;
  padding: 4px 0 5px 42px;
  font-size: 1.2rem;
  line-height: 1.5;
}
header .head_box .head_box_c .head_nav .sub_nav li.lang-selector a:before,
header .head_box .head_box_c .head_nav .sub_nav li.lang-selector a:after {
  content: none;
}
header li.lang-selector .current a {
  pointer-events: none;
}
header .lang-selector .current a:after,
header .head_box .head_box_c .head_nav .sub_nav li.lang-selector .current a:after {
  content: "";
  position: absolute;
  left: 32px;
  top: calc(50% - 1px);
  width: 4px;
  height: 4px;
  margin: 0;
  background-color: #005bac;
  background-image: none;
  border-radius: 100%;
}
header .head_box .head_box_c .head_nav .sub_nav li.lang-selector li {
  margin: 0;
  padding: 0;
}
header .lang-selector ul {
  position: absolute;
  left: 0;
  width: 100%;
  margin: -1px 0 0;
  background-color: #fff;
  border: 1px solid #D2D5D8;
  transform: scaleY(0);
}
header .lang-selector:hover ul {
  height: auto;
  transform: scaleY(1);
}

@media screen and (min-width: 1101px) {
  header .br1024 {
    display: none;
  }
  header .head_box .head_box_c {
    display: flex !important;
  }
  header .head_box .head_box_c .head_nav .main_nav .menu_lower {
    display: none;
  }
  header .head_box .head_box_c .head_nav .main_nav li button {
    display: none;
  }
  header .lang-selector ul {
    border-top: none;
    transform-origin: top left;
    transition: transform 0.4s ease-in-out;
  }
  header .pc {
    display: block !important;
  }
  header .sp {
    display: none !important;
  }
}

@media screen and (max-width: 1100px) {
  .fixed {
    position: fixed;
    width: 100%;
    height: 100%;
  }
  header .head_box {
    display: inherit;
    position: absolute;
    min-width: 100%;
    padding: 0 0px;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 999;
  }
  header .head_box .drawer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 50px;
    background: #ffffff;
  }
  header .head_box p {
    position: unset;
    height: 50px;
    flex-basis: 246px;
    margin: 0 0 0 16px;
    padding: 0;
  }
  header .head_box .drawer .navbar_toggle {
    position: relative;
    z-index: 999;
    background: #005bac;
    width: 50px;
    height: 50px;
  }
  header .head_box .drawer .navbar_toggle .navbar_toggle_icon {
    position: absolute;
    display: block;
    width: 25px;
    height: 1px;
    background: #ffffff;
    transition: 0.4s ease-in-out .5s;
  }
  header .head_box .drawer .navbar_toggle .navbar_toggle_icon:nth-child(1) {
    top: 30%;
    right: 0;
    left: 0;
    margin: auto;
  }
  header .head_box .drawer .navbar_toggle .navbar_toggle_icon:nth-child(2) {
    top: 46%;
    right: 0;
    left: 0;
    margin: auto;
  }
  header .head_box .drawer .navbar_toggle .navbar_toggle_icon:nth-child(3) {
    top: 62%;
    right: 0;
    left: 0;
    margin: auto;
  }
  header .head_box .drawer .navbar_toggle.open .navbar_toggle_icon:nth-child(1) {
    top: 46%;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  header .head_box .drawer .navbar_toggle.open .navbar_toggle_icon:nth-child(2) {
    -webkit-transform: translateY(-46%);
    transform: translateY(-46%);
    opacity: 0;
  }
  header .head_box .drawer .navbar_toggle.open .navbar_toggle_icon:nth-child(3) {
    top: 46%;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  header .head_box .head_box_c {
    display: none;
    padding: 0;
    background: #fff;
  }
  header .head_box .head_box_c.open {
    position: fixed;
    width: 100vw;
    height: calc(100svh - 50px);
    overflow: auto;
    z-index: 999;
  }
  header .head_box .head_box_c .head_nav {
    width: 100%;
    padding-right: 0;
    display: flex;
    flex-direction: column-reverse;
  }
  header .head_box .head_box_c .head_nav .sub_nav {
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    width: 310px;
    height: auto;
    margin: 0 auto;
  }
  header .head_box .head_box_c .head_nav .sub_nav li {
    margin-left: 0;
  }
  header .head_box .head_box_c .head_nav .sub_nav li a,
  header .head_box .head_box_c .head_nav .sub_nav li .search {
    line-height: 20px;
  }
  header .head_box .head_box_c .head_nav .sub_nav li:nth-of-type(3) {
    -ms-flex-order: 2;
    order: 2;
    flex-basis: 100%;
    text-align: center;
  }
  header .head_box .head_box_c .head_nav .sub_nav li:nth-of-type(3) a {
    padding: 5px 0;
  }
  header .head_box .head_box_c .head_nav .sub_nav li a {
    position: relative;
  }
  header .head_box .head_box_c .head_nav .sub_nav li a:before {
    content: none;
  }
  header .head_box .head_box_c .head_nav .sub_nav li a i {
    color: #005bac;
  }
  header .head_box .head_box_c .head_nav .sub_nav li form {
    width: 300px;
    margin: 5px auto 0;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  header .head_box .head_box_c .head_nav .sub_nav li form input[type="submit"] {
    display: none;
  }
  header .head_box .head_box_c .head_nav .sub_nav li form input[type="text"] {
    width: 241px;
    height: 36px;
    border: 1px solid #999999;
    border-radius: 0;
    color: #666666;
    background: #FFFFFF;
    padding-left: 5px;
    outline: 0;
    font-size: 16px;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  }
  header .head_box .head_box_c .head_nav .sub_nav li form button {
    position: relative;
    width: 55px;
    padding: 0 10px;
    font-size: 1.8rem;
    line-height: 36px;
    text-align: center;
    border: 0;
    background: #005bac;
    outline: none;
    cursor: pointer;
    transition: background 0.4s ease-in-out;
  }
  header .head_box .head_box_c .head_nav .sub_nav li form button:before {
    content: "\f002";
    color: #fff;
    font-family: "Font Awesome 5 Free";
    font-weight: bold;
  }
  header .head_box .head_box_c .head_nav .sub_nav li form button span {
    display: none;
  }
  header .head_box .head_box_c .head_nav .main_nav {
    width: 90%;
    margin: 0 auto;
    display: block;
    padding-bottom: 20px;
  }
  header .head_box .head_box_c .head_nav .main_nav li {
    position: relative;
    margin: 0 !important;
    padding: 0;
  }
  header .head_box .head_box_c .head_nav .main_nav > li {
    border-bottom: 1px solid #e6e6e6;
  }
  header .head_box .head_box_c .head_nav .main_nav li a,
  header .head_box .head_box_c .head_nav .main_nav li .head {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 50px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    padding: 15px 36px 15px 12px;
  }
  header .head_box .head_box_c .head_nav .main_nav li .head {
    color: #848484;
  }
  header .head_box .head_box_c .head_nav .main_nav li a:after {
    content: "";
    position: absolute;
    left: auto;
    top: calc(50% - 7px);
    right: 14px;
    bottom: auto;
    width: 7px;
    height: 14px;
    background: url("../../images/common/icon_arrow_blue.svg") no-repeat center center;
    background-size: 7px auto;
    transform: none;
  }
  header .head_box .head_box_c .head_nav .main_nav .menu_lower {
    display: none;
  }
  header .head_box .head_box_c .head_nav .main_nav .menu_lower a {
    font-weight: 400;
  }
  header .head_box .head_box_c .head_nav .main_nav .menu_lower li button ~ ul {
    display: none;
  }
  header .head_box .head_box_c .head_nav .main_nav .menu_lower li {
    padding: 0 0 0 10px;
  }
  header .head_box .head_box_c .head_nav .main_nav .menu_lower li:not(.menu_except) li a:after {
    content: none;
  }
  header .head_box .head_box_c .head_nav .main_nav .menu_lower li:not(.menu_except) li a {
    padding-left: 44px;
  }
  header .head_box .head_box_c .head_nav .main_nav .menu_lower li:not(.menu_except) li a:before {
    content: "";
    position: absolute;
    left: 22px;
    top: calc(50% - 7.5px);
    width: 15px;
    height: 15px;
    background: #005bac url("../../images/common/icon_arrow.svg") no-repeat center;
    background-size: 4px auto;
    border-radius: 100%;
  }
  header .head_box .head_box_c .head_nav .main_nav li.menu_except li {
    padding: 0;
  }
  header .head_box .head_box_c .head_nav .main_nav li.menu_except ul {
    position: relative;
  }
  header .head_box .head_box_c .head_nav .main_nav li.menu_except ul:before {
    content: "";
    position: absolute;
    left: 12px;
    bottom: 0;
    width: calc(100% - 32px);
    height: 1px;
    border-bottom: 1px dashed #D2D5D8;
  }
  header .head_box .head_box_c .head_nav .main_nav button {
    position: absolute;
    right: 0;
    top: 0;
    width: 36px;
    height: 50px;
    margin: 0;
    padding: 0;
    border: none;
    background-color: transparent;
    outline: none;
    z-index: 2;
    cursor: pointer;
  }
  header .head_box .head_box_c .head_nav .main_nav button:before,
  header .head_box .head_box_c .head_nav .main_nav button:after {
    content: "";
    position: absolute;
    width: 12px;
    height: 2px;
    left: calc(50% - 6px);
    background-color: #005bac;
    z-index: 3;
  }
  header .head_box .head_box_c .head_nav .main_nav button:after {
    transform: rotate(90deg);
    transition: transform 0.4s;
  }
  header .head_box .head_box_c .head_nav .main_nav button + a:after {
    content: none;
  }
  header .head_box .head_box_c .head_nav .main_nav li.has_menu.is-active > button + a {
    color: #005bac;
  }
  header .head_box .head_box_c .head_nav .main_nav li.has_menu.is-active > button:after {
    transform: rotate(0deg);
  }
  
  header .head_box .head_box_c .head_mail {
    width: 300px;
    height: 57px;
    margin: 30px auto;
    border-left: 0;
  }
  header .head_box .head_box_c .head_mail a {
    width: 300px;
    height: 57px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 20px;
    font-weight: 500;
    background: #005bac;
    -webkit-transition: none;
    -moz-transition: none;
    -ms-transition: none;
    transition: none;
  }
  header .head_box .head_box_c .head_mail a svg {
    width: 21px;
    height: 16px;
    fill: #fff;
    margin-right: 16px;
  }
  header .head_box .head_box_c .head_mail a:after {
    content: "";
    display: inline-block;
    width: 9px;
    height: 16px;
    margin-left: 16px;
    vertical-align: middle;
    background: url("../../images/common/icon_arrow.svg") no-repeat center center;
    background-size: 9px auto;
  }
  header .br1024 {
    display: none;
  }
  header .lang-selector.sp {
    display: block;
    width: 300px;
    margin: 10px auto 18px;
    padding-top: 14px;
  }
  header .lang-selector.sp:hover {
    padding-top: 0px;
  }
  header .lang-selector .btn-selector {
    padding: 2px 28px;
  }
  header .lang-selector .btn-selector > span:after {
    transform: scaleY(-1);
  }
  header .lang-selector:hover .btn-selector > span:after {
    transform: scaleY(1);
  }
  header .lang-selector:hover .btn-selector {
    padding: 9px 28px;
  }
  header .lang-selector ul {
    bottom: 50px;
    margin: 0 0 -1px;
    border-bottom: none;
    transform-origin: bottom left;
  }
  header .lang-selector a {
    padding: 16px 0 16px 42px
  }
  header .pc {
    display: none !important;
  }
  header .sp {
    display: block !important;
  }
}

@media screen and (max-width: 768px) {
  header {top: 0;}
  .gmoGroupHeader {z-index: 98 !important;}
}

@media (hover: hover) and (pointer: fine) {
  header .head_box .head_box_c .head_nav .sub_nav li a:hover,
  header .head_box .head_box_c .head_nav .sub_nav li .search:hover {
    color: #005bac !important;
  }
  header .head_box .head_box_c .head_nav .sub_nav li a:hover:before {
    transform: scale(1, 1);
  }
  header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2):hover:after {
    width: 100%;
  }
  header .head_box .head_box_c .head_nav .sub_nav li:nth-child(2):hover .dropmenu-search {
    height: auto;
    overflow: visible;
    opacity: 1;
  }
  header .head_box .head_box_c .head_nav .sub_nav li form button:hover {
    background: #002A4F;
  }
  header .head_box .head_box_c .head_nav .main_nav li a:hover {
    color: #005bac !important;
  }
  header .head_box .head_box_c .head_nav .main_nav li a:hover:after {
    transform: scale(1, 1);
  }
  header .head_box .head_box_c .head_mail a:hover {
    color: #fff;
    background: #005bac;
  }
  header .head_box .head_box_c .head_mail a:hover svg {
    width: 21px;
    height: 16px;
    fill: #fff;
  }
}

/* =========================================================
 * フッタ
========================================================= */

footer a {
  transition: opacity 0.4s ease-in-out;
}
footer .blue_box {
  background: #005bac;
  padding: 0 15px;
}
footer .blue_box .blue_box_c {
  position: relative;
}
footer .menu_box {
  display: flex;
  justify-content: space-between;
  max-width: 1040px;
  margin: 0 auto;
  padding: 70px 0 45px 0;
}
footer .menu_box .menu_unit {
}
footer .menu_box .menu_unit ul + p {
  margin-top: 15px;
}
footer .menu_box .menu_unit ul.two-lines {
  column-count: 2;
  column-gap: 2em;
  margin-right: -2em;
}
footer .menu_box .menu_unit ul.two-lines li {
  page-break-inside: avoid;
  break-inside: avoid;
}
footer .menu_box .menu_unit p {
  margin-bottom: 5px;
}
footer .menu_box .menu_unit a {
  font-size: 13px;
  color: #fff;
  font-weight: bold;
  white-space: nowrap;
}
footer .menu_box .menu_unit ul li a {
  font-size: 12px;
  font-weight: 400;
}
footer .footer_bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 0 50px;
  font-size: 11px;
}
footer .footer_bottom ul {
  max-width: 500px;
}
footer .footer_bottom ul li {
  display: inline-block;
  margin: 0 22px 5px 0;
}
footer .footer_bottom ul li a {
  color: rgba(255,255,255,0.7);
}
footer .footer_bottom p {
  margin: 0 0 5px auto;
  color: rgba(255,255,255,0.5);
}
footer .footer_bottom p small {
  font-size: inherit;
}
footer .to_top {
  position: relative;
  margin: -55px 40px 0 auto;
  width: 55px;
  height: 55px;
  background: #000000;
}
footer .to_top a {
  display: block;
  padding: 25px 0 0 2px;
  color: #FFFFFF;
  font-size: 12px;
  letter-spacing: 0.15em;
  text-align: center;
  position: relative;
}
footer .to_top a::before {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: #FFFFFF;
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
}
footer .to_top a::after {
  content: '';
  display: block;
  width: 16px;
  height: 16px;
  border-top: 2px solid #FFFFFF;
  border-left: 2px solid #FFFFFF;
  transform: rotate(45deg);
  position: absolute;
  top: 18px;
  left: calc(50% - 8px);
}
footer .certify {
  display: flex;
  justify-content: center;
  padding: 48px 0;
  gap: 50px;
  line-height: 1.5;
}
footer .certify .certify_c {
  display: flex;
  justify-content: flex-start;
  width: calc((100% - 450px) / 2);
}
footer .certify .certify_c figure {
  width: 64px;
  flex-shrink: 0;
}
footer .certify .certify_txt {
  padding-left: 15px;
  font-weight: 400;
}
footer .certify a {
  display: inline-block;
  margin-bottom: 6px;
  font-size: 14px;
  color: #4d4d4d;
}
footer .certify p {
  font-size: 11px;
  color: #8a8a8a;
}
footer .globalsign {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  flex-shrink: 0;
  justify-content: center;
}
footer .footer_banner {
  background: #f6f6f6;
  padding: 30px 0;
}
body:not(.home) footer .footer_banner {
  display: none;
}
footer .footer_banner a {
  display: block;
}
footer .footer_banner a img {
  height: 75px;
}
footer .footer_banner ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 1040px;
  margin: 0 auto;
}
footer .footer_banner li {
  margin: 10px;
}

main:has(> .contact-btm:last-child) + footer > hr:first-child,
main:has(.contents_area > .category-links-widen:last-child) + footer > hr:first-child {
  display: none;
}

footer .footer_security .security_head {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px 10px;
  line-height: 1.1;
}
footer .footer_security .security_head .logo img {
  height: 18px;
}

@media screen and (max-width: 1300px) {
  footer .certify {
    padding-left: 15px;
    padding-right: 115px;
    gap: 30px;
  }
  footer .certify a {
    font-size: min(1.1vw, 14px);
  }
}
@media screen and (max-width: 1040px) {
  footer .menu_box .menu_unit {
  }
  footer .footer_bottom {
    display: block;
  }
  footer .footer_bottom ul {
    max-width: none;
  }
}
@media screen and (max-width: 959px) {
  footer .menu_box {
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px;
    max-width: 640px;
  }
  footer .certify {
    flex-wrap: wrap;
    padding-right: 15px;
  }
  footer .certify .certify_c {
    width: calc(50% - 15px);
  }
  footer .certify a {
    font-size: 14px;
  }
}
@media screen and (max-width: 767px) {
  footer .blue_box {
    padding: 0 5%;
  }
  footer .blue_box .blue_box_c {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 110px;
  }
  footer .menu_box {
    display: none;
  }
  footer .footer_bottom {
    width: 100%;
    padding: 26px 0;
  }
  footer .footer_bottom ul li {
    display: block;
    margin-right: 0;
    margin-bottom: 5px;
  }
  footer .footer_bottom ul li a {
    font-size: 12px;
    font-weight: 500;
    color: #ffffff;
  }
  footer .footer_bottom p {
    margin-left: 0;
    font-size: 9px;
  }
  footer .to_top {
    position: absolute;
    top: 36px;
    right: 5%;
    margin: 0;
  }
  footer .certify {
    flex-direction: column;
    gap: 30px;
    width: 100%;
    max-width: none;
    padding: 40px 0;
  }
  footer .certify .certify_c {
    width: 100%;
    max-width: none;
    padding: 0 5%;
  }
  footer .footer_banner {
    padding: 15px 0;
  }
  footer .footer_banner ul {
    flex-direction: column;
    align-items: center;
  }
}
@media screen and (max-width: 410px) {
  footer .footer_security .security_head {
    flex-direction: column;
  }
}

@media (hover: hover) and (pointer: fine) {
  footer a:hover {
    opacity: .5;
  }
}


/* =========================================================
 * 強制指定
========================================================= */

.txt-left {text-align: left !important;}
.txt-right {text-align: right !important;}
.txt-center {text-align: center !important;}

.txt-normal {font-weight: normal !important;}

.blue {color: #005bac !important;}

.mt0 {margin-top: 0 !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;}
.mt100 {margin-top: 100px !important;}
.mt-auto {margin-top: auto !important;}
.mb0 {margin-bottom: 0 !important;}
.mb10 {margin-bottom: 10px !important;}
.mb20 {margin-bottom: 20px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb50 {margin-bottom: 50px !important;}
.mb70 {margin-bottom: 70px !important;}
.mb100 {margin-bottom: 100px !important;}
.mb-auto {margin-bottom: auto !important;}

@media screen and (max-width: 767px) {
  .sp-mt0 {margin-top: 0 !important;}
  .sp-mt10 {margin-top: 10px !important;}
  .sp-mt20 {margin-top: 20px !important;}
  .sp-mt30 {margin-top: 30px !important;}
  .sp-mt40 {margin-top: 40px !important;}
  .sp-mt50 {margin-top: 50px !important;}
  .txt-sp-left {text-align: left !important;}
  .txt-sp-right {text-align: right !important;}
  .txt-sp-center {text-align: center !important;}
}

@media screen and (min-width: 1101px) {
  .show-tb {display: none;}
}

@media screen and (max-width: 1100px) {
  .hide-tb {display: none;}
}


/* =========================================================
 * 共通
========================================================= */
main {
  display: block;
  width: 100%;
  font-size: 1.5rem;
  font-weight: 400;
  overflow: hidden;
}
main .contents_area {
  max-width: 1010px;
  /*min-width: 768px;*/
  /*min-height: 500px;*/
  margin: 70px auto 90px;
  padding: 0 15px;
}
.contents_area.is-narrow {
  max-width: 874px;
  box-sizing: content-box;
}

main .contents_area.column {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  padding: 0;
}
main .contents_area .left_clm {
  width: calc(100% - 260px);
  max-width: 660px;
}
main .contents_area .left_clm .ttls {
  padding-bottom: 20px;
  font-size: 26px;
  font-weight: 500;
  border-bottom: 1px solid #005bac;
}
main .contents_area .right_clm {
  width: 246px;
}
main .contents_area .right_clm ~ * {
  width: 100%;
}

@media screen and (max-width: 767px) {
  main {
    width: 100%;
  }
  main .contents_area {
    width: 90%;
    margin: 50px auto 90px;
    padding: 0;
  }
  main .contents_area.column {
    flex-direction: column;
  }
  main .contents_area .left_clm {
    width: 100%;
    order: 2;
  }
  main .contents_area .right_clm {
    width: 100%;
    order: 1;
  }
  main .contents_area .right_clm ~ * {
    order: 3;
  }
  main .contents_area .left_clm .ttls {
    font-size: 20px;
    padding-bottom: 15px;
  }
}


/* ----- kv ----- */
main .kv {
  margin-top: 110px;
  background-image: url("../../images/common/kv.png");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
main .kv .kv_inner {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 275px;
  color: #fff;
}
main .kv.level2 .kv_inner {
  height: 400px;
}
.company main .kv.level2 {
  background-image: url(../../images/company/kv.jpg);
}
.company main .kv {
  background-image: url(../../images/company/kv02.jpg);
}
.service main .kv {
  background-image: url(../../images/service/kv.jpg);
}
.service.multipayment-solution main .kv {
  background-image: url(../../images/service/kv_multipayment-solution_pc.jpg);
}
.service.processing-solution main .kv {
  background-image: url(../../images/service/kv_processing-solution.jpg);
}
.service.unattended-solution main .kv {
  background-image: url(../../images/service/kv_unattended-solution.jpg);
}
.recruit main .kv.level2 {
  background-image: url(../../images/recruit/kv.jpg);
}
.recruit main .kv {
  background-image: url(../../images/recruit/kv02.jpg);
}
.ir main .kv.level2 {
  background-image: url(../../images/ir/kv.jpg);
}
.ir main .kv {
  background-image: url(../../images/ir/kv02.jpg);
}
.news main .kv {
  background-image: url(../../images/news/kv.jpg);
}

main .kv .kv_inner .pankz {
  font-size: 11px;
  position: absolute;
  left: 15px;
  top: 15px;
  display: flex;
  justify-content: flex-start;
}
main .kv .kv_inner .pankz li {
  position: relative;
  padding-right: 25px;
}
main .kv .kv_inner .pankz li a {
  color: #fff;
  transition: opacity 0.4s ease-in-out;
}
main .kv .kv_inner .pankz li a:hover {
  opacity: .5;
}
main .kv .kv_inner .pankz li:not(:last-child):after {
  position: absolute;
  content: "";
  top: 10px;
  right: 10px;
  width: 5px;
  height: 5px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
}
main .kv .kv_inner .ttl {
  text-align: center;
  position: relative;
}
main .kv .kv_inner .ttl:after {
  position: absolute;
  content: "";
  height: 35px;
  bottom: -25px;
  border-left: 1px solid #fff;
  left: 50%;
}
main .kv .kv_inner .ttl > * {
  font-size: 34px;
  font-weight: bold;
  padding: 5px 0;
}
main .kv.level2 .kv_inner .ttl > *,
.news main .kv .kv_inner .ttl > * {
  font-size: 1.7rem;
  line-height: 1.6;
  font-weight: 400;
  padding: 5px 0 15px;
}
main .kv .kv_inner .ttl > * span {
  font-weight: 400;
  font-size: 40px;
  line-height: 1;
}
main .kv .kv_inner .ttl > * span.sub {
  display: block;
  padding-bottom: 15px;
  font-size: 1.6rem;
}
main .kv.level2 .kv_inner .ttl > * span {
  font-size: 50px;
}

@media screen and (max-width: 1100px) {
  main .kv {
    margin-top: 50px;
  }
}

@media screen and (max-width: 767px) {
  main .kv .kv_inner {
    height: 200px;
    padding: 0 5%;
  }
  main .kv.level2 .kv_inner {
    height: 300px;
  }
  main .kv .kv_inner .pankz {
    display: none;
  }
  main .kv .kv_inner .ttl:after {
    height: 25px;
    bottom: -25px;
  }
  main .kv .kv_inner .ttl > * {
    font-size: 2.5rem;
    line-height: 1.6;
  }
  main .kv.level2 .kv_inner .ttl > *,
  .news main .kv .kv_inner .ttl > * {
    font-size: 1.4rem;
  }
  main .kv .kv_inner .ttl > * span {
    font-size: 3.2rem;
  }
  main .kv.level2 .kv_inner .ttl > * span {
    font-size: 4rem;
  }
  .service.multipayment-solution main .kv {
    background-image: url(../../images/service/kv_multipayment-solution_sp.jpg);
  }
}


/* ----- リンク ----- */
main a.color {
  color: #005bac;
  border-bottom: 1px solid transparent;
  transition: all 0.4s ease-in-out;
}

main a .img {
  position: relative;
  display: block;
  background-color: #fff;
  overflow: hidden;
}
main a .img img {
  display: block;
  transition: all 0.4s ease-in-out;
}

@media screen and (min-width: 768px) {
  main a .img img.sp {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  main a .img img.pc {
    display: none;
  }
}

@media (hover: hover) and (pointer: fine) {
  main a.color:hover {
    border-bottom-color: #005bac;
  }
  main a:hover .img img {
    transform: scale(1.05);
  }
}


/* ----- 画像 ----- */
main .img-ratio img {
  max-width: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
main .img-ratio.ratio3-4 {
  aspect-ratio: 3 / 4;
}
main .img-ratio.ratio2-3 {
  aspect-ratio: 2 / 3;
}


/* ----- text ----- */
main h2 {
  position: relative;
  margin: 0 0 1.75em 0;
  padding: 0;
  color: #005bac;
  font-size: 3rem;
  font-weight: 900;
  line-height: 1.5;
  text-align: center;
}
main * +h2,
main .margin-set {
  margin-top: 80px;
}
main h2.mb0 {
  margin-bottom: 0;
  padding-bottom: 0;
}
main h2.mb0::after {
  content: none;
}
main h2 {
  position: relative;
  margin-bottom: 50px;
  padding-bottom: 40px;
}
main h2.mb0 + p {
  position: relative;
  margin-top: 10px;
  margin-bottom: 50px;
  padding-bottom: 45px;
  line-height: 1.5;
}
main h2::after,
main h2.mb0 + p::after {
  content: "";
  position: absolute;
  display: block;
  left: 50%;
  bottom: 0;
  width: 1px;
  height: 30px;
  background-color: #005bac;
}
main h2.ir-news {
  padding-left: 25px;
}
main h2.txt-left,
main h2.no-line {
  padding-bottom: 0;
}
main h2.txt-left::after,
main h2.no-line::after {
  content: none;
}

main .h2-caption {
  margin-top: 80px;
}
main .h2-caption + h2 {
  margin-top: 0;
}

.home main h2,
.other main h2,
.news main h2 {
  padding-bottom: unset;
}
.home main h2::after,
.other main h2::after,
.news main h2::after {
  content: none;
}

main h3 {
  position: relative;
  margin: 0 0 30px;
  padding: 0;
  font-size: 2rem;
  font-weight: 900;
  line-height: 1.5;
}
main h3.heading1 {
  font-size: 2.6rem;
  font-weight: 700;
}
main h3.heading1.border {
  padding-bottom: 35px;
  background-image: linear-gradient(to right, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
  background-size: 4px 1px;
  background-repeat: repeat-x;
  background-position: left bottom;
}
main .heading2 {
  position: relative;
  margin: 0 0 40px 0;
  padding: 10px 30px !important;
  color: inherit;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: left;
  z-index: 1;
}
main .heading2:before {
  content: "";
  position: absolute;
  left: 3px;
  top: 0;
  width: calc(100% - 10px);
  height: 100%;
  border-left: 3px solid #005bac;
  background-color: #f2f7fb;
  transform: skewX(-10deg);
  z-index: -1;
}
main .heading2:after {
  content: none;
}
main * + .heading2 {
  margin-top: 70px;
}
main h2 + .heading2 {
  margin-top: 0;
}
main h4 {
  margin: 0 0 1em;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
}
main .heading4 {
  position: relative;
  margin: 50px 0 1em;
  color: inherit;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: left;
}
main .heading4:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  height: 1px;
  background-color: #005bac;
  background-image: linear-gradient(to right, #00a3f5, #005bad);
}
main .heading4 span {
  position: relative;
  display: inline-block;
  padding-right: 25px;
  background-color: #fff;
}
main ul + h4 {
  margin-top: 2em;
}
main h5 {
  margin: 0 0 1em;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
}
main h6 {
  margin: 0 0 1em;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.5;
}
main p {margin-bottom: 1em;}
main .txt-s {font-size: 1.2rem !important;}
main .txt-m {font-size: 1.5rem !important;}
main .txt-ml {font-size: 1.6rem !important;}
main .txt-l {font-size: 2rem !important;}
main .copy {
  color: #005bac;
  font-size: 2.6rem;
  font-weight: bold;
  line-height: 1.38;
}
main .note {
  color: #4d4d4d;
  font-size: 1.1rem;
}

main [data-mh="group-hd"] {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

@media screen and (max-width: 767px) {
  main h2 {
    font-size: 2rem;
    margin-bottom: 1.5em;
  }
  main * +h2,
  main .margin-set {
    margin-top: 60px;
  }
  main h2 {
    margin-bottom: 30px;
    padding-bottom: 30px;
  }
  main h2.mb0 + p {
    margin-bottom: 30px;
    padding-bottom: 38px;
  }
  main h2::after,
  main h2.mb0 + p::after {
    height: 25px;
  }
  main h2.ir-news {
    padding-left: 15px;
  }
  
  main .h2-caption {
    margin-top: 60px;
  }
  main .h2-caption + h2 {
    margin-top: 0;
  }

  main h3,
  main .heading2 {font-size: 1.8rem;}
  main h4 {font-size: 1.8rem;}
  main h5 {font-size: 1.6rem;}
  main h6 {font-size: 1.5rem;}
  main .txt-m {font-size: 1.4rem !important;}
  main .txt-ml {font-size: 1.5rem !important;}
  main .txt-l {font-size: 1.8rem !important;}
  main .copy {font-size: 2rem;}
}

hr {
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-top: 1px solid #eaeaea;
}
/* ----- form ----- */
main input,
main button,
main textarea,
main select {
  margin: 0;
  padding: 0;
  font-family : inherit;
  font-size: 100%;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
main input::placeholder,
main textarea::placeholder,
main input:-ms-input-placeholder,
main textarea:-ms-input-placeholder,
main input::-ms-input-placeholder,
main textarea::-ms-input-placeholder {
  color: #ccc;
}
main input[type="text"],
main input[type="email"],
main input[type="tel"],
main input[type="number"],
main input[type="password"] {
  width: 100%;
  background: #f2f7fb;
  line-height: 1.2;
  padding: 16px;
  margin-top: 0px;
  color: #333333;
  border: none;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
main input[type="checkbox"],
main input[type="radio"] {
  display: none;
}
main input[type="checkbox"] + label {
  position: relative;
  display: inline-block;
  padding: 0 0 0 25px;
  margin: 7px 25px 7px 0;
  vertical-align: top;
  cursor: pointer;
}
main input[type="checkbox"] + label:before {
  content: "";
  display: block;
  position: absolute;
  top: 9px;
  left: 0;
  width: 13px;
  height: 13px;
  border: 1px solid #f2f7fb;
  background: #f2f7fb;
}
main input[type="checkbox"]:checked + label {
  color: #005bac;
}
main input[type="checkbox"]:checked + label:before {
  background: #005bac;
  border: 1px solid #005bac;
}
main input[type="checkbox"]:checked + label:after {
  content: "";
  display: block;
  position: absolute;
  top: 9px;
  left: 5px;
  width: 3px;
  height: 10px;
  transform: rotate(40deg);
  border-bottom: 2px solid #fff;
  border-right: 2px solid #fff;
}
main input[type="radio"] + label {
  position: relative;
  display: inline-block;
  padding: 0 0 0 25px;
  margin: 0 0 0 25px;
  vertical-align: top;
  cursor: pointer;
}
main input[type="radio"] + label:before {
  content: "";
  position: absolute;
  top: 50%;
  margin-top: -9px;
  left: 0;
  width: 10px;
  height: 10px;
  background: #f2f7fb;
  border: 4px solid #f2f7fb;
  border-radius: 100%;
}
main input[type="radio"]:checked + label {
  color: #005bac;
}
main input[type="radio"]:checked + label:before {
  background: #005bac;
}

main textarea {
  display: block;
  width: 100%;
  background: #f2f7fb;
  font-size: 14px;
  line-height: 1.5;
  padding: 15px;
  color: #666666;
  border: solid 1px #fff;
  resize: none;
}


/* ----- icon link ----- */
main a.link-icon {
  color: #005bac;
}
main a.link-icon > span {
  border-bottom: 1px solid transparent;
  transition: border-bottom-color 0.4s ease-in-out;
}
main a.link-icon:after {
  content: "";
  display: inline-block;
  width: 30px;
  height: 16px;
  margin-bottom: 2px;
  vertical-align: middle;
  background-image: url("../../images/common/icon_arrow_blue.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}
main a.link-icon[target="_blank"]:after {
  background-image: url("../../images/common/icon_blank_blue.svg");
  background-size: 12px;
}
main a.link-icon[href$=".pdf"]:after {
  background-image: url("../../images/news/icon_pdf.svg");
  background-size: contain;
}

@media (hover: hover) and (pointer: fine) {
  main a.link-icon > span:hover {
    border-bottom-color: #005bac;
  }
}

/* ----- link list ----- */
main .link-list a {
  display: inline-block;
}
main .link-list a.link-icon:after {
  width: 8px;
  height: 12px;
  margin-left: 8px;
  background-size: contain;
  transition: 0.4s ease-in-out;
}

@media screen and (min-width: 768px),print {
  main .link-list.list-col2 {
    column-count: 2;
  }
  main .link-list.list-col2 > * {
    page-break-inside: avoid;
    break-inside: avoid;
  }
}

@media (hover: hover) and (pointer: fine) {
  main .link-list a.link-icon:hover:after {
    margin-left: 13px;
  }
}


/* ----- anchor link ----- */
main .link-anchor {
  display: flex;
  flex-wrap: wrap;
  row-gap: 32px;
}
main .link-anchor li {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 1px solid #D2D5D8;
  border-top: none;
  border-bottom: none;
}
main .link-anchor li:not(:last-child) {
  margin-right: -1px;
}
main .link-anchor a {
  position: relative;
  width: 100%;
  padding: 0 44px 0 24px;
  line-height: 1.4;
  background: transparent;
}
main .link-anchor a:before {
  content: "";
  position: absolute;
  right: 24px;
  top: calc(50% - 6px);
  width: 7px;
  height: 12px;
  background: url("../../images/common/icon_arrow_blue.svg") no-repeat center;
  transform: rotate(90deg);
  transition: top .3s;
}
@media screen and (max-width: 767px) {
  main .link-anchor {
    row-gap: 10px;
    font-size: 1.2rem;
  }
  main .link-anchor li {
    width: 50%;
  }
  main .link-anchor a {
    padding: 0 32px 0 10px;
  }
  main .link-anchor a:before {
    right: 10px;
    top: calc(50% - 6px);
    width: 7px;
    height: 12px;
    background: url("../../images/common/icon_arrow_blue.svg") no-repeat center;
    transform: rotate(90deg);
    transition: top .3s;
  }
}

@media (hover: hover) and (pointer: fine) {
  main .link-anchor a:hover:before {
    top: calc(50% - 3px);
  }
}


/* ----- related link ----- */
main dl.link-related {
  background: #f2f7fb;
}
main dl.link-related dt,
main dl.link-related dd {
  padding: 14px 20px;
}
main dl.link-related dt {
  float:left;
  font-weight: bold;
}
main dl.link-related dd {padding-left: 8em;}


/* ----- list ----- */
ol:not([class]) {
  counter-reset: num;
  list-style-type: none;
  padding-left: 0;
  margin-bottom: 1em;
}
ol:not([class]) li {
  position: relative;
  padding-left: 1.8em;
}
ol:not([class]) li:before {
  position: absolute;
  counter-increment: num;
  content: counter(num)'.';
  left: .2em;
  top: 0;
  color: #005bac;
  font-weight: bold;
}
main ul:not([class]) {
  margin-bottom: 1em;
}
main ul:not([class]) li {
  position: relative;
  padding-left: 1.8em;
  line-height: 2.2;
}
main ul:not([class]) li:before {
  position: absolute;
  content: "";
  left: .5em;
  top: calc(1em - 2px);
  width: 6px;
  height: 6px;
  border-radius: 100%;
  background: #005bac;
  transition: all 0.4s ease-in-out;
}
main ol:not([class]) li:not(:last-child),
main ul:not([class]) li:not(:last-child) {
  margin-bottom: 1em;
}

@media (hover: hover) and (pointer: fine) {
  main a:hover ul:not([class]) li:before {
    background: #fff;
  }
}


/* ----- table ----- */
main table {
  position: relative;
  width: 100%;
  margin-bottom: 2em;
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid #d2d5d8;
}
main table:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 100%;
  background-color: #fff;
}
main table th,
main table td {
  padding: 25px 40px;
  border-bottom: 1px solid #d2d5d8;
  border-left: 1px solid #d2d5d8;
  overflow-wrap: anywhere;
}
main table th {
  width: 280px;
  font-weight: bold;
  background: #f2f7fb;
}
main table th.indent1 {
  padding-left: calc(40px + 1em);
}
main table thead th {
  color: #fff;
  font-size: 1.6rem;
  background: #005bac;
}
main table .note {
  margin-top: 5px;
  color: #666;
  font-weight: normal;
  line-height: 1.6;
}
main table td ul li {
  padding-left: 0;
}
main table td ul li:before {
  content: none;
}
main table td > *:last-child {
  margin-bottom: 0;
}
main .scroll table th.indent1 {
  padding-left: calc(24px + 1em);
}
main table.is-governance {
  width: 1872px;
  margin-bottom: 1em;
}
main table.is-governance th,
main table.is-governance td {
  height: 84px;
  padding: 9px 24px;
  font-size: inherit;
  line-height: 1.4;
  white-space: nowrap;
}
main table.is-governance tbody th {
  width: 7.5%;
}
main table.is-governance tbody th + td {
  width: 10%;
}
main table.is-governance tbody td {
  width: 7.5%;
}

main table.ir-data th,
main table.ir-data td {
  line-height: 1.4;
}
main table.ir-data tbody td {
  text-align: right;
}
main table.ir-data th span {
  font-size: 0.8em;
  font-weight: normal;
}
main table.ir-data thead th {
  text-align: center;
}

@media screen and (max-width: 767px) {
  main table th,
  main table td {
    display: block;
    width: 100%;
    padding: 15px 20px;
    border-left: none;
  }
  main table th.indent1 {
    padding-left: calc(20px + 1em);
  }
  main table.sp-keep {
    table-layout: fixed;
  }
  main table.sp-keep th,
  main table.sp-keep td {
    display: table-cell;
    width: auto;
  }
  main table.sp-keep th,
  main table.sp-keep td {
    border-left: 1px solid #d2d5d8;
  }
  main .scroll {
		margin: 0 0 1em;
		overflow-x: auto;
	}
	main .scroll > *,
  main .scroll table {
		min-width: 780px;
		margin-bottom: 1em;
	}
  main .scroll table th,
  main .scroll table td {
    display: table-cell;
    width: auto;
  }
  main .scroll table th,
  main .scroll table td {
    border-left: 1px solid #d2d5d8;
  }
  main .scroll table th.indent1 {
    padding-left: calc(20px + 1em);
  }
  main .scroll > *, main .scroll table.table-dividend {
    min-width: 520px;
  }
  main table.table-dividend tbody th {
    width: 170px;
  }
}

/* ----- panel set ----- */
main .panel-set {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: calc(100% + 22px);
  margin: 0 -22px 0 0;
  row-gap: 18px;
  line-height: 2;
}
main .panel-set > * {
  margin: 0 22px 22px 0;
}
main .panel-set > .col1-2 {
  width: calc(50% - 22px);
}
main .panel-set > .col1-3 {
  width: calc(33.333% - 22px);
}
main .panel-set > .col1-4 {
  width: calc(25% - 22px);
}
main .panel-set.no-gutter {
  width: 100%;
  margin: 0;
}
main .panel-set.no-gutter > * {
  margin: 0 0 22px 0;
}
main .panel-set.no-gutter > .col1-2 {
  width: 50%;
}
main .panel-set.no-gutter > .col1-3 {
  width: 33.333% ;
}
main .panel-set.no-gutter > .col1-4 {
  width: 25%;
}
main .panel-set.m30 {
  width: calc(100% + 30px);
  margin: 0 -30px 0 0;
}
main .panel-set.m30 > .col1-2 {
  width: calc(50% - 30px);
  margin: 0 30px 30px 0;
}
main .panel-set.m30 > .col1-3 {
  width: calc(33.333% - 30px);
  margin: 0 30px 30px 0;
}
main .panel-set.reverse {flex-direction: row-reverse;}
main .panel-set a {
  position: relative;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  height: 100%;
}
main .panel-set a:after {
  content: "";
  position: absolute;
  left: calc(50% - 20px);
  bottom: -20px;
  width: 40px;
  height: 40px;
  background: #005bac url(../../images/common/icon_arrow.svg) no-repeat 17px center;
  border-radius: 100%;
  transition: background-position 0.2s ease-in;
  z-index: 3;
}
main .panel-set a .img {
  position: relative;
  min-height: 0%;
  margin: 0;
  padding: 0;
}
main .panel-set a .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
main .panel-set a .img.frame {
  margin: 0;
  padding: 0;
  background: #fff;
}
main .panel-set a .img.frame:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 1px 1px rgba(0, 91, 172, 0.1) inset;
}
main .panel-set a .img.filter:before,
main .panel-set a .img.filter:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}
main .panel-set a .img.filter:before {
  background: linear-gradient(0deg, rgba(90, 88, 88, 0.6), rgba(90, 88, 88, 0.6));
  mix-blend-mode: multiply;  
}
main .panel-set a .img.filter:after {
  background: linear-gradient(0deg, rgba(0, 91, 172, 0.25), rgba(0, 91, 172, 0.25));
  mix-blend-mode: overlay;  
}
main .panel-set a .txt {
  position: relative;
  margin-bottom: auto;
  padding: 24px 24px 60px 24px;
  color: #000;
  line-height: 1.78;
  background: #f2f7fb;
  flex: 1 0 auto;
  z-index: 2;
  transition: color 0.4s ease-in-out, background-color 0.4s ease-in-out;
}
main .panel-set a .txt > :last-child {
  margin-bottom: 0 !important;
}
main .panel-set a .heading {
  margin: 0 0 20px 0;
  padding: 0;
  color: #005bac;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  transition: color 0.4s ease-in-out;
}
main .panel-set a .heading .txt-s {
  position: relative;
  top: -0.5em;
}
main .panel-set.img-bottom > * a .txt {
  padding-bottom: 24px;
}
main .panel-set.cover > * a .txt {
  padding-bottom: 0;
}
main .panel-set.cover h2 {
  position: absolute;
  display: block;
  left: 0;
  top: 50%;
  width: 100%;
  margin-bottom: 0;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  transform: translateY(-50%);
  z-index: 5;
}
main .panel-set .txt-s {font-size: 1.3rem !important;}

main .panel-set.related {
  margin-top: 110px;
  margin-bottom: 30px;
}
main .panel-set.related a:after {
  content: none;
}
main .panel-set.related a .img {
  aspect-ratio: 50 / 33;
}
main .panel-set.related a .img:before {
  content: "";
  position: absolute;
  right: 20px;
  bottom: 30px;
  width: 40px;
  height: 40px;
  background: #005bac url(../../images/common/icon_arrow.svg) no-repeat 17px center;
  border-radius: 100%;
  transition: background-position 0.2s ease-in;
  z-index: 3;
}
main .panel-set.related > * a .txt {
  width: 60%;
  padding: 30px 24px;
  margin: -45px 20px auto 20px;
}
main .panel-set.related a .heading {margin: 0;}

main .panel-set .txt.has-margin {
  margin: -55px 20px auto 20px;
}
main .panel-set + .btn-box {
  margin-top: 48px;
}

main .panel-set.card {
  margin-top: 60px;
}
main .panel-set.card > * {min-height: 280px;}
main .panel-set.card a {flex-direction: row;}
main .panel-set.card a:after {left: calc(75% - 20px);}
main .panel-set.card a > * {
  width: 50%;
  /*font-size: 1.3rem;*/
}
main .panel-set.card a .txt {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  padding: 10px 20px 30px 20px;
}
main .panel-set.card a p {margin-bottom: 0;}

@media screen and (min-width: 768px),print {
  main .panel-set.horizontal {
    display: block;
    width: 100%;
    margin: 40px 0 80px;
  }
  main .panel-set.horizontal > *:not(:last-child) {
    margin-bottom: 90px;
  }
  main .panel-set.horizontal a {
    display: block;
    padding-bottom: 60px;
  }
  main .panel-set.horizontal > *:nth-child(odd) a:after {
    left: calc(50% + 232px);
  }
  main .panel-set.horizontal > *:nth-child(even) a:after {
    left: auto;
    right: calc(50% + 232px);
  }
  main .panel-set.horizontal a .img {
    max-width: 945px;
    width: 72.7%;
  }
  main .panel-set.horizontal > *:nth-child(even) a .img {
    margin-left: auto;
  }
  main .panel-set.horizontal a .txt {
    position: absolute;
    max-width: 475px;
    width: calc(50% - 15px);
    padding: 80px 45px 100px 45px;
    bottom: 0;
  }
  main .panel-set.horizontal > *:nth-child(odd) a .txt {
    left: calc(50% + 15px);
  }
  main .panel-set.horizontal > *:nth-child(even) a .txt {
    right: calc(50% + 15px);
  }
  main .panel-set.horizontal a .heading {
    font-size: 2.6rem;
  }
  main .panel-set.horizontal a p {
    font-size: 1.5rem;
  }
  main .panel-set a .img.filter-pc:before,
  main .panel-set a .img.filter-pc:after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
  }
  main .panel-set a .img.filter-pc:before {
    background: linear-gradient(0deg, rgba(90, 88, 88, 0.6), rgba(90, 88, 88, 0.6));
    mix-blend-mode: multiply;  
  }
  main .panel-set a .img.filter-pc:after {
    background: linear-gradient(0deg, rgba(0, 91, 172, 0.25), rgba(0, 91, 172, 0.25));
    mix-blend-mode: overlay;  
  }
}

@media screen and (min-width: 768px) and (max-width: 1300px) {
  main .panel-set.horizontal > *:nth-child(odd) a:after {
    left: auto;
    right: calc((50% - 15px) / 2 - 20px);
  }
  main .panel-set.horizontal > *:nth-child(even) a:after {
    left: calc((50% - 15px) / 2 - 20px);
    right: auto;
  }
  main .panel-set.horizontal a .txt {
    padding: 6vw 4vw 8vw 4vw;
  }
  main .panel-set.horizontal a .heading {
    font-size: 2vw;
  }
}

@media screen and (max-width: 767px) {
  main .panel-set,
  main .panel-set.m30 {
    display: block;
    width: 100%;
    margin-right: 0;
  }
  main .panel-set > * {
    margin-right: 0;
  }
  main .panel-set > .col1-2,
  main .panel-set > .col1-3,
  main .panel-set.m30 > .col1-2,
  main .panel-set.m30 > .col1-3 {
    width: 100%;
    margin: 0 0 40px 0;
  }

  main .panel-set a .txt {
    padding-bottom: 40px;
  }
  main .panel-set.cover.sp-horizontal > .col1-3 {
    margin-bottom: 20px;
  }
  main .panel-set.cover.sp-horizontal a {
    flex-direction: row-reverse;
    align-items: center;
  }
  main .panel-set.cover.sp-horizontal a:after {
    left: unset;
    right: 0;
    bottom: unset;
    top: calc(50% - 19px);
    width: 38px;
    height: 38px;
  }
  main .panel-set.cover.sp-horizontal h2 {
    position: unset;
    padding: 0 48px 0 16px;
    color: unset;
    text-align: left;
    flex: 1;
    transform: none;
  }
  main .panel-set.cover.sp-horizontal a .img {
    width: 35%;
    aspect-ratio: 1.6;
  }
  main .panel-set.cover.sp-horizontal a .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  main .panel-set.related {
    margin-top: 60px;
  }
  main .panel-set.related > * a .txt {
    padding: 18px 24px;
    margin: -30px 20px auto 20px;
  }
  main .panel-set.related a .heading {
    font-size: 1.8rem;
  }
  main .panel-set.card {
    margin-top: 40px;
  }
  main .panel-set.card > * {min-height: 0; margin-bottom: 40px;}
  main .panel-set.card a {flex-direction: column;}
  main .panel-set.card a:after {left: calc(50% - 20px);}
  main .panel-set.card a > * {width: auto;}
  main .panel-set.card a .txt {
    margin: -55px 20px auto 20px;
    padding: 24px 24px 40px 24px;
  }
  main .panel-set.card a .img {
    aspect-ratio: 3/2;
  }

  main .panel-set.horizontal > * {
    margin-bottom: 40px;
  }
  main .panel-set.horizontal .txt {
    margin: -55px 20px auto 20px;
  }
}

@media (hover: hover) and (pointer: fine) {
  main .panel-set a:hover:after {
    background-position: 19px center
  }
  main .panel-set a:hover .txt {
    color: #fff;
    background-color: #005bac;
  }
  main .panel-set a:hover .heading {
    color: #fff;
  }
  main .panel-set.related a:hover:after {
    content: none;
  }
  main .panel-set.related a:hover .img:before {
    background-position: 19px center
  }
}


/* ----- column set ----- */
main .col-set {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin: 0;
}
main .col-set .col1-2 {width: 50%;}
main .col-set .col1-3 {width: 33.333%;}
main .col-set .col2-3 {flex: 1;}
main .col-set .col1-4 {width: 25%;}
main .col-set .col3-4 {flex: 1;}
main .col-set .col1-5 {width: 20%;}
main .col-set .col4-5 {flex: 1;}
main .col-set .col1-6 {width: 16.666%;}
main .col-set .col5-6 {flex: 1;}
main .col-set > *:last-child {margin-bottom: 0;}
main .col-set.reverse {flex-direction: row-reverse;}
main .col-set.is-margin {gap:40px;}
main .col-set.is-margin.gap-min {gap:22px;}
main .col-set.is-margin.gap-v {row-gap:60px;}
main .col-set.is-margin > * > *:last-child {margin-bottom: 0;}
main .col-set.dir-center {justify-content: center;}
main .column-adjust {
  display: flex;
  flex-direction: column;
}

@media screen and (min-width: 768px),print {
  main .col-set.is-margin .col1-2 {width: calc(50% - 20px);}
  main .col-set.is-margin .col1-3 {width: calc(33.333% - 26.7px);}
  main .col-set.is-margin .col1-4 {width: calc(25% - 30px);}
  main .col-set.is-margin .col1-5 {width: calc(20% - 32px);}
  main .col-set.is-margin .col2-5 {width: calc(40% - 20px);}
  main .col-set.is-margin .col3-5 {width: calc(60% - 20px);}
  main .col-set.is-margin.gap-min .col1-2 {width: calc(50% - 11px);}
  main .col-set.is-margin.gap-min .col1-3 {width: calc(33.333% - 15px);}
  main .col-set.is-margin.gap-min .col1-4 {width: calc(25% - 16.5px);}
  main .col-set.is-margin.gap-min .col1-5 {width: calc(20% - 17.6px);}
}

@media screen and (max-width: 767px) {
  main .col-set.is-margin {
    flex-direction: column;
    gap: 32px;
  }
  main .col-set.is-margin .col1-2,
  main .col-set.is-margin .col1-3,
  main .col-set.is-margin .col1-4,
  main .col-set.is-margin .col1-5 {width: 100%;}
  
  main .col-set.is-margin.gap-min.sp-col1-2 {
    flex-direction: row;
  }
  main .col-set.is-margin.gap-min.sp-col1-2 .col1-2,
  main .col-set.is-margin.gap-min.sp-col1-2 .col1-3 {
    width: calc(50% - 16px);
  }
  main .col-set .col1-6 {width: 33.3333%; max-width: 150px;}
}

/* ----- step list ----- */
main .list-step {
  display: flex;
  margin: 0;
  padding: 0;
  height: 212px;
}
main .list-step li {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: inherit;
  margin: 0 0 0 -12px;
  padding: 8px 12px 8px 24px;
  color: #fff;
  font-size: min(1.8vw,2rem);
  font-weight: bold;
  line-height: 1.2;
  text-align: center;
  background: #005bac;
  clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 50%, calc(100% - 24px) 100%, 0 100%, 24px 50%);
}
main .list-step li:first-child {
  margin-left: 0;
  padding-left: 12px;
  clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 50%, calc(100% - 24px) 100%, 0 100%);
}

@media screen and (max-width: 767px) {
  main .list-step {
    height: 24vw;
  }
  main .list-step li {
    margin-left: -1vw;
    padding: 8px 1vw 8px 2vw;
    overflow-wrap: anywhere;
    clip-path: polygon(0 0, calc(100% - 2vw) 0, 100% 50%, calc(100% - 2vw) 100%, 0 100%, 2vw 50%);
  }
  main .list-step li:first-child {
    margin-left: 0;
    padding-left: 1vw;
    clip-path: polygon(0 0, calc(100% - 2vw) 0, 100% 50%, calc(100% - 2vw) 100%, 0 100%);
  }
}

/* ----- button ----- */
main .btns_next {
  font-size: 14px;
  text-align: right;
}
main .btns_next a,
main .btns_next > span {
  position: relative;
  display: inline-block;
  padding-right: 55px;
  line-height: 40px;
}
main .btns_next a:after,
main .btns_next > span:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 40px;
  height: 40px;
  background: #005bac url(../../images/common/icon_arrow.svg) no-repeat 17px center;
  border-radius: 100%;
  transition: background-position 0.4s ease-in-out;
}
main .btns_back {
  font-size: 14px;
}
main .btns_back a {
  position: relative;
  display: inline-block;
  padding-left: 55px;
  line-height: 40px;
}
main .btns_back a:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 40px;
  background: #005bac url(../../images/common/icon_arrow.svg) no-repeat 17px center;
  border-radius: 100%;
  transform: scale(-1,1);
  transition: background-position 0.4s ease-in-out;
}
main .btn-box {
  display: flex;
  justify-content: center;
}
main .btn-box a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 340px;
  height: 80px;
  margin: 0 20px 20px 20px;
  padding: 0 45px;
  color: #fff;
  font-weight: bold;
  line-height: 1.4;
  background-color: #005bac;
  transition: background-color 0.4s ease-in-out;
}
main .btn-box.l a {
  min-width: 440px;
  height: 100px;
  font-size: 1.6rem;
}
main .btn-box a:after {
  content: "";
  position: absolute;
  right: 30px;
  top: calc(50% - 9px);
  width: 18px;
  height: 18px;
  background-position: right center;
  background-repeat: no-repeat;
  background-image: url(../../images/common/icon_arrow.svg);
  background-size: contain;
  transition: right 0.4s ease-in-out;
}
main .btn-box a[target="_blank"]:after {
  right: 25px;
  background-image: url("../../images/common/icon_blank.svg");
}
main .btn-box a.download:after {
  right: 25px;
  background-image: url("../../images/common/icon_download.svg");
}
/*main .btn-box a.entry span {
  padding-left: 40px;
  line-height: 25px;
  background: url("../../images/common/icon_entry.svg") no-repeat left center;
}*/

main .news_morebtns {
  width: 260px;
  margin: 50px auto 0;
  padding: 10px 0;
  color: #fff;
  font-size: 14px;
  text-align: center;
  background: #005bac;
  transition: all 0.3s ease;
  cursor: pointer;
}
main .news_morebtns span {
  position: relative;
}
main .news_morebtns span:before {
  position: absolute;
  content: "";
  right: -24px;
  bottom: 2px;
  height: 15px;
  border-right: 1px solid #fff;
}
main .news_morebtns span:after {
  position: absolute;
  content: "";
  right: -31px;
  bottom: 9px;
  width: 15px;
  border-bottom: 1px solid #fff;
}
main .news_morebtns.open span:before {
  content: none;
}

@media screen and (max-width: 767px) {
  main .btn-box {display: block;}
  main .btn-box a,
  main .btn-box.l a {
    min-width: initial;
    min-width: none;
    margin: 0 0 20px 0;
    font-size: 1.4rem;
  }
  main .news_morebtns {margin-top: 30px;}
}

@media (hover: hover) and (pointer: fine) {
  main .btns_next a:hover:after,
  main a:hover .btns_next > span:after {
    background-position: 19px center
  }
  main .btns_back a:hover:after {
    background-position: 19px center
  }
  main .btn-box a:hover {
    background-color: #002A4F;
  }
  main .btn-box a:hover:after {
    right: 27px;
  }
  main .btn-box a[target="_blank"]:hover:after {
    right: 25px;
  }
  main .news_morebtns:hover {
    background-color: #002A4F;
  }
}


/* ----- スクロール ----- */
main .scroll-always {
  margin: 0 0 1em;
  overflow-x: auto;
}
main .scroll::-webkit-scrollbar {height: 10px;}
main .scroll::-webkit-scrollbar-track {
  background: #f2f7fb;
  -webkit-border-radius: 5px;
}
main .scroll::-webkit-scrollbar-thumb {
  background: #005bac;
  -webkit-border-radius: 5px;
}
main .scroll .th-x-fixed th:first-of-type {
  position: sticky;
  left: 0;
  height: 100%;
}
main .scroll .th-x-fixed th:first-of-type:before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: 100%;
  height: 100%;
  border: 1px solid #d2d5d8;
}


/* ----- 動画埋め込み ----- */
main .embed-video {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin-bottom: 1em;
  overflow: clip;
}
main .embed-video iframe {
  width: 100%;
  height: 100%;
}


/* ----- 枠囲み ----- */
main .frame {
  margin-bottom: 2em;
  padding: 36px;
  font-weight: 500;
  background: #f2f7fb;
}
main .frame > *:last-child {
  margin-bottom: 0;
}
main .frame strong {
  font-size: 1.8rem;
}
main .frame dl {
	display: flex;
	flex-wrap: wrap;
}
main .frame dt {
	width: 80px;
}
main .frame dd {
	width: calc(100% - 80px);
}
main .bg-block {
  position: relative;
  margin: 145px 0 0;
  padding: 90px 0;
}
main .bg-block:before {
  content: "";
  position: absolute;
  left: calc(50% - 50vw);
  top: 0;
  width: 100vw;
  height: 100%;
  background: #f2f7fb;
  z-index: -1;
}
main .bg-block > *:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  main .frame strong {
    font-size: 1.6rem;
  }

  main .bg-block {
    margin-top: 80px;
    padding: 60px 0;
  }
}


/* ----- faq list ----- */
main .list-faq {
  margin: 0 0 2em;
  border-bottom: 1px solid #d2d5d8;
}
main .list-faq dt,
main .list-faq dd {
  position: relative;
  margin: 0;
}
main .list-faq dt {
  padding: 30px 0 23px 50px;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.5;
  border-top: 1px solid #d2d5d8;
  cursor: pointer;
  transition: all 0.4s ease-in-out;
}
main .list-faq dd {
  display: none;
  padding: 0 0 24px 50px;
  color: #4d4d4d;
  font-size: 1.4rem;
  line-height: 2;
}
main .list-faq dd > *:last-child {
  margin-bottom: 0;
}
main .list-faq dt:before,
main .list-faq dd:before {
  position: absolute;
  left: 8px;
  color: #5a5858;
  font-size: 2.8rem;
  font-weight: bold;
  line-height: 1;
}
main .list-faq dt:before {
  content: "Q";
  top: 25px;
  color: #005bac;
}
main .list-faq dd:before {
  content: "A";
  top: 0;
}
main .list-faq dt > span {
  position: relative;
  display: block;
  padding-right: 54px;
}
main .list-faq dt > span:before,
main .list-faq dt > span:after {
  content: "";
  position: absolute;
  right: 18px;
  top: calc(50% - 4px);
  width: 18px;
  height: 1px;
  background: #005bac;
  z-index: 2;
  transition: transform 0.4s ease-in-out;
}
main .list-faq dt > span:before {
  transform: rotate(90deg);
}
main .list-faq dt > span:after {
  transform: rotate(0deg);
  opacity: 1;
}
main .list-faq dt.open > span:before {
	transform: rotate(180deg);
}
main .list-faq dt.open > span:after {
  opacity: 0;
}
main .list-faq dt > span .sub {
  display: block;
  margin-bottom: 6px;
  font-size: 1.3rem;
  font-weight: inherit;
}
main .list-faq dt > span .label-category:not(:last-child):after {
  content: "";
  display: inline-flex;
  width: 5px;
  height: 5px;
  margin: 0 10px 2px;
  vertical-align: middle;
  border-top: 1px solid #005bac;
  border-right: 1px solid #005bac;
  transform: rotate(45deg);
  transition: border-color 0.4s ease-in-out;
}
main .list-faq dd h4 {
  margin-bottom: 0.5em;
}
main .list-faq dd * + h4 {
  margin-top: 1em;
}
main .list-faq dd a.link-icon:not([target="_blank"]):after {
  content: none;
}
main .tab-element > .list-faq dt:first-of-type,
main .heading2 + .list-faq dt:first-of-type {
  border-top: none;
}
main .heading2 + .list-faq {
  margin-top: -20px;
}

@media (hover: hover) and (pointer: fine) {
  main .list-faq dt:hover {
    color: #005bac;
  }
}

/* ----- tab ----- */
main .tab-element {
  display: none;
}
main .tab-element.active {
  display: block;
}

/* ----- sort tab ----- */
main .sorttabs {
  display: flex;
  justify-content: space-between;
  gap: 2px;
  border-bottom: 1px solid #b3b3b3;
}
main .sorttabs li {
  position: relative;
  width: 100%;
  padding: 20px 0;
  margin: 0;
  color: #999;
  font-size: 14px;
  line-height: 1;
  text-align: center;
  background: #f2f7fb;
  cursor: pointer;
  transition: all 0.3s ease;
}
main .sorttabs li.active {
  position: relative;
  background: #fff;
  color: #005bac;
  box-shadow: 0 0 0 1px #b3b3b3;
}
main .sorttabs li.active:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 1px;
  background-color: #fff;
}

@media screen and (max-width: 767px) {
  main .sorttabs {
    display: flex;
    justify-content: space-between;
  }
  main .sorttabs li {
    font-size: 12px;
    line-height: 1.2;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

@media (hover: hover) and (pointer: fine) {
  main .sorttabs li:hover {
    color: #fff;
    background-color: #005bac;
  }
}


/* =========================================================
 * モーダル
========================================================= */
.mfp-bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 100042;
	overflow: hidden;
	background: #000;
	opacity: 0.7;
	-moz-animation: mfp-bg-fadein .3s linear;
	-webkit-animation: mfp-bg-fadein .3s linear;
	animation: mfp-bg-fadein .3s linear;
}

@-moz-keyframes mfp-bg-fadein {
	0% {opacity: 0;}
	100% {opacity: .8;}
}
@-webkit-keyframes mfp-bg-fadein {
	0% {opacity: 0;}
	100% {opacity: .8;}
}
@keyframes mfp-bg-fadein {
	0% {opacity: 0;}
	100% {opacity: .8;}
}
.mfp-bg.mfp-ready.mfp-removing {
	opacity: 0;
	transition: opacity .3s linear .3s;
}

.mfp-wrap {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 100043;
	position: fixed;
	outline: none !important;
}

.mfp-container {
	position: absolute;
	width: 100%;
	max-width: none;
	height: 100%;
	left: 0;
	top: 0;
	text-align: center;
	box-sizing: border-box;
}

.mfp-container:before {
	content: '';
	display: inline-block;
	height: 100%;
	vertical-align: middle;
}
.mfp-align-top .mfp-container:before {display: none;}

.mfp-content {
	position: relative;
	display: inline-block;
	margin: 20px auto;
	text-align: left;
	vertical-align: middle;
	opacity: 0;
	z-index: 100045;
	-webkit-backface-visibility: hidden;
	transform: scale(.9);
}
.mfp-wrap.mfp-ready .mfp-content  {
	opacity: 1;
	-moz-transform: scale(1);
	-webkit-transform: scale(1);
	transform: scale(1);

	-moz-transition: -moz-transform .3s ease-out, opacity .3s linear;
	-webkit-transition: -webkit-transform .3s ease-out, opacity .3s linear;
	transition: transform .3s ease-out, opacity .3s linear;
}
.mfp-wrap.mfp-ready.mfp-removing .mfp-content  {
	opacity: 0;
	-moz-transform: scale(.9);
	-webkit-transform: scale(.9);
	transform: scale(.9);
	-moz-transition: -moz-transform .3s ease-in .3s, opacity .3s linear .3s;
	-webkit-transition: -webkit-transform .3s ease-in .3s, opacity .3s linear .3s;
	transition: transform .3s ease-in .3s, opacity .3s linear .3s;
}

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
	width: 100%;
	padding: 0 5%;
	cursor: auto;
}

.mfp-inline-holder .mfp-content > div {
	position: relative;
  width: 100%;
  max-width: 920px;
  max-height: calc(100vh - 40px);
	margin: 0 auto;
  padding: 74px 58px;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
}
.mfp-inline-holder .mfp-content > div .outer {
  max-height: calc(100vh - 40px - 148px);
  overflow-y: auto; 
  scrollbar-width: thin;
  scrollbar-color: #005bac #f2f7fb;
}
.mfp-inline-holder .mfp-content > div .outer::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.mfp-inline-holder .mfp-content > div .outer::-webkit-scrollbar-track {
  background-color: #f2f7fb;
  border-radius: 100px;
}
.mfp-inline-holder .mfp-content > div .outer::-webkit-scrollbar-thumb {
  background-color: #005bac;
  border-radius: 100px;
}
.mfp-inline-holder .mfp-content > div .inner {
  padding: 0 22px;
  overflow: clip;
}
.mfp-inline-holder .mfp-content > div .inner > *:nth-last-child(2) {
  margin-bottom: 0;
}
.mfp-inline-holder .mfp-content > div h4 {
  margin-bottom: 28px;
}

.mfp-ajax-cur {cursor: progress;}

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
	cursor: -moz-zoom-out;
	cursor: -webkit-zoom-out;
	cursor: zoom-out;
}

.mfp-zoom {
	cursor: pointer;
	cursor: -webkit-zoom-in;
	cursor: -moz-zoom-in;
	cursor: zoom-in;
}

.mfp-auto-cursor .mfp-content {cursor: auto;}

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}

.mfp-loading.mfp-figure {display: none;}

.mfp-hide {display: none !important;}

.mfp-preloader {
	position: absolute;
	top: 50%;
	width: 100%;
	height: 60px;
	margin-top: -30px;
	text-indent: -9999px;
	z-index: 100044;
	overflow: hidden;
}
.mfp-preloader:before {
	content: "";
	display: block;
	width: 60px;
	height: 60px;
	margin: 0 auto;
	background-image: url(../images/preloader.svg);
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 60px 60px;
}

.mfp-s-ready .mfp-preloader {display: none;}

.mfp-s-error .mfp-content {display: none;}

.mfp-close {
	position: absolute;
	width: 27px;
	height: 27px;
	right: 0;
	top: -35px;
  margin: 0;
  padding: 0;
	text-indent: -9999px;
	cursor: pointer;
	border: none;
  background: transparent;
	outline: none;
  z-index: 2;
  transition: opacity 0.4s;
}

.mfp-close:before,
.mfp-close:after {
	content: "";
	position: absolute;
	display: block;
	width: 2px;
	height: 36px;
	right: 50%;
	top: 50%;
	background-color: #fff;
	border-radius: 2px;
}
.mfp-close:before {
	transform: translate(-50%,-50%) rotate(45deg);
}
.mfp-close:after {
	transform: translate(-50%,-50%) rotate(-45deg);
}

.mfp-counter {
	position: absolute;
	top: 0;
	right: 0;
	color: #ccc;
	font-size: .96rem;
	line-height: 1.6;
	white-space: nowrap;
}

.mfp-arrow {
	position: absolute;
	z-index: 100046;
	width: 40px;
	height: 40px;
	top: 50%;
	margin-top: -20px;
	text-indent: -9999px;
	background-color: #005bac;
	border: 0 none;
	overflow: hidden;
	cursor: pointer;
	outline: none;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	border-radius: 50%;
}
.mfp-arrow:before,
.mfp-arrow:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 40px;
  height: 40px;
  margin: auto;
}
.mfp-arrow:before {
  border-radius: 100%;
  background-color: #005bac;
  transition: transform 0.3s;
}
.mfp-arrow:after {
  background: url("../images/icon_arrow_wh.svg") no-repeat center;
}
.mfp-arrow-left {left: -100px;}
.mfp-arrow-right {right: -100px;}

.mfp-arrow-left:after {
	left: 7px;
	transform: rotate(180deg);
}
.mfp-arrow-right:after {right: 7px;}

.mfp-ready .mfp-arrow-left {
	left: 20px;
	transition: left .3s cubic-bezier(.47, 1.83, .71, 1) .3s;
}
.mfp-ready.mfp-removing .mfp-arrow-left {
	left: -100px;
	transition: left .5s ease-in 0s;
}
.mfp-ready .mfp-arrow-right {
	right: 20px;
	transition: right .3s cubic-bezier(.47, 1.83, .71, 1) .3s;
}
.mfp-ready.mfp-removing .mfp-arrow-right {
	right: -100px;
	transition: right .5s ease-in 0s;
}

.mfp-iframe-holder .mfp-content {
	line-height: 0;
	width: 100%;
	max-width: 980px;
	padding: 40px 5%;
}

.mfp-iframe-scaler {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 56.25%;
}

.mfp-iframe-scaler iframe {
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-moz-box-shadow: 0 0 30px rgba(0, 0, 0, .6);
	-webkit-box-shadow: 0 0 30px rgba(0, 0, 0, .6);
	box-shadow: 0 0 30px rgba(0, 0, 0, .6);
	background: #000;
}

/* Main image in popup */
img.mfp-img {
	position: relative;
	z-index: 1;
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	line-height: 0;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

/* The shadow behind the image */
.mfp-figure {
	line-height: 0;
	padding: 40px 0;
}
.mfp-figure:after {
	content: '';
	position: absolute;
	z-index: -1;
	display: block;
	width: auto;
	height: auto;
	left: 0;
	top: 40px;
	bottom: 40px;
	right: 0;
	background: #444;
	-moz-box-shadow: 0 0 50px rgba(0, 0, 0, .6);
	-webkit-box-shadow: 0 0 50px rgba(0, 0, 0, .6);
	box-shadow: 0 0 50px rgba(0, 0, 0, .6);
}

.mfp-figure small {

	color: #BDBDBD;
	display: block;
	font-size: .75rem;
	line-height: 1.6;
}

.mfp-figure figure {
	position: relative;
	margin: 0;
}

.mfp-title {
	float: left;
	height: 1.6em;
	padding-right: 4em;
	text-align: left;
	line-height: 1.6;
	color: #fff;
}

.mfp-image-holder .mfp-content {max-width: 100%;}

.mfp-gallery .mfp-image-holder .mfp-figure {cursor: pointer;}

@media screen and (max-width: 767px) {
  .mfp-inline-holder .mfp-content > div {
    padding: 28px;
  }
  .mfp-inline-holder .mfp-content > div .outer {
    max-height: calc(100vh - 40px - 56px);
  }
  .mfp-inline-holder .mfp-content > div .inner {
    padding: 0 12px;
  }
  .mfp-inline-holder .mfp-contentmain > div * + h5 {
    margin-top: 24px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .mfp-close:hover {
    opacity: 0.5;
  }
}

main .modal-video {
  position: relative;
  display: inline-block;
  overflow: clip;
}
main .modal-video:before,
main .modal-video:after {
  content: "";
  position: absolute;
  z-index: 2;
}
main .modal-video:before {
  width: 98px;
  height: 98px;
  left: calc(50% - 49px);
  top: calc(50% - 49px);
  background: rgba(0, 0, 0, 0.5);
  background-blend-mode: multiply;
  border-radius: 100%;
}
main .modal-video:after {
  width: 32px;
  height: 38px;
  left: calc(50% - 16px + 5px);
  top: calc(50% - 19px);
  background-color: #fff;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
main .modal-video img {
  transition: transform 0.3s ease-out;
}

@media (hover: hover) and (pointer: fine) {
  main .modal-video:hover img {
    transform: scale(1.05);
  }
}


/* =========================================================
 * スライダー
========================================================= */
main .slider {position: relative;}
main .slider-container {
  width: 100%;
  overflow: hidden;
}

/* ----- Slick Slider ----- */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}
.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}
.slick-slider .slick-track, .slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  display: table;
  content: '';
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}
.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}
[dir='rtl'] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
  display: none;
}
/* Arrows */
.slick-prev, .slick-next {
  font-size: 0;
  line-height: 0;
  position: absolute;
  top: 50%;
  display: block;
  width: 30px;
  height: 30px;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  cursor: pointer;
  color: transparent;
  border: none;
  outline: none;
  background: transparent;
}
.slick-prev:focus,
.slick-next:focus {
  color: transparent;
  outline: none;
}
.slick-prev:focus:before,
.slick-next:focus:before {
  opacity: 1;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
  opacity: .25;
}
.slick-prev:before,
.slick-next:before {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.slick-prev {
  background: url("../../images/top/prev.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  left: -50px;
}
[dir='rtl'] .slick-prev {
  right: -50px;
  left: auto;
}
.slick-prev:before {
  content: '';
}
[dir='rtl'] .slick-prev:before {
  content: '→';
}
.slick-next {
  background: url("../../images/top/next.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  right: -50px;
}
[dir='rtl'] .slick-next {
  right: auto;
  left: -50px;
}
.slick-next:before {
  content: '';
}
[dir='rtl'] .slick-next:before {
  content: '←';
}
/* Dots */
.slick-dotted.slick-slider {
  padding-bottom: 35px;
}
.slick-dots {
  position: absolute;
  bottom: 0;
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
  font-size: 0;
  text-align: center;
}
.slick-dots li {
  position: relative;
  display: inline-block;
  width: 60px;
  margin: 0 2px;
  padding: 0;
  font-size: 0;
  cursor: pointer;
}
.slick-dots li button {
  font-size: 0;
  line-height: 0;
  display: block;
  width: 60px;
  height: 13px;
  padding: 10px 0 0;
  cursor: pointer;
  color: transparent;
  border: 0;
  outline: none;
  background: transparent;
}
.slick-dots li button:focus {
  outline: none;
}
.slick-dots li button:focus:before {
  opacity: 1;
}
.slick-dots li button:before {
  content: '';
  position: absolute;
  top: 10px;
  left: 0;
  width: 60px;
  height: 3px;
  background-color: #dedede;
  transition: background-color 0.3s ease-out
}
.slick-dots li.slick-active button:before {
  background-color: #005bac;
}
@media screen and (min-width: 768px)and (max-width: 1040px) {
  .slick-prev {
    display: none;
  }
  .slick-next {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .slick-prev {
    left: -35px;
  }
  .slick-next {
    right: -35px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .slick-prev:hover,
  .slick-next:hover {
    color: transparent;
    outline: none;
  }
  .slick-prev:hover:before,
  .slick-next:hover:before {
    opacity: 1;
  }
  .slick-dots li button:hover {
    outline: none;
  }
  .slick-dots li button:hover:before {
    opacity: 1;
  }
  .slick-dots li button:hover:before {
    background-color: #005bac;
  }
}

/* =========================================================
 * news area
========================================================= */
main .news_inner .box {
  font-size: 14px;
  padding: 15px 25px;
  background-image: linear-gradient(to right, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
  background-size: 4px 1px;
  background-repeat: repeat-x;
  background-position: left bottom;
}
main .news_inner .box dl {
  display: flex;
  justify-content: flex-start;
  margin: 5px 0 0;
}
main .news_inner .box dl dt {
  margin-right: 20px;
  color: #005bac;
  line-height: 20px;
}
main .news_inner .box dl dd {
  line-height: 20px;
}
main .news_inner .box dl dd span {
  display: inline-block;
  min-width: 134px;
  margin: 0 10px 5px 0;
  padding: 0 10px;
  color: #fff;
  font-size: 12px;
  line-height: 20px;
  text-align: center;
}
main .news_inner .box dl.category-01 dd span {
  background: #79b1c9;
}
main .news_inner .box dl.category-02 dd span {
  background: #e56a73;
}
main .news_inner .box dl.category-03 dd span {
  color: #000;
  background: #dedede;
}
main .news_inner .box dl.category-04 dd span {
  background: #005bac;
}
main .news_inner .box dl dd span.new {
  min-width: 0;
  width: 48px;
  color: #fff;
  background-color: #de626a;
}
main .news_inner .box p {
  margin: 0;
}
main .news_inner .box a > span {
  border-bottom: 1px solid transparent;
  transition: border 0.4s ease-in-out;
}
main .news_inner .box a:after {
  content: "";
  display: inline-block;
  width: 30px;
  height: 16px;
  margin-bottom: 2px;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}
main .news_inner .box a[target="_blank"]:after {
  background-image: url("../../images/common/icon_blank_blue.svg");
  background-size: 12px;
}
main .news_inner .box a[href$=".pdf"]:after {
  background-image: url("../../images/news/icon_pdf.svg");
  background-size: contain;
}

.home main .news_inner .box {
  display: flex;
  align-items: flex-start;
}
.home main .news_inner .box:last-of-type {
  background: none;
}
.home main .news_inner .box dl {
  width: 250px;
}
.home main .news_inner .box p {
  width: calc(100% - 250px);
  flex: 1 0 auto;
}

main .news-list {
  font-size: 1.4rem;
}
main .news-list dt,
main .news-list dd {
  padding: 12px 15px;
}
main .news-list dt {
  float: left;
  color: #005bac;
  clear: left ;
}
main .news-list dd {
  padding-left: 120px;
}
main .news-list dd:not(:last-of-type) {
  background-image: linear-gradient(to right, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
  background-size: 4px 1px;
  background-repeat: repeat-x;
  background-position: left bottom;
}
main .news-list dd a.link-icon:not(:hover) {
  color: inherit;
}
main .news-list dd a.link-icon:not([target="_blank"]):after {
  content: none;
}

@media screen and (max-width: 767px) {
  main .news_inner .box,
  .home main .news_inner .box {
    display: block;
    padding: 10px 15px;
  }
  .home main .news_inner .box:first-of-type {
    padding-top: 0;
  }
  .home main .news_inner .box p {
    width: auto;
  }
  main .news-list dt,
  main .news-list dd {
    padding: 12px 15px;
  }
  main .news-list dt {
    float: none;
    padding: 10px 15px 0 15px;
  }
  main .news-list dd {
    padding: 0 15px 10px 15px;
  }
}

@media (hover: hover) and (pointer: fine) {
  main .news_inner .box a > span:hover {
    border-bottom-color: #005bac;
  }
}


/* =========================================================
 * index.html　　   /*トップページ
========================================================= */
.home #top_main {
  position: relative;
  overflow: hidden;
}
.home #top_main .slider1 {
  margin-top: 110px;
  width: 100%;
  height: 640px;
  overflow: hidden;
}
.home #top_main .slider1{
  opacity: 0;
  transition: opacity .3s linear;
}
.home #top_main .slider1.slick-initialized {
  opacity: 1;
}
.home #top_main .slider1 li {
  position: relative;
  width: 100%;
  height: 640px;
  overflow: hidden;
}
.home #top_main .slider1 li img {
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
}
.home #top_main .alert {
  position: absolute;
  top: 110px;
  left: 0;
  right: 0;
  z-index: 9;
  background: #ffdbd9;
}
.home #top_main .alert dl {
  padding: 5px 15px;
}
.home #top_main .alert dl dt {
  color: #333333;
  font-size: 13px;
  font-weight: 400;
}
.home #top_main .alert dl dt span {
  display: inline-block;
  margin: 0px 0 0px 15px;
  padding: 0px 10px;
  color: #fff;
  font-size: 11px;
  vertical-align: middle;
  background: #e56a73;
}
.home #top_main .alert dl dd {
  min-height: 30px;
  margin-top: -29px;
  padding-top: 7px;
  padding-left: 200px;
}
.home #top_main .alert dl dd a {
  display: inline-block;
  color: #e56a73;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
  border-bottom: 1px solid transparent;
  transition: border 0.4s ease-in-out;
}
.home #top_main .strength {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 9;
  width: 256px;
}
.home #top_main .strength a {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 140px;
  padding: 0 0 0 40px;
  color: #fff;
  text-align: center;
  line-height: 1.4;
  transition: color 0.4s ease-in-out;
}
.home #top_main .strength a:before,
.home #top_main .strength a:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: cover;
  transition: opacity 0.4s ease-in-out;
}
.home #top_main .strength a:before {
  background-image: url("../../images/top/main_btn_pc.png");
  z-index: -2;
}
.home #top_main .strength a:after {
  background-image: url("../../images/top/main_btn_pc_ov.png");
  z-index: -1;
  opacity: 0;
}
.home #top_main .strength a h2 {
  font-size: 2.5rem;
}
.home #top_main .strength a p {
  position: relative;
  font-size: 1.4rem;
}
.home #top_main .strength a p span {
  font-size: 20px;
}

.home main h2 {
  margin: 0 auto 30px;
  padding-bottom: 40px;
  font-size: 1.6rem;
  font-weight: 400;
}
.home main h2 span {
  display: inline-block;
  color: #005bac;
  font-size: min(5vw,4.6rem);
  line-height: 1;
}
.home main h2::after {
  content: "";
  position: absolute;
  display: block;
  left: 50%;
  bottom: 0;
  width: 1px;
  height: 30px;
  background-color: #005bac;
}
.home main h2.white,
.home main h2.white span {
  color: #ffffff;
}
.home main h2.white::after {
  background-color: #ffffff;
}
.home main #pickup {
  padding: 75px 0 100px;
}

.home main #pickup .slider2 .slider2_1 {
  width: 960px;
}
.home main #pickup .slider2 .slider2_1 a {
  position: relative;
  display: flex;
  justify-content: space-between;
  text-align: center;
}
.home main #pickup .slider2 .slider2_1 a:after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 40px;
  height: 40px;
  background: #005bac url(../../images/common/icon_arrow.svg) no-repeat 17px center;
  border-radius: 100%;
  transition: background-position 0.4s ease-in-out;
}
.home main #pickup .slider2 .slider2_1 a {
}
.home main #pickup .slider2 .slider2_1 a .slider2_txt {
  width: 390px;
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  padding: 10px 32px;
  color: #fff;
  background: #005bac;
  box-shadow: 0 0 0 1px #005bac inset;
  transition: all 0.4s ease-in-out;
}
.home main #pickup .slider2 .slider2_1 a .slider2_txt h3 {
  width: 100%;
  margin: 0;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.15em;
  text-align: left;
}
.home main #pickup .slider2 .slider2_1 a .slider2_txt h3 span {
  letter-spacing: 0;
}
.home main #pickup .slider2 .slider2_1 a .slider2_txt p {
  margin: 10px 0 0 0;
  font-size: 1.3rem;
  text-align: left;
  letter-spacing: 0.08em;
}
.home main #pickup .slider2 .slider2_1 a figure {
  width: calc(100% - 390px);
  position: relative;
}

.home main #service {
  position: relative;
  padding: 75px 0 100px;
}
.home main #service:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 70%;
  background: url("../../images/top/img_top_02.jpg");
  background-position: center center;
  background-repeat: no-repeat;
  z-index: -1;
}

.home main #service .panel-set a .heading {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.09em;
  line-height: 1.7;
  text-align: center;
}
.home main #service .panel-set a .heading span {
  color: #000;
  font-size: 1.4rem;
  font-weight: 400;
  transition: color 0.4s ease-in-out;
}
.home main #service .panel-set a p {
  margin: 15px 0 0;
  font-size: 1.3rem;
  line-height: 2;
}
.home main #service .panel-set a {
  min-height: 212px;
}
.home main #service .panel-set a .txt {
  background-color: #fff;
}
.home main #service .panel-set.is-horizontal a {
  display: flex;
  flex-direction: row-reverse;
}
.home main #service .panel-set.is-horizontal a:after {
  content: none;
}
.home main #service .panel-set.is-horizontal a .img {
  width: 280px;
  overflow: clip;
}
.home main #service .panel-set.is-horizontal a .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home main #service .panel-set.is-horizontal a .txt {
  width: calc(100% - 280px);
  margin: 0;
  padding: 32px 40px 40px;
}
.home main #service .panel-set.is-horizontal a .heading {
  font-size: 2.3rem;
  line-height: 1.26;
  letter-spacing: normal;
  text-align: left;
}
.home main #service .panel-set.is-horizontal a .heading:after {
  content: "";
  display: inline-flex;
  width: 24px;
  height: 24px;
  margin-left: 0.7em;
  vertical-align: middle;
  background: #005bac url(../../images/common/icon_arrow.svg) no-repeat 11px center;
  background-size: 4px auto;
  border-radius: 100%;
  transition: background 0.2s ease-in;
}
.home main #service .panel-set.is-horizontal a p {
  margin-top: 4px;
  font-size: 1.5rem;
  line-height: 1.4;
}
.home main #service .panel-set.is-horizontal a .heading + p {
  margin-top: 10px;
}

.home main .info {
  position: relative;
  padding: 0 0 90px;
}
.home main .info:before {
  content: "";
  position: absolute;
  left: 0;
  top: 305px;
  width: 100%;
  height: calc(100% - 305px);
  background: #f2f7fb;
}
.home main .info .inner {
  max-width: 846px;
}
.home main .info .panel-set {
  width: calc(100% + 20px);
  margin-right: -20px;
  row-gap: 54px;
}
.home main .info .panel-set li {
  width: calc(50% - 20px);
  margin: 0 20px 0 0; 
}
.home main .info .panel-set h2 {
  font-size: 1.6rem;
  font-weight: 400;
}
.home main .info .panel-set h2 span {
  color: #fff;
  white-space: nowrap;
}
.home main .info .panel-set h2:after {
  background-color: #fff;
}

.home main > .news {
  padding: 75px 0 100px;
}

@media screen and (min-width: 768px) {
  .home #top_main .slider1 li img.sp {
    display: none;
  }
}

@media screen and (max-width: 1100px) {
  .home #top_main .slider1 {
    margin-top: 50px;
  }
  .home #top_main .alert {
    position: relative;
    top: 50px;
  }
}

@media screen and (max-width: 767px) {
  .home #top_main .slider1 {
    height: 50%;
  }
  .home #top_main .slider1 li {
    width: 100%;
    height: 536px;
  }
  .home #top_main .slider1 li img.pc {
    display: none;
  }
  .home #top_main .alert dl {
    padding: 5px 0 2px 0;
  }
  .home #top_main .alert dl dt span {
    padding: 0 6px;
  }
  .home #top_main .alert dl dd {
    margin-top: 0;
    padding-left: 0;
  }
  .home #top_main .strength {
    position: static;
    width: 100%;
    height: 90px;
  }
  .home #top_main .strength a {
    height: 88px;
    padding: 0;
  }
  .home #top_main .strength a:before {
    background-image: url("../../images/top/main_btn_sp.png");
    background-position: left 20%;
    background-size: 120%;
  }
  .home #top_main .strength a:after {
    background: #fff;
  }
  .home #top_main .strength a p {
    position: unset;
  }
  .home #top_main .strength a p span {
    position: absolute;
    top: calc(50% - 23px);
    right: 20px;
    font-size: 30px;
  }

  .home main h2 {
    margin: 0 auto 30px;
    padding-bottom: 30px;
  }
  .home main h2 span {
    padding-bottom: 0.125em;
    font-size: 2.8rem;
  }
  .home main h2::after {
    height: 25px;
  }
  
  .home main #pickup {
    padding: 60px 0 80px;
  }
  .home main #pickup .slider2 {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .home main #pickup .slider2 .slider2_1 {
    width: 100%;
    height: auto;
  }
  .home main #pickup .slider2 .slider2_1 a {
    display: block;
  }
  .home main #pickup .slider2 .slider2_1 a .slider2_txt {
    width: 100%;
    min-height: 34.9vw;
    padding: 4vw 6vw;
  }
  .home main #pickup .slider2 .slider2_1 a .slider2_txt p {
    margin-top: 4vw;
  }
  .home main #pickup .slider2 .slider2_1 a figure {
    width: 100%;
  }

  .home main #service {
    padding: 60px 0 20px;
  }
  .home main #service:before {
    height: 100%;
    background-position: top center;
    background-size: 200% auto;
  }
  .home main #service ul {
    display: block;
  }
  .home main #service ul li {
    width: 100%;
    margin-top: 50px;
    box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.4);
  }
  .home main #service .panel-set.is-horizontal a {
    flex-direction: column;
  }
  .home main #service .panel-set.is-horizontal a .img {
    width: 100%;
  }
  .home main #service .panel-set.is-horizontal a .txt {
    width: 100%;
    padding: 32px 24px 40px;
  }
  .home main #service .panel-set.is-horizontal a .heading {
    padding-right: 40px;
  }
  .home main #service .panel-set.is-horizontal a .heading:after {
    position: absolute;
    right: 0;
    top: calc(50% - 12px);
    margin: 0;
  }
  
  .home main .info {
    padding: 60px 0;
  }
  .home main .info:before {
    top: 0;
    height: 100%;
  }
  .home main .info .panel-set {
    width: 100%;
    margin-right: 0;
    margin-bottom: 0;
  }
  .home main .info .panel-set li {
    width: 100%;
    margin: 0 0 20px 0; 
  }
  .home main .info .panel-set li + li {
    margin-top: 40px;
  }
  
  .home main > .news {
    padding: 60px 0 80px;
  }
}

@media screen and (max-width: 480px) {
  .home #top_main .slider1 {
    height: 380px;
  }
  .home #top_main .slider1 li {
    width: 100%;
    height: 380px;
  }

}

@media (hover: hover) and (pointer: fine) {
  .home #top_main .alert dl dd a:hover {
    border-bottom-color: #e56a73;
  }
  .home #top_main .strength a:hover {
    color: #005bac;
  }
  .home #top_main .strength a:hover:before {
    opacity: 0;
  }
  .home #top_main .strength a:hover:after {
    opacity: 1;
  }
  .home main #pickup .slider2 .slider2_1 a:hover:after {
    background-position: 19px center
  }
  .home main #pickup .slider2 .slider2_1 a:hover .slider2_txt {
    color: #005bac;
    background: #fff;
    box-shadow: 0 0 0 1px #dedede inset;
  }
  .home main #service .panel-set a:hover .heading span {
    color: #fff;
  }
  .home main #service .panel-set a:hover .txt {
    background-color: #005bac;
  }
  .home main #service .panel-set.is-horizontal a:hover .heading:after {
    background-color: #fff;
    background-image: url("../../images/common/icon_arrow_blue.svg");
  }
}


/* =========================================================
 * company
========================================================= */
.company main .panel-set.index .txt {
  margin: -55px 20px auto 20px;
}
main .map {
  position: relative;
  height: 0;
  padding-bottom: 67.368%;
}
main .map iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
main .message-set .img {
  margin-top: 90px;
  width: 71.38%;
}
main .message-set .txt {
  position: relative;
  max-width: 980px;
  margin: -100px auto 0 auto;
  padding-left: 180px;
  font-size: 1.6rem;
}
main .message-set .txt .inner {
  position: relative;
  max-width: 100%;
  min-width: 0;
  padding: 100px 40px 100px 100px;
  box-sizing: border-box;
  z-index: 2;
}
main .message-set .txt .inner:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 200%;
  height: 100%;
  background: #f2f7fb;
  z-index: -1;
}
main h2.style-philosophy {
  margin-bottom: 40px;
  padding-bottom: 60px;
  font-size: 1.6rem;
  font-weight: 400;
  color: #000;
}
main h2.style-philosophy:after {
  height: 50px;
}
main h2.style-philosophy span {
  color: #005bac;
  font-size: 5rem;
}
main h2.style-philosophy strong {
  color: #005bac;
  font-family: "Crimson Text", Georgia, "Times New Roman", Times, "Noto Sans JP", "ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic Pro",メイリオ,Meiryo, sans-serif;
  font-size: 2.2rem;
}
main .mission-set {
  position: relative;
  margin-top: -65px;
  padding: 95px;
  font-size: 2rem;
  font-weight: 500;
  text-align: center;
}
main .mission-set:before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 200%;
  height: 100%;
  background: #f2f7fb;
  z-index: -1;
}
main .mission-set p:not(:first-child):before {
  content: "“";
  display: block;
  color: #005bac;
  font-family: "Crimson Text", Georgia, "Times New Roman", Times, "serif";
  font-size: 7rem;
  line-height: 1;
}
main .mission-set > *:last-child {
  margin-bottom: 0 !important;
}
main .mission-set ruby {
  color: #005bac;
  font-size: 2.8rem;
  font-weight: bold;
  line-height: 2.5;
  ruby-align: center; 
  text-align: center;
}
main .mission-set ruby > rt {
  font-size: 2rem;
  font-weight: 400;
  text-align: inherit;
}
main dl.value-set {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  margin-top: -65px;
  padding: 95px;
  font-size: 1.3rem;
  line-height: 1.7;
}
main dl.value-set:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 200%;
  height: 100%;
  background: #f2f7fb;
  z-index: -1;
}
main dl.value-set dt {
  position: relative;
  width: 170px;
  color: #005bac;
  font-size: 2rem;
  font-weight: bold;
}
main dl.value-set dt:after {
  content: "";
  position: absolute;
  right: 40px;
  top: 15px;
  width: 40px;
  height: 1px;
  background: #d2d5d8;
}
main dl.value-set dd {
  width: calc(100% - 170px);
  padding: 5px 0 50px 0;
}
main dl.value-set dd:last-of-type {
  padding-bottom: 0 !important;
}

@media screen and (max-width: 980px) {
  main .message-set .txt {
    margin-top: -10vw;
    padding-left: 18vw;
  }
  main .message-set .txt .inner {
    padding: 10vw 4vw 10vw 10vw;
  }
  main .mission-set,
  main dl.value-set {
    padding: 10vw;
  }
}
@media screen and (max-width: 767px) {
  main .message-set .img {
    margin-top: 50px;
    width: 95%;
  }
  main .message-set .txt {
    width: auto;
    margin-top: -6vw;
    padding-left: 5%;
    font-size: 1.5rem;
  }
  main .message-set .txt .inner {
    width: auto;
    padding: 6vw;
  }
  main h2.style-philosophy {
    font-size: 1.5rem;
  }
  main h2.style-philosophy span {
    font-size: 3rem;
  }
  main h2.style-philosophy strong {
    font-size: 1.8rem;
  }
  main .mission-set {
    padding: 6vw;
    font-size: 1.6rem;
  }
  main .mission-set:before {
    width: 100%;
  }
  main .mission-set p:not(:first-child):before {
    font-size: 4rem;
  }
  main .mission-set ruby {
    font-size: 2rem;
  }
  main .mission-set ruby > rt {
    font-size: 1.6rem;
  }
  main dl.value-set {
    padding: 6vw;
  }
  main dl.value-set:before {
    width: 100%;
  }
  main dl.value-set dt {
    width: 110px;
    font-size: 1.6rem;
  }
  main dl.value-set dt:after {
    right: 15px;
    top: 12px;
    width: 30px;
  }
  main dl.value-set dd {
    width: calc(100% - 110px);
    padding: 2px 0 20px 0;
  }
}

main .contact-btm a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 250px;
  color: #005bac;
  font-size: 1.6rem;
  font-weight: 500;
  background: rgba(0,91,172,0);
  transition: all 0.4s ease-in-out;
}
main .contact-btm a:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: url("../../images/common/bg_contact.jpg") no-repeat center center;
  background-size: cover;
  z-index: -1;
}
main .contact-btm a span {
  position: relative;
  padding-top: 26px;
}
main .contact-btm a span:before,
main .contact-btm a span:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 36px auto;
  transition: all 0.4s ease-in-out;
}
main .contact-btm a span:after {
  background-image: url("../../images/common/menu_mail_pc.svg");
  opacity: 1;
}
main .contact-btm a span:before {
  background-image: url("../../images/common/menu_mail_sp.svg");
  opacity: 0;
}
@media screen and (max-width: 767px) {
  main .contact-btm a {height: 150px;}
}

@media (hover: hover) and (pointer: fine) {
  main .contact-btm a:hover {
    color: #fff;
    background: rgba(0,91,172,1);
  }
  main .contact-btm a:hover span:after {opacity: 0;}
  main .contact-btm a:hover span:before {opacity: 1;}
}

main .line-set {
  position: relative;
  margin-bottom: 0;
  padding-bottom: 30px;
  z-index: 1;
}
main .line-set:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -25px;
  width: 1px;
  height: 50px;
  background-color: #005bac;
}


/* =========================================================
 * service
========================================================= */
.service main .level2 + .contents_area {
  max-width: 1300px;
  padding: 0;
}
.service main .line-set + * {
  margin-top: 70px;
}
.service main .outline-set {
  position: relative;
  margin: 0;
  padding: 80px 0 60px 40.8%;
}
.service main .outline-set:before {
  content: "";
  position: absolute;
  left: 21%;
  top: 0;
  width: 200%;
  height: 100%;
  background-color: #f2f7fb;
  z-index: -1;
}
.service main .outline-set > .img {
  position: absolute;
  left: 0;
  top: 10%;
  width: 36.5%;
}
.service main .outline-set .box {
  padding: 30px 50px;
  background: #fff;
}
.service main .outline-set .box > .heading {
  padding-bottom: 0.5em;
  color: #005bac;
  font-size: 1.8rem;
  font-weight: 900;
  line-height: 1.5;
  text-align: center;
  border-bottom: 1px solid #005bac;
}
.service main .outline-set .col-set.payment p {
  font-size: 1.3rem;
}
.service main .outline-set > .img figure {
  text-align: center;
}
.service main .outline-set > .img figcaption {
  margin: 16px 0 0;
  color: #005bac;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.service main .outline-set > .img figure + figure {
  margin: 40px 0 0;
}
.service main .outline-set > .img figure.img-a920max img {
  width: 49%;
}
.service main .outline-set > .img figure.img-a920 img {
  width: 84.6%;
}
.service main .link-product {
  position: relative;
  padding: 0 0 20px;
  margin: 0 0 70px;
}
.service main .link-product a {
  position: relative;
  display: flex;
  margin: 0;
  color: #000;
  background: #f2f7fb;
  transition: 0.4s ease-in-out;
}
.service main .link-product a:after {
  content: "";
  position: absolute;
  left: calc(50% - 20px);
  bottom: -20px;
  width: 40px;
  height: 40px;
  background: #005bac url(../../images/common/icon_arrow.svg) no-repeat 17px center;
  border-radius: 100%;
  transition: background-position 0.2s ease-in;
  z-index: 3;
}
.service main .link-product .img {
  width: 38.8%;
  padding: min(8.72vw,67px) min(4.8vw,37px) min(4.16vw,50px) min(7.16vw,55px);
  background: none;
}
.service main .link-product .txt {
  flex: 1;
  padding: min(4.16vw,50px) min(3.125vw,52px);
}
.service main .link-product a .heading {
  margin: 0 0 32px;
  padding: 0;
  color: #005bac;
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.4;
  transition: color 0.4s ease-in-out;
}

.service main .detail-set {
  position: relative;
  max-width: 644px;
  margin: 70px auto;
  padding: 28px 32px;
}
.service main .detail-set .title {
  position: absolute;
  left: 0;
  top: 0;
  max-width: 35%;
  line-height: 1;
}
.service main .detail-set .img {
  position: relative;
}
.service main .detail-set .img:before,
.service main .detail-set .img:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.service main .detail-set .img:after {
  background: url("../../images/service/img_multipay_detail_line.png") no-repeat center center;
  background-size: cover;
  opacity: 0;
  transition: all 0.4s ease-in-out 1.5s;
}
.service main .detail-set.active .img:after {
  opacity: 1;
}
.service main .detail-set .img:before {
  background: #e4edf2;
  box-shadow: 0 0 0 38px #f6f9fb inset;
  border-radius: 100%;
  z-index: -1;
}
.service main .detail-set .bubble {
  position: absolute;
  width: 120px;
  height: 120px;
  margin: 7px;
}
.service main .detail-set .bubble span {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  background: #fff;
  box-shadow: 0 0 0 1px #005bac inset;
  border-radius: 100%;
  transform: scale(0);
  transition: all 0.4s ease-in-out;
}
.service main .detail-set .bubble:before {
  content: "";
  position: absolute;
  width: 134px;
  height: 134px;
  left: calc(50% - 67px);
  top: calc(50% - 67px);
  background: #e4edf2;
  border-radius: 100%;
  transform: scale(0);
  z-index: -1;
  transition: all 0.4s ease-in-out;
}
.service main .detail-set .bubble:nth-of-type(1) {
  left: calc(50% - 60px);
  top: 0;
}
.service main .detail-set .bubble:nth-of-type(2) {
  right: 0;
  top: calc(30% - 60px);
}
.service main .detail-set .bubble:nth-of-type(3) {
  right: 0;
  bottom: calc(30% - 60px);
}
.service main .detail-set .bubble:nth-of-type(4) {
  left: calc(50% - 60px);
  bottom: 0;
}
.service main .detail-set .bubble:nth-of-type(5) {
  left: 0;
  bottom: calc(30% - 60px);
}
.service main .detail-set .bubble:nth-of-type(6) {
  left: 0;
  top: calc(30% - 60px);
}
.service main .detail-set.active .bubble span,
.service main .detail-set.active .bubble:before {
  transform: scale(1);
}
.service main .detail-set.active .bubble:nth-of-type(1) span,
.service main .detail-set.active .bubble:nth-of-type(1):before {
  transition-delay: .2s;
}
.service main .detail-set.active .bubble:nth-of-type(2) span,
.service main .detail-set.active .bubble:nth-of-type(2):before {
  transition-delay: .4s;
}
.service main .detail-set.active .bubble:nth-of-type(3) span,
.service main .detail-set.active .bubble:nth-of-type(3):before {
  transition-delay: .6s;
}
.service main .detail-set.active .bubble:nth-of-type(4) span,
.service main .detail-set.active .bubble:nth-of-type(4):before {
  transition-delay: .8s;
}
.service main .detail-set.active .bubble:nth-of-type(5) span,
.service main .detail-set.active .bubble:nth-of-type(5):before {
  transition-delay: 1s;
}
.service main .detail-set.active .bubble:nth-of-type(6) span,
.service main .detail-set.active .bubble:nth-of-type(6):before {
  transition-delay: 1.2s;
}

.service main .index-feature {
  position: relative;
  margin: 0 0 80px;
  padding: 60px 0 40px 0;
}
.service main .index-feature:before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 200%;
  height: 100%;
  background-color: #f2f7fb;
  z-index: -1;
}
.service main .index-feature > *:not(:first-child) {
  background-image: linear-gradient(to bottom, #005bac, #005bac 2px, transparent 2px, transparent 5px);
  background-size: 2px 5px;
  background-repeat: repeat-y;
  background-position: left top;  
}
.service main .index-feature a {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 20px 20px 60px 20px;
  transition: all 0.4s ease-in-out;
}
.service main .index-feature a:after {
  content: "";
  position: absolute;
  left: calc(50% - 13px);
  bottom: 5px;
  width: 20px;
  height: 26px;
  background: url("../../images/common/icon_arrow_blue.svg") no-repeat left center;
  transition: background-position 0.4s ease-in-out;
  background-size: 15px auto;
  transform: rotate(90deg);
  z-index: 3;
}
.service main .index-feature .feature-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 20px;
}
.service main .index-feature .feature-inner.is-center_h {
  align-items: center;
}
.service main .index-feature > * > *:last-child {margin-bottom: 0;}
.service main .index-feature .img {background: none;}
.service main .index-feature .img img {display: inline-block;}
.service main .index-feature p {width: 100%;  text-align: center;}
.service main .index-feature .heading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3em;
  padding: 0 .75em;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.5;
}
.service main .index-feature a:not(.list-col2) ul {
  max-width: 100%;
  align-self: center;
}
.service main .index-feature a.list-col2 ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;

}
.service main .index-feature a.list-col2 li {width: 50%;}
.service main .index-feature li {
  margin-bottom: .5em !important;
  color: #333;
  font-size: 1.3rem;
  line-height: 1.4 !important;
  letter-spacing: normal;
  transition: all 0.4s ease-in-out;
}
.service main .index-feature li:before {top:6px !important;}

.service main .support-set {margin: 30px 0 0 0;}
.service main .support-set > * {
  position: relative;
  padding: 20px 10px;
  line-height: 1.5;
  text-align: center;
}
.service main .support-set > *:not(:first-child) {
  background-image: linear-gradient(to bottom, #005bac, #005bac 2px, transparent 2px, transparent 5px);
  background-size: 2px 5px;
  background-repeat: repeat-y;
  background-position: left top;  
}
.service main .support-set > * > *:last-child {margin-bottom: 0;}
.service main .support-set .heading {
  font-size: 1.4rem;
  font-weight: bold;
}
.service main table .device-name td {
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
}
.service main table .device-img td {
  border-top: 0 !important;
}
main .frame-line {
  position: relative;
  margin: 50px 0 1em 0;
  padding: 7% 5%;
  border: 1px solid #d2d5d8;
  border-radius: 15px;
}
main .frame-line h5 {
  position: absolute;
  display: flex;
  align-items: center;
  left: 30px;
  top: -34px;
  height: 68px;
  gap: 1em;
  margin: 0 30px 0 0;
  padding: 0 15px;
  line-height: 1.2;
  background-color: #fff;
}
main .frame-line h5 img {
  display: inline-block;
  padding-bottom: 8px;
  flex-shrink: 0;
}
main .col-set.payment p {
  color: #4d4d4d;
  font-size: 1.4rem;
  line-height: 1.4;
  text-align: center;
}
main .col-set.payment-cover h4 {margin-top: 50px;}
main .col-set.payment-cover h4 img {vertical-align: middle;}
main .col-set.payment-cover .col1-2 {width: calc(50% - 20px);}
main .col-set.payment-cover > *:nth-child(odd) {margin-right: 40px;}

main .step-set {
  position: relative;
  margin: 0;
  padding: 80px 0;
}
main .step-set:before {
  content: "";
  position: absolute;
  left: -150%;
  top: 0;
  width: 300%;
  height: 100%;
  background-color: #f2f7fb;
  z-index: -1;
}
main .step-set .col-set {
  width: calc(100% - 19px);
  margin: 0;
  flex-wrap: nowrap;
}
main .step-set .col-set .step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: calc(100% + 19px);
  height: 264px;
  margin: 0;
  padding: 8px 38px;
  color: #fff;
  font-size: 2rem;
  line-height: 1.2;
  text-align: center;
  background: #005bac;
  clip-path: polygon(0 0, calc(100% - 38px) 0%, 100% 50%, calc(100% - 38px) 100%, 0 100%, 38px 50%);
}
main .step-set .col-set .step.first-cap {
  clip-path: polygon(0 0, calc(100% - 38px) 0%, 100% 50%, calc(100% - 38px) 100%, 0 100%);
  padding-left: 0;
}
main .step-set .col-set .step > *:last-child {margin-bottom: 0;}
main .step-set .col1-3:first-child .step {background-color: #9ec2e7;}
main .step-set .col1-3:nth-child(2) .step {background-color: #6494ce;}
main .step-set .col-set .step strong {font-size: 2.6rem;}
main .step-set .col-set .step .step-num {
  font-size: 2rem;
  font-weight: bold;
}
main .step-set .col-set .step .step-title {
  font-size: clamp(2.2rem,2.8vw,2.8rem);
  font-weight: bold;
  line-height: 1.4;
}
main .step-set .col-set .step .step-title[data-mh="title"] {
  display: flex;
  align-items: center;
}
main .step-set .col-set .step ul {
  margin-bottom: 0;
  padding: 20px 20px 0 20px;
}
main .step-set .col-set .step li {
  margin-bottom: 0 !important;
  font-size: 1.4rem;
}
main .step-set .col-set .step-caption {
  margin: 25px clamp(15px,2vw,40px) 0;
  font-size: 1.4rem;
  line-height: 1.4;
}
main .step-set .col-set .step-caption > *:last-child {
  margin-bottom: 0;
}
main .step-set .col-set .step-caption ul {
  padding: 0;
}

.service main .step-set {
  margin: 0;
}
.service main .step-set + .btns_back {
  margin-top: 2em;
}
.service main .list-step li:first-child {
  color: #005bac;
  background-color: #dbe7f3;
}
.service main .list-step li:nth-child(2) {
  color: #005bac;
  background-color: #c4d8eb;
}
.service main .list-step li:nth-child(3) {
  background-color: #96b9da;
}
.service main .list-step li:nth-child(4) {
  background-color: #699aca;
}
.service main .list-step li:nth-child(5) {
  background-color: #3b7bb9;
}
.service.processing-solution main .col-set.payment-cover h4 {line-height: 54px;}

.service main .scroll table th,
.service main .scroll table td {
  padding: 9px 24px;
  line-height: 1.4;
}
.service main .scroll table th {
  font-size: 1.4rem;
}
.service main .scroll table td {
  font-size: 1.3rem;
}
.service main .table-lineup .name-product {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.service main .table-lineup .img-product {
  margin: 8px 0 0;
  aspect-ratio: 4 / 3;
}
.service main .table-lineup .img-product img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media screen and (max-width: 767px) {
  .service main .outline-set {
    padding: 60px 0 40px 0;
  }
  .service main .outline-set h3 {text-align: center;}
  .service main .outline-set > .img {
    position: static;
    float: left;
    width: 40%;
    margin-right: 20px;
  }
  .service main .outline-set .img + .txt,
  .service main .outline-set > .txt-ml {
    margin-left: calc(40% + 20px);
  }
  .service main .outline-set .box {
    padding: 20px 30px;
    clear: both;
  }
  .service main .outline-set .col-set .col1-4 {width: 33.333%;}
  .service main .outline-set > .img figcaption {
    font-size: 1.6rem;
  }
  .service main .outline-set > .img.sp-row {
    float: none;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    max-width: 86%;
    width: 100%;
    margin: 0 auto 24px;
  }
  .service main .outline-set > .img.sp-row figure {
    flex: 1;
  }
  .service main .outline-set:has(.sp-row) {
    padding: 0 5vw 40px;
  }
  .service main .outline-set:has(.sp-row) > .txt {
    margin: 0 0 30px;
  }
  .service main .outline-set:has(.sp-row):before {
    left: 0;
  }
  .service main .outline-set:has(.sp-row) .box {
    margin: 0 -5vw;
  }
  .service main .outline-set > .img.sp-row:has(.img-a920) img {
    aspect-ratio: 0.916;
    object-fit: contain;
    object-position: center bottom;
  }
  .service main .outline-set > .img figure.img-a920max img,
  .service main .outline-set > .img figure.img-a920 img{
    width: 100%;
  }
  
  .service main .link-product {
    margin-bottom: 40px;
  }
  .service main .link-product a {
    flex-direction: column;
  }
  .service main .link-product .img {
    width: 100%;
    padding: 0;
  }
  .service main .link-product .img figure {
    aspect-ratio: 1.724;
    padding: 45px 20px 12px;
  }
  .service main .link-product .img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  .service main .link-product .txt {
    padding: 32px 24px;
  }
  .service main .link-product a .heading {
    margin-bottom: 24px;
    font-size: 1.8rem;
  }
  
  .service main .detail-set {
    margin: 70px auto;
    padding: 4vw 5vw;
  }
  .service main .detail-set .img:before {
    box-shadow: 0 0 0 5vw #f6f9fb inset;
  }
  .service main .detail-set .bubble {
    width: 18vw;
    height: 18vw;
    margin: 1vw;
  }
  .service main .detail-set .bubble span {
    font-size: 2.5vw;
  }
  .service main .detail-set .bubble:before {
    width: 21vw;
    height: 21vw;
    left: calc(50% - 10.5vw);
    top: calc(50% - 10.5vw);
  }
  .service main .detail-set .bubble:nth-of-type(1) {
    left: calc(50% - 9vw);
  }
  .service main .detail-set .bubble:nth-of-type(2) {
    top: calc(30% - 9vw);
  }
  .service main .detail-set .bubble:nth-of-type(3) {
    bottom: calc(30% - 9vw);
  }
  .service main .detail-set .bubble:nth-of-type(4) {
    left: calc(50% - 9vw);
  }
  .service main .detail-set .bubble:nth-of-type(5) {
    bottom: calc(30% - 9vw);
  }
  .service main .detail-set .bubble:nth-of-type(6) {
    top: calc(30% - 9vw);
  }
  
  .service main .index-feature {padding: 20px 0;}
  .service main .index-feature .col1-3 {width: 100%;}
  .service main .index-feature > *:not(:first-child) {
    background-image: linear-gradient(to right, #005bac, #005bac 2px, transparent 2px, transparent 5px);
    background-size: 5px 2px;
    background-repeat: repeat-x;
  }
  .service main .index-feature > *:not(:first-child) a {padding-top: 40px;}
  .service main .index-feature a:after {bottom: 15px;}
  .service main .index-feature .heading {min-height: initial; min-height: none;}
  .service main .support-set .col1-4 {width: 50%;}
  .service main .support-set > *:nth-child(odd) {background: none;}
  .service main .support-set > *:nth-child(n+3):before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 2px;
    background-image: linear-gradient(to right, #005bac, #005bac 2px, transparent 2px, transparent 5px);
    background-size: 5px 2px;
    background-repeat: repeat-x;
    background-position: left top;  
  }
  .service main .support-set .heading {font-size: 1.3rem;}
  main .frame-line {padding: 50px 20px 30px 20px;}
  main .col-set.payment-cover .col1-2 {width: 100%;}
  main .col-set.payment-cover > *:nth-child(odd) {width: 100%; margin-right: 0;}
  main .col-set.payment .col1-3,
  main .col-set.payment .col1-5,
  main .col-set.payment .col1-6 {width: 33.333%;}
  main .step-set {
    padding: 60px 0;
  }
  main .step-set .col-set {
    width: 100%;
    flex-direction: column;
  }
  main .step-set .col1-3 {
    display: flex;
    align-items: center;
    width: 100%;
    margin: 0 0 -3vw;
  }
  main .step-set .col-set .step {
    width: 40vw;
    height: 45vw;
    margin: 0;
    padding: 0 2vw;
    font-size: 2.5vw;
    clip-path: polygon(0 0, 50% 6vw, 100% 0, 100% calc(100% - 6vw), 50% 100%, 0 calc(100% - 6vw));
    flex-shrink: 0;
  }
  main .step-set .col-set .step.first-cap {
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 6vw), 50% 100%, 0 calc(100% - 6vw));
    padding: 0 2vw 2vw;
  }
  main .step-set .col-set .step .step-num {
    margin-bottom: 0;
    font-size: 2rem;
  }
  main .step-set .col-set .step .step-title {
    font-size: 1.8rem;
  }
  main .step-set .col-set .step ul {
    width: calc(100% - 40vw);
    padding: 0 0 0 20px;
  }
  main .step-set .col-set .step-caption {
    margin: 0 0 0 24px;
  }

  .service main .scroll table th,
  .service main .scroll table td {
    padding: 15px 20px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .service main .index-feature a:hover {background-color: rgba(255,255,255,.4)}
  .service main .index-feature a:hover:after {background-position: 5px center;}
  .service main .index-feature a:hover .img img {transform: scale(1);}
  .service main .index-feature a:hover li {color: #005bac;}
  .service main .index-feature a:hover li:before {background-color: #005bac !important;}
  .service main .link-product a:hover {
    color: #fff;
    background-color: #005bac;
  }
  .service main .link-product a:hover:after {
    background-position: 19px center;
  }
  .service main .link-product a:hover .heading {
    color: #fff;
  }
}


/* =========================================================
 * 採用
========================================================= */
.recruit main .personality {
  position: relative;
  padding: 80px 0 50px 0;
  font-size: 1.8rem;
  text-align: center;
}
.recruit main .personality:before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 200%;
  height: 100%;
  background-color: #f2f7fb;
  z-index: -1;
}
.recruit main h2 + .copy {
  padding-bottom: 35px;
  color: #000;
  font-size: 2rem;
  font-weight: normal;
  line-height: 2;
  text-align: center;
}

.recruit main .panel-set.index {
  margin-top: 60px;
}
.recruit main .panel-set.index a {flex-direction: row;}
.recruit main .panel-set.index a:after {left: calc(75% - 20px);}
.recruit main .panel-set.index a > * {
  width: 50%;
  font-size: 1.3rem;
}
.recruit main .panel-set.index a .txt {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  padding: 10px 20px 30px 20px;
}
.recruit main .panel-set.index a .heading {
  color: #000;
  font-size: 1.6rem;
}
.recruit main .copy.line-set + .panel-set {
  margin-top: 60px;
}
.recruit main .panel-set a .name {
  margin: 2px 0 12px;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.5;
}
.recruit main .panel-set a .name .furigana {
  display: inline-block;
  font-size: 1rem;
}
.recruit main .panel-set a .position,
.recruit main .panel-set a .year {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.5;
}

.recruit.member main #mv {
  position: relative;
  max-width: 1300px;
  margin: 70px auto 0 auto;
}
.recruit.member main #mv .img {
  position: relative;
  width: 72.7%;
  margin: 0 0 0 auto;
}
.recruit.member main #mv .txt {
  position: absolute;
  left: calc(50% - 490px);
  bottom: 0;
  width: 475px;
  padding: 3%;
  font-size: 1.4rem;
  line-height: 1.5;
  background: #f2f7fb;
}
.recruit.member main #mv .txt > *:last-child {margin-bottom: 0;}
.recruit.member main #mv h4 {
  color: #005bac;
  font-size: 2.6rem;
  font-weight: bold;
}
.recruit.member main .name {
  margin: 2px 0 12px;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.2;
}
.recruit.member main .name .furigana {
  display: inline-block;
  font-size: 1rem;
}
.recruit.member main .position,
.recruit.member main .year {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.5;
}

.recruit.member main div[id^="block"] {
  max-width: 874px;
  margin: auto;
  padding: 90px 0 0 0;
}
.recruit.member main div#block01 {padding-top: 0;}
.recruit.member main div[id^="block"] p {margin-bottom: 2em; line-height: 2.3;}
.recruit.member main div[id^="block"] .col-set {justify-content: space-between;}
.recruit.member main div[id^="block"] .col-set.reverse {flex-direction: row-reverse;}
.recruit.member main div[id^="block"] .col-set .img {width: 43.5%}
.recruit.member main div[id^="block"] .col-set .txt {width: 51.5%;}
.recruit.member main div[id^="block"] .col-set .txt > *:last-child {margin-bottom: 0;}

.recruit.member main #profile {
  margin: 90px 0 0 0;
  padding: 40px;
  font-size: 1.4rem;
  background: #f2f7fb;
}
.recruit.member main #profile .col-set {gap:3.5%;}
.recruit.member main #profile .col-set .img {width: 18.6%;}
.recruit.member main #profile .col-set .desc {width: 17.1%; line-height: 1.5;}
.recruit.member main #profile .col-set .txt {flex: 1;}
.recruit.member main #profile p:last-child {margin: 0;}

.recruit.member main #message {
  margin: 90px 0 0 0;
  padding: 40px;
  font-size: 1.4rem;
  background: #f2f7fb;
}
.recruit.member main #message .col-set {
  align-items: flex-start;
  gap:40px;
}
.recruit.member main #message .col-set .img {
  width: 160px;
  margin: 0;
  aspect-ratio: 1;
  border-radius: 100%;
  overflow: hidden;
}
.recruit.member main #message .col-set .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.recruit.member main #message .col-set .txt {flex: 1;}
.recruit.member main #message p:last-child {margin: 0;}

.recruit.member main .panel-set.paging {
  width: calc(100% + 7px);
  margin: 0 -7px 100px 0;
}
.recruit.member main .panel-set.paging .col1-4 {
  width: calc(25% - 7px);
  margin: 0 7px 20px 0;
}
.recruit.member main .panel-set.paging a {
  font-size: 1.3rem;
  line-height: 1.5;
}
.recruit.member main .panel-set.paging .txt {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  padding: 24px 20px 60px 20px
}
.recruit.member main .panel-set.paging a .heading {
  color: #000;
  font-size: 1.6rem;
  flex: 1 0 auto;
}
.recruit.member main .panel-set.paging a p {margin: 0;}
.recruit.member .member-links {justify-content: flex-start;}
.recruit.member .member-links .current {display: none;}

.recruit.welfare main *:not(h2) + h3:not(.heading2) {
  margin-top: 80px;
}
.recruit.welfare main h3 + .col-set {
  margin-top: 30px;
}

@media screen and (max-width: 1010px) {
  .recruit.member main #mv .img {width: 80.5%;}
  .recruit.member main #mv .txt {
    position: relative;
    left: 0;
    bottom: auto;
    top: -15vw;
    margin: 0 0 -15vw 15px;
  }
}
@media screen and (min-width: 768px) and (max-width: 900px) {
  .recruit main .panel-set.index a > * {font-size: 1.3vw;}
  .recruit main .panel-set.index a .txt {padding: 1.3vw 2.4vw 2.4vw 2.4vw;}
  .recruit main .panel-set.index a .heading {
    margin-bottom: 2vw;
    font-size: 1.8vw;
  }
  .recruit main .panel-set.index a p.name {font-size: 1.8vw;}
}

@media screen and (min-width: 768px) {
  .recruit main h3:not(.heading2) {font-size: 2.8rem;}
}

@media screen and (max-width: 767px) {
  .recruit main .personality {
    padding: 60px 0 40px;
    font-size: 1.6rem;
  }
  .recruit main h2 + .copy {font-size: 1.6rem;}
  .recruit main h4 {font-size: 1.6rem; font-weight: 900;}
  
  .recruit.member main #mv {margin-top: 50px;}
  .recruit.member main #mv .img {
    left: -5%;
    width: 110%;
    margin: 0;
  }
  .recruit.member main #mv .txt {
    top: -10vw;
    width: auto;
    margin: 0 5% -10vw 5%;
    padding: 24px;
  }
  .recruit.member main #mv h4 {font-size: 2.2rem;}
  .recruit.member main div[id^="block"] {padding-top: 60px;}
  .recruit.member main div[id^="block"] .col-set .img {
    width: 70%;
    margin: 0 auto 30px;
  }
  .recruit.member main div[id^="block"] .col-set .txt {width: 100%;}
  .recruit.member main #profile {margin-top: 30px; padding: 20px;}
  .recruit.member main #profile .col-set {justify-content: flex-start; align-items: center;}
  .recruit.member main #profile .col-set .img {width: auto; max-width: 45%; margin-right: 20px;}
  .recruit.member main #profile .col-set .desc {width: auto;}
  .recruit.member main #profile .col-set .txt {width: 100%; margin-top: 30px;}
  .recruit.member main #message {margin-top: 30px; padding: 20px;}
  .recruit.member main #message .col-set {flex-direction: column;align-items: center; gap:20px;}
  .recruit.member main #message .col-set .txt h5 {text-align: center;}
  .recruit.member main .panel-set.paging {display: flex; margin-bottom: 60px;}
  .recruit.member main .panel-set.paging .col1-4 {width: calc(50% - 7px);}
  
  .recruit.welfare main *:not(h2) + h3:not(.heading2) {margin-top: 60px;}

}

@media (hover: hover) and (pointer: fine) {
  .recruit main .panel-set.index a:hover .heading {
    color: #fff;
  }
  .recruit.member main .panel-set.paging a:hover .heading {
    color: #fff;
  }
}


/* =========================================================
 * contact index
========================================================= */
.contact main .col-set.index,
main .col-set.contact_index {
  width: 100%;
  margin: 0 0 40px;
  gap: 40px;
  overflow: hidden;
}
.contact main .col-set.index .col1-2,
main .col-set.contact_index .col1-2 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: calc(50% - 20px);
  margin: 0;
  padding: 5%;
  background: #f2f7fb;
}
.contact main .col-set.index .col1-2 > *:last-child,
main .col-set.contact_index .col1-2 > *:last-child {margin-bottom: 0 !important;}
.contact main .col-set.index .col1-2 .copy,
main .col-set.contact_index .col1-2 .copy {text-align: center;}
.contact main .btn-box a,
main .col-set.contact_index .btn-box a {margin: 0;}
.contact main .col-set.index .col1-2 .txt,
main .col-set.contact_index .col1-2 .txt {
  flex: 1 0 auto;
  line-height: 1.7;
}
@media screen and (max-width: 767px) {
  .contact main .col-set.index,
  main .col-set.contact_index {
    width: 100%;
    margin: 0 0 6vw;
    gap: 6vw;
  }
  .contact main .col-set.index .col1-2,
  main .col-set.contact_index .col1-2 {
    width: 100%;
    margin: 0;
  }
  .contact main .col-set.index .btn-box,
  main .col-set.contact_index .btn-box {width: 100%;}
}


/* =========================================================
 * その他
========================================================= */

/* ----- ページネーション ----- */
main .pagination {
  margin: 90px 0 25px;
}
main .pagination ul:not([class]) {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
  margin: 0;
  padding: 0;
}
main .pagination ul:not([class]) li {
  margin: 2px;
  padding: 0;
}
main .pagination ul:not([class]) li:before {
  content: none;
}
main .pagination a,
main .pagination span {
	position: relative;
	display: inline-block;
	min-width: 60px;
	height: 60px;
	padding: 0 5px;
  color: #005bac;
  font-size: 1.8rem;
	line-height: 60px;
	text-align: center;
  background: #f2f7fb;
	transition: background-color .2s linear, color .2s linear;
}
main .pagination .current > * {
	color: #fff;
  font-weight: bold;
	background-color: #005bac;
  pointer-events: none;
}
main .pagination .disabled {
	color: #ccc !important;
  pointer-events: none;
}
main .pagination .prev > * {padding: 0 0 0 26px; margin-right: 24px;}
main .pagination .next > * {padding: 0 26px 0 0; margin-left: 24px;}
main .pagination .prev > *,
main .pagination .next > * {
  color: #005bac;
  font-weight: bold;
  background-color: transparent;
}
main .pagination .prev > *:before,
main .pagination .next > *:before {
	content: "";
	position: absolute;
	display: block;
	width: 12px;
	height: 15px;
	top: calc(50% - 9px);
	background-image: url("../../images/common/icon_arrow_blue.svg");
	background-repeat: no-repeat;
	background-position: left top;
  background-size: auto 15px;
  transition: background-position 0.4s ease-in-out;
}
main .pagination .prev > *:before {
	left: 0;
	transform: scale(-1,1);
}
main .pagination .next > *:before {
	right: 0;
}
main .pagination .prev span,
main .pagination .next span {
  color: #ccc;
}
main .pagination .prev span:before,
main .pagination .next span:before {
	background-image: url("../../images/common/icon_arrow_lgray.svg");
}
main .search-box {
  margin-bottom: 40px;
}
main .search-input {
  display: flex;
}
main .search-box button {
  position: relative;
  width: 130px;
  color: #fff;
  font-weight: bold;
  line-height: 50px;
  background: #005bac;
  cursor: pointer;
  transition: background 0.4s ease-in-out;
}
main .search-box button:before {
  content: "\f002";
  display: inline-block;
  margin-right: 10px;
  font-size: 1.25em;
  font-family: "Font Awesome 5 Free";
}
main .search-box input[type="radio"] + label:last-child {
  margin-right: 25px;
}
main .search-result {
  padding: 35px 0 30px;
  margin: 0;
  background-image: linear-gradient(to right, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
  background-size: 4px 1px;
  background-repeat: repeat-x;
  background-position: left bottom;
}
main h3 + .search-result {
  padding-top: 0;
}
main .search-result > *:last-child {
  margin-bottom: 0;
}
main .search-comment {
  color: #4d4d4d;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  main .pagination a,
  main .pagination span {
    min-width: 40px;
    height: 40px;
    line-height: 40px;
  }
  main .pagination .page-num {
    font-size: 1.6rem;
  }
  main .search-box input[type="radio"] + label:first-of-type {
    margin-left: 0;
  }
  main .search-box + h3.heading1 {
    font-size: 2rem;
  }
}

@media (hover: hover) and (pointer: fine) {
  main .pagination a:hover {
    color: #fff;
    background-color: #005bac;
  }
  main .pagination .prev a:hover,
  main .pagination .next a:hover {
    color: #005bac;
    font-weight: bold;
    background-color: transparent;
  }
  main .pagination .prev a:hover:before,
  main .pagination .next a:hover:before {
    background-position: 2px top;
  }
  main .search-box button:hover {
    background: #002A4F;
  }
}


/*---------------------------------------------
	strength
  ---------------------------------------------*/
.strength main .kv {background-image: none;}
.strength main .kv .kv_inner {color: #005bac;}
.strength main .kv .kv_inner .ttl:after {border-left-color: #005bac;}
.strength main .kv .kv_inner .pankz {color: #000;}
.strength main .kv .kv_inner .pankz li a {color: rgba(0,0,0,.5);}
.strength main .kv .kv_inner .pankz li:not(:last-child):after {border-color: rgba(0,0,0,.5)}
.strength main .kv .kv_inner .copy {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  font-family: 'Noto Serif JP', serif;
  font-size: min(5.5vw,4.2rem);
  font-weight: 900;
  line-height: 1.6;
  text-align: center;
}
.strength main .kv .kv_inner .copy span {
  opacity: 0;
  animation: fade-in 1.5s .5s ease-out forwards;
}
.strength main .kv .kv_inner .copy:before,
.strength main .kv .kv_inner .copy:after {
  display: inline-block;
  padding: 0 10px;
  font-size: 1.6em;
  line-height: 1;
  vertical-align: top;
}
.strength main .kv .kv_inner .copy:before {
  content: "“";
}
.strength main .kv .kv_inner .copy:after {
  content: "”";
}
.strength main .contents_area {
  max-width: initial;
  max-width: none;
  padding: 0;
  margin-bottom: 0;
}
.strength main .contents_area .unit {
  padding: 0 0 12vw 0;
}
.strength main .contents_area .title {
  position: relative;
  height: 730px;
  margin-bottom: 100px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.strength main .contents_area .title:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: calc(100% + 100px);
  background-color: #f2f7fb;
}
.strength main .contents_area .title.active:after {
  transition: transform .5s .1s cubic-bezier(0,0.3,0.3,1);
  transform: translateX(100%);
}
.strength main .contents_area #strength01 .title {
  background-image: url("../../images/strength/img_title01.jpg");
}
.strength main .contents_area #strength02 .title {
  background-image: url("../../images/strength/img_title02.jpg");
}
.strength main .contents_area #strength03 .title {
  background-image: url("../../images/strength/img_title03.jpg");
}
.strength main .contents_area .title h2 {
  position: absolute;
  left: 0;
  bottom: -100px;
  margin: 0;
  padding: 80px 160px 66px 150px;
  color: #fff;
  font-family: 'Noto Serif JP', serif;
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1.47;
  text-align: left;
  background-position: right center;
  background-repeat: no-repeat;
  background-size: cover;
}
.strength main .contents_area .title h2:after {
  content: none;
}
.strength main .contents_area #strength01 .title h2 {
  background-image: url("../../images/strength/bg_title01.png");
}
.strength main .contents_area #strength02 .title h2 {
  left: auto;
  right: 0;
  text-align: right;
  background-image: url("../../images/strength/bg_title02.png");
  background-position: left center;
}
.strength main .contents_area #strength03 .title h2 {
  background-image: url("../../images/strength/bg_title03.png");
}
.strength main .contents_area .title h2 span {
  position: relative;
  display: block;
  opacity: 0;
  transform: translateY(50px);
}
.strength main .contents_area .title h2.active span {
  opacity: 1;
  transform: translateY(0);
  transition: all .5s .2s ease;
}
.strength main .contents_area .title h2:before {
  position: absolute;
  left: 140px;
  top: -.75em;
  font-family: 'Crimson Text', serif;
  font-size: 3.57em !important;
  font-style: italic;
  font-weight: 600;
  opacity: 0;
  transform: translateY(50px);
}
.strength main .contents_area .title h2.active:before {
  opacity: 1;
  transform: translateY(0);
  transition: all .5s .1s ease;
}
.strength main .contents_area #strength01 .title h2:before {content: "01";}
.strength main .contents_area #strength02 .title h2:before {
  content: "02";
  left: auto;
  right: 150px;
}
.strength main .contents_area #strength03 .title h2:before {content: "03";}
.strength main .contents_area .txt {
  max-width: 720px;
  margin: 0 auto;
  padding: 6vw 0 0 0 !important;
  font-size: 1.6rem !important;
}
.strength main .contents_area .txt p {margin-bottom: 2em;}
.strength main .contents_area .img {text-align: center;}
@media screen and (max-width: 1300px) {
  .strength main .contents_area .title {
    height: 56vw;
    margin: 0 -5vw 8vw -5vw;
  }
  .strength main .contents_area .title:after {
    height: calc(100% + 8vw);
  }
  .strength main .contents_area .txt {font-size: 1.5rem;}
  .strength main .contents_area .title h2 {
    bottom: -8vw;
    padding: 6vw 12vw 6vw 11.5vw;
    font-size: 3.2vw;
  }
  .strength main .contents_area .title h2:before {
    left: 10vw;
    font-size: 3.57em;
  }
  .strength main .contents_area #strength02 .title h2:before {
    right: 10vw;
  }
}
@media screen and (max-width: 767px) {
  .strength main .contents_area .title h2 {
    bottom: unset;
    top: 40vw;
    padding: 6vw 11vw 6vw 5vw;
    font-size: 4.5vw;
  }
  .strength main .contents_area .title h2:before {
    left: 5vw;
    font-size: 2.5em;
  }
  .strength main .contents_area #strength02 .title h2 {
    padding: 6vw 5vw 6vw 11vw !important;
  }
  .strength main .contents_area #strength02 .title h2:before {
    right: 5vw;
  }
  .strength main .contents_area #strength03 .title {
    margin-bottom: calc(8vw + 6.6vw);
  }
}


/*---------------------------------------------
	IR
  ---------------------------------------------*/
main .category-links {
  margin: 80px 0 60px;
}
main .category-links ul {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
}
main .category-links ul li {
  width: 25%;
  height: 70px;
  margin: 0 !important;
  padding: 0;
  background-color: #f6f6f6;
}
main .category-links ul li:before {
  left: 0;
  top: 0;
  width: 100%;
  height: 1px;
  border-radius: 0;
  background-color: transparent;
  background-image: linear-gradient(to right, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
  background-repeat: repeat-x;
  background-position: left top;
  background-size: 4px 1px;
}
main .category-links ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0 20px;
  font-weight: bold;
  line-height: 1.2;
}
main .category-links ul li.current a {
  color: #005bac;
  pointer-events: none;
}
main .category-links ul li a span {
  display: inline-block;
  padding: 7px 20px 7px 0;
  background: url("../../images/common/icon_arrow_blue.svg") no-repeat right 2px center;
  transition: background-position 0.4s ease-in-out;
}

main .category-links-icon-style {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
main .category-links-icon-style.dir-center {
  justify-content: center;
}
main .category-links-icon-style li {
  display: flex;
  flex-direction: column;
  width: calc(33.333% - 14px);
  padding: 0;
}
main .category-links-icon-style li:before {
  content: none;
}
main .category-links-icon-style a {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  padding: 30px 10px 25px 10px;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.4;
  text-align: center;
  box-shadow: 0 0 0 1px #d2d5d8 inset;
  transition: all 0.4s ease-in-out;
}
main .category-links-icon-style li.current a {
  color: #005bac;
  pointer-events: none;
}
main .category-links-icon-style a > *:last-child {
  margin-bottom: 0;
}
main .category-links-icon-style .sub_text {
  margin-bottom: 0;
  font-size: 1.5rem;
  font-weight: normal;
  line-height: 1.86;
}
main .category-links-icon-style.horizontal {
  margin-top: 50px;
}
main .category-links-icon-style.horizontal li {
  width: calc(50% - 10px);
}
main .category-links-icon-style.horizontal a {
  flex-direction: row;
  height: 100%;
  padding: 20px 50px;
  text-align: left;
}
main .category-links-icon-style.horizontal a > .img {
  width: 30%;
  max-width: 100px;
  margin-bottom: 0;
}
main .category-links-icon-style.horizontal a > *:not(.img) {
  flex: 1;
  padding-left: min(4vw,24px);
}
main .category-links-icon-style.horizontal a .text_block {
  padding-top: 30px;
  padding-bottom: 30px;
}

main .col-set.category-links-index {
  margin-top: 90px;
  gap: 70px 32px;
}
main .category-links-index .category-link a {
  color: #333;
  line-height: 1.8;
}
main .category-links-index .category-link h3 {
  display: flex;
  align-items: center;
  margin: 30px 0 0;
  color: #005bac;
}
main .category-links-index .category-link h3:after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-left: 16px;
  background: #005bac url(../../images/common/icon_arrow.svg) no-repeat center;
  background-size: auto 8px;
  border-radius: 100%;
  transition: background-position 0.2s ease-in-out;
  flex-shrink: 0;
}
main .category-links-index .category-link p {
  margin: 16px 0 0;
}
main .category-links-index .link-sub {
  margin-top: 8px;
}

.ir.corporate-detail main .category-links-icon-style.horizontal {
  margin: 80px 0 0;
  background-image: linear-gradient(to right, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
  background-repeat: repeat-x;
  background-position: left top;
  background-size: 4px 1px;
}
.ir.corporate-detail main .category-links-icon-style.horizontal li {
  width: 25%;
  height: 95px;
  margin: 0;
  padding: 0;
  align-items: center;
  justify-content: center;
}
.ir.corporate-detail main .category-links-icon-style.horizontal li a {
  padding: 20px 0;
  font-size: 1.4rem;
  font-weight: normal;
  box-shadow: none;
}
.ir.corporate-detail main .category-links-icon-style.horizontal .heading {
  width: auto;
  padding: 0 20px 0 0;
  background: url("../../images/common/icon_arrow_blue.svg") no-repeat right 2px center;
  transition: background-position 0.4s ease-in-out;
}
.ir.corporate-detail main .category-links-icon-style.horizontal .img {
  display: none;
}

.ir.corporate-detail main .category-links li.current a,
.ir.corporate-detail main .category-links-icon-style.horizontal li.current a {
  color: #dcdcdc;
}
.ir.corporate-detail main .category-links ul li.current a span,
.ir.corporate-detail main .category-links-icon-style.horizontal li.current .heading {
  background-image: url("../../images/common/icon_arrow_lgray.svg");
}
.ir.corporate-detail main .category-links-icon-style.horizontal + .category-links li.current a {
  pointer-events: all;
}
.ir.corporate-detail main .category-links-icon-style.horizontal li.disabled .heading {
  background-image: url("../../images/common/icon_arrow_lgray.svg");
}
.ir:not(.corporate-detail) main .category-links-icon-style.horizontal li.disabled a {
  color: #000;
  opacity: 0.5;
}
main .category-links-icon-style li.disabled a {
  color: #dcdcdc;
  pointer-events: none;
}
main .category-links-widen {
  position: relative;
  margin: 50px 0 0;
  padding: 50px 0;
}
main .category-links-widen:last-child {
  margin-bottom: -90px;
}
main .category-links-widen:before {
  content: "";
  position: absolute;
  left: calc(50% - 50vw);
  top: 0;
  width: 100vw;
  height: 100%;
  background: #f2f7fb;
  z-index: -1;
}
main .category-links-widen ul {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
main .category-links-widen ul li {
  width: calc(25% - 12px);
  margin: 0 !important;
  padding: 0;
}
main .category-links-widen ul li:before {
  content: none;
}
main .category-links-widen ul li.current {
  font-weight: bold;
}
main .category-links-widen ul li.current a {
  pointer-events: none;
}
main .category-links-widen a {
  display: inline-block;
  padding-right: 20px;
  color: #005bac;
  line-height: 1.5;
  background: url("../../images/common/icon_arrow_blue.svg") no-repeat right 5px center;
  transition: background-position 0.4s ease-in-out;
}
main .category-links-widen h3 {
  margin-bottom: 24px;
}
main .category-links-widen h3 a {
  padding-right: 32px;
  background-size: auto 16px;
}
main .category-links-widen a span {
  border-bottom: 1px solid transparent;
  transition: all 0.4s ease-in-out;
}
main .category-links-frame {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
main .category-links-frame li {
  width: calc(33.333% - 14px);
  margin: 0;
  padding: 0;
}
main .category-links-frame li:before {
  content: none;
}
main .category-links-frame a {
  display: flex;
  align-items: center;
  justify-content: center;  
  position: relative;
  height: 100%;
  min-height: 96px;
  padding: 16px;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.4;
  box-shadow: 0 0 0 1px #d2d5d8 inset;
  transition: all 0.4s ease-in-out;
}
main .category-links-frame a:after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-left: 16px;
  background: #005bac url(../../images/common/icon_arrow.svg) no-repeat center;
  background-size: auto 8px;
  border-radius: 100%;
  transition: background-position 0.4s ease-in-out;
}
main .category-links-frame a span {
  flex: 1;
}

dl.news-list dd.new:after,
li.new:after {
  content: "NEW";
  display: inline-block;
  width: 48px;
  height: 20px;
  margin: 0 0 3px 10px;
  color: #fff;
  font-size: 1.2rem;
  line-height: 20px;
  text-align: center;
  vertical-align: middle;
  background-color: #de626a;
}
.ir main .news_inner .box:last-of-type {
  background: none;
}

main #ir-latest-docs {
  display: flex;
  align-items: center;
  min-height: 270px;
  padding: 40px 0;
  background: #f2f7fb url("../../images/ir/bg_related_doc.jpg") no-repeat right center;
  background-size: auto 100%;
}
main #ir-latest-docs .inner {
  display: flex;
  flex-direction: column;
}
main #ir-latest-docs h2 {
  margin-bottom: 20px;
}
main #ir-latest-docs ul {
  max-width: 80%;
  margin-bottom: 0;
}
main #ir-latest-docs li {
  display: inline-block;
  margin: 5px 20px 5px 0;
}
main #ir-latest-docs li .note {
  color: #999;
  font-size: 1.3rem;
}

main .ir-top-video .embed-video {
  max-width: 640px;
  margin: 40px auto 0;
}

main .ir-latest-download {
  padding: 32px 40px;
  background-color: #f2f7fb;;
}
main .ir-latest-download .head-set {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}
main .ir-latest-download .head-set > * {
  margin: 0 0 24px;
}
main .ir-latest-download .head-set h2 {
  padding: 0;
  color: inherit;
  font-size: 2rem;
}
main .ir-latest-download .head-set h2:after {
  content: none;
}
main .ir-latest-download .head-set .btn-box a {
  width: 100%;
  min-width: 250px;
  height: 40px;
  margin: 0;
  font-size: 1.4rem;
}
main .ir-latest-download .list-latest {
  margin: -16px 0; 
}
main .ir-latest-download .list-latest li {
  position: relative;
  padding: 16px 10px 16px 142px;
  line-height: 1.5;
}
main .ir-latest-download .list-latest li:not(:last-of-type) {
  background-image: linear-gradient(to right, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
  background-size: 4px 1px;
  background-repeat: repeat-x;
  background-position: left bottom;
}
main .ir-latest-download .list-latest .label {
  position: absolute;
  display: inline-block;
  left: 10px;
  top: 18px;
  width: 124px;
  padding: 2px 10px 3px;
  font-size: 1.2rem;
  line-height: 1.25;
  text-align: center;
  background-color: #dedede;;
}
main .ir-latest-download .list-latest .date {
  font-size: 1.4rem;
}
main .ir-latest-download .list-latest li a.link-icon {
  flex: 1;
}
main .ir-latest-download .list-latest li a.link-icon:not(:hover) {
  color: inherit;
}

.ir main .btns_back {
  margin-top: 100px;
}
.ir main table.ir-data th,
.ir main table.ir-data td {
  padding: 15px 40px;
}

@media screen and (min-width: 768px) {
  main .category-links ul li:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 100%;
    background-image: linear-gradient(to bottom, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
    background-repeat: repeat-y;
    background-position: right top;
    background-size: 1px 4px;
  }
  main .category-links ul li:nth-of-type(-n+4):before,
  main .category-links ul li:nth-of-type(4n):after,
  main .category-links ul li:last-of-type:after {
    content: none;
  }
  main .category-links ul li:nth-of-type(-n+4):after {
    top: 20px;
    height: calc(100% - 20px);
  }
  main .category-links ul li:nth-of-type(4n+1):before {
    left: 20px;
    width: calc(100% - 20px);
  }
  main .category-links ul li:nth-of-type(4n):before {
    width: calc(100% - 20px);
  }
  main .category-links ul li:nth-of-type(4n+1):nth-last-of-type(2):after,
  main .category-links ul li:nth-of-type(4n+1):nth-last-of-type(3):after,
  main .category-links ul li:nth-of-type(4n+1):nth-last-of-type(4):after {
    height: calc(100% - 20px);
  }
  main .category-links ul li:nth-of-type(4n+2):nth-last-of-type(2):after,
  main .category-links ul li:nth-of-type(4n+2):nth-last-of-type(3):after {
    height: calc(100% - 20px);
  }
  main .category-links ul li:nth-of-type(4n+3):nth-last-of-type(2):after {
    height: calc(100% - 20px);
  }
  main .category-links-icon-style.horizontal li.col2-3 {
    width: calc(66.667% - 20px);
  }
  main .col-set.category-links-index .col1-2 {
    width: calc(50% - 16px);
  }
  .ir.corporate-detail main .category-links-icon-style.horizontal li {
    background-image: linear-gradient(to right, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
    background-repeat: repeat-x;
    background-position: left bottom;
    background-size: 4px 1px;
  }
}

@media screen and (max-width: 1040px) {
  main .category-links-icon-style.horizontal a {
    padding: 2vw 4vw;
    font-size: 1.8vw;
  }
}

@media screen and (max-width: 767px) {
  main .category-links {
    margin: 40px 0 30px;
    padding: 0 20px;
    background-color: #f6f6f6;
  }
  main .category-links ul li {
    width: 100%;
    height: 60px;
  }
  main .category-links ul li:first-of-type:before {
    content: none;
  }
  main .category-links ul li a {
    justify-content: flex-start;
    padding: 0 10px;
  }
  main .category-links ul li a span {
    display: block;
    width: 100%;
    background-size: auto 16px;
  }
  
  main .category-links-icon-style li {
    width: calc(50% - 10px);
  }
  main .category-links-icon-style a {
    padding: 20px 10px 10px 10px;
    font-size: min(3.5vw,1.5rem);
  }
  /*main .category-links-icon-style .sub_text {
    font-size: 1.3rem;
  }*/
  main .category-links-icon-style.horizontal {
    margin-top: 30px;
  }
  main .category-links-icon-style.horizontal li {
    width: 100%;
  }
  main .category-links-icon-style.horizontal a {
    padding: 10px 20px;
    font-size: 1.5rem;
  }
  main .category-links-icon-style.horizontal a .text_block {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  main .col-set.category-links-index {
    margin-top: 60px;
    gap: 40px;
  }
  main .col-set.category-links-index .col1-2 {
    width: 100%;
  }
  main .category-links-index .category-link h3 {
    margin-top: 24px;
  }

  main .category-links-widen {
    margin-top: 50px;
    padding: 50px 20px;
  }
  main .category-links-widen ul li {
    width: calc(50% - 12px);
  }
  
  main .category-links-frame li {
    width: calc(50% - 10px);
  }
  main .category-links-frame a {
    font-size: 1.5rem;
  }
  main .category-links-frame a:after {
    margin-left: 0;
  }
  main .category-links-frame a > span {
    flex: 1;
  }
  
  .ir.corporate-detail main .category-links-icon-style + .category-links {
    margin-top: 50px;
  }
  .ir.corporate-detail main .category-links-icon-style.horizontal {
    margin-top: 60px;
    display: block;
  }
  .ir.corporate-detail main .category-links-icon-style.horizontal li {
    display: block;
    width: auto;
    height: auto;
    padding: 0 20px;
  }
  .ir.corporate-detail main .category-links-icon-style.horizontal li:last-child,
  .ir.corporate-detail main .category-links-icon-style.horizontal li:not(:last-child) a {
    background-image: linear-gradient(to right, #abb3c0, #abb3c0 1px, transparent 1px, transparent 4px);
    background-repeat: repeat-x;
    background-position: left bottom;
    background-size: 4px 1px;
  }
  .ir.corporate-detail main .category-links-icon-style.horizontal li a {
    display: block;
    padding: 20px 10px;
    font-size: 1.5rem;
  }
  
  main #ir-latest-docs {
    height: 270px;
    padding: 20px 0;
    background-position-x: 70%;
  }
  main #ir-latest-docs h2 {
    margin-bottom: 10px;
  }
  main #ir-latest-docs ul {
    max-width: none;
  }
  main #ir-latest-docs li {
    display: block;
    margin-right: 0;
  }
  
  main .ir-top-video .embed-video {
    margin-top: 30px;
  }
  main .ir-latest-download {
    padding: 30px 20px;
  }
  main .ir-latest-download .head-set {
    flex-direction: column;
    align-items: flex-start;
  }
  main .ir-latest-download .head-set .btn-box {
    align-self: center;
  }
  main .ir-latest-download .list-latest {
  }
  main .ir-latest-download .list-latest li {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding-left: 10px;
  }
  main .ir-latest-download .list-latest .label {
    position: unset;
  }
  .ir main .btns_back {
    margin-top: 50px;
  }
  .ir main table.ir-data th,
  .ir main table.ir-data td {
    padding: 10px 20px;
  }
}

/*@media screen and (min-width: 481px) and (max-width: 767px) {
  main .category-links ul li:nth-last-of-type(-n+2) {
    background-image: none;
  }
  main .category-links ul li:nth-of-type(2n) a {
    background-image: none;
  }
}*/

@media (hover: hover) and (pointer: fine) {
  main .category-links ul li a:hover span {
    background-position: right center;
  }
  main .category-links-icon-style a:hover {
    box-shadow: 0 0 0 2px #005bac inset;
  }
  main .category-links-icon-style a:hover img {
    transform: scale(1,1);
  }
  main .category-links-index .category-link a:hover {
    color: inherit;
  }
  main .category-links-index .category-link a:hover h3:after {
    background-position-x: 11px;
  }
  .ir.corporate-detail main .category-links-icon-style.horizontal li a:hover .heading {
    background-position: right center;
  }
  main .category-links-widen a:hover {
    background-position-x: right;
  }
  main .category-links-widen a:hover span {
    border-bottom-color: #005bac;
  }
  main .category-links-frame a:hover {
    box-shadow: 0 0 0 2px #005bac inset;
  }
}



/*---------------------------------------------
	加盟店様はこちら 2023/04
  ---------------------------------------------*/
main .category-links-icon-style.is-entrance-faq a {
  padding-top: 20px;
  padding-bottom: 15px;
}
main .category-links-icon-style.is-entrance-faq .img {
  margin-bottom: 10px;
}
main .category-links-icon-style.is-entrance-faq .heading {
  display: flex;
  height: 2.8em;
  align-items: center;
  justify-content: center;
}

@media screen and (min-width: 768px) {
  main .category-links-icon-style.is-entrance-faq li {
    width: calc(25% - 15px);
  }
}

@media screen and (max-width: 767px) {
  main .category-links-icon-style.is-entrance-faq .img img {
    width: 64px;
  }
}
.entrance main .search-result {
  margin-top: 45px;
  padding: 0;
  border: none;
}
.entrance main .contents_area > p:first-child + h2 {
  margin-top: 0;
}


/*---------------------------------------------
	サステナビリティ 2023/04
  ---------------------------------------------*/
.sustainability main .kv {
  background-image: url(../../images/sustainability/kv.jpg);
}
.sustainability.environment main .kv {
  background-image: url(../../images/sustainability/environment/kv.jpg);
}
.sustainability.governance main .kv {
  background-image: url(../../images/sustainability/governance/kv.jpg);
}
.sustainability.social main .kv {
  background-image: url(../../images/sustainability/social/kv.jpg);
}

main .link-block-assurance {
  display: flex;
  justify-content: space-between;
  max-width: 500px;
  margin: 0 auto;
}
main .link-block-assurance .img {
  width: 175px;
  margin-right: 32px;
}
main .link-block-assurance .text_block {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
}
main .link-block-assurance .text_block .btns_next {
  margin-top: auto;
}

@media screen and (max-width: 1100px) {
  .sustainability main .kv {
    background-image: url(../../images/sustainability/kv_sp.jpg);
  }
}

@media screen and (min-width: 768px) {
  main .category-links-icon-style.is-sustainability-index {
    justify-content: center;
    margin-right: 0;
    margin-top: 60px;
  }
  main .category-links-icon-style.is-sustainability-index li {
    width: 100%;
    max-width: 660px;
    margin-right: 0;
  }
  main .category-links-icon-style.is-sustainability-index li a {
    padding-left: 36px;
  }
}

@media screen and (max-width: 767px) {
  main .link-block-assurance {
    flex-direction: column;
    align-items: center;
    max-width: unset;
  }
  main .link-block-assurance .img {
    margin-right: 0;
  }
  .sustainability.message main h2 {
    font-size: 1.9rem;
  }
}


/* =========================================================
 * english
========================================================= */
html[lang="en"] header .head_box .head_box_c .head_nav .main_nav li a {
  letter-spacing: normal;
}
html[lang="en"] footer .menu_box .menu_unit p:not(:first-of-type) {
  margin-top: 30px;
}
html[lang="en"] .home main #service:before {
  height: 100%;
  background: #15437e url("../../images/en/top/bg_service_pc2.jpg") no-repeat center bottom;
  background-size: cover;
}
html[lang="en"] .home main .info .inner {
  max-width: 1040px;
}
html[lang="en"] main dl.value-set dt {
  width: 270px;
}
html[lang="en"] main dl.value-set dd {
  width: calc(100% - 270px);
}
html[lang="en"] main .ir-latest-download .list-latest li {
  padding-left: 10px;
}
html[lang="en"] main .ir-latest-download .list-latest .label {
  width: auto;
}

@media screen and (min-width: 768px) {
  html[lang="en"] .home main .info {
    padding: 100px 0;
  }
  html[lang="en"] .home main .info .panel-set li {
    width: calc(33.333% - 20px);
  }
  html[lang="en"] .home main .info:before {
    top: 340px;
    height: calc(100% - 340px);
}
  html[lang="en"] .home main .info .panel-set h2 span {
    font-size: min(3.5vw,3.8rem);
  }
  html[lang="en"] main .ir-latest-download .list-latest li {
    padding-top: 44px;
  }
}
@media screen and (max-width: 767px){
  html[lang="en"] .home #top_main .strength a {
    height: 64px;
  }
  html[lang="en"] .home main #service {
    padding-bottom: 80px;
  }
  html[lang="en"] .home main #service:before {
    background-image: url("../../images/en/top/bg_service_sp2.jpg");
    background-size: 100% auto;
  }
  html[lang="en"] main dl.value-set dt {
    width: 120px;
  }
  html[lang="en"] main dl.value-set dt:after {
    content: none;
  }
  html[lang="en"] main dl.value-set dd {
    width: calc(100% - 120px);
  }
  html[lang="en"] main .news_inner .box dl {
    display: block;
  }
  html[lang="en"] main .news_inner .box dl dt {
    margin: 0 0 8px;
  }
  html[lang="en"] .strength main .contents_area #strength01 .title {
    margin-bottom: calc(8vw + 6.6vw);
  }
  html[lang="en"] .strength main .contents_area #strength03 .title {
    margin-bottom: calc(8vw + 13.2vw);
  }
}


/* =========================================================
 * update top pickup 2024/05/
========================================================= */
/*main .list-pickup {
  display: none;
}*/
main .slider2 + .list-pickup {
  margin-top: 80px;
}
main .list-pickup .list-pickup-elem {
  display: flex;
  flex-wrap: wrap;
}
main .list-pickup .list-pickup-elem > li {
  display: flex;
  flex-direction: column;
  width: 100%;
}
main .list-pickup .list-pickup-elem > li.item-img a {
  display: flex;
  flex-direction: column;
  height: 100%;
}
main .list-pickup .modal-video:before,
main .list-pickup .modal-video:after {
  content: none;
}
main .list-pickup .list-pickup_img {
  aspect-ratio: 16 / 9;
  background-color: #231815;
}
main .list-pickup .list-pickup_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
main .list-pickup .modal-video .list-pickup_img:before,
main .list-pickup .modal-video .list-pickup_img:after {
  content: "";
  display: block;
  position: absolute;
  box-sizing: border-box;
  z-index: 2;
}
main .list-pickup .modal-video .list-pickup_img:before {
  left: calc(50% - 25px);
  top: calc(50% - 25px);
  width: 50px;
  height: 50px;
  border: 2px solid #fff;
  border-radius: 100%;
  transition: border-color 0.4s ease-in-out;
}
main .list-pickup .modal-video .list-pickup_img:after {
  left: calc(50% - 16px);
  top: calc(50% - 16px);
  width: 32px;
  height: 32px;
  background-color: #ffffff;
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M12 10.0714C12 9.87245 12.0529 9.67741 12.1527 9.50815C12.2526 9.33889 12.3955 9.2021 12.5654 9.11311C12.7352 9.02413 12.9254 8.98646 13.1146 9.00433C13.3037 9.0222 13.4844 9.0949 13.6364 9.21429L21.8182 15.6429C21.9452 15.7427 22.0483 15.8721 22.1193 16.0208C22.1903 16.1696 22.2273 16.3337 22.2273 16.5C22.2273 16.6663 22.1903 16.8304 22.1193 16.9792C22.0483 17.1279 21.9452 17.2573 21.8182 17.3571L13.6364 23.7857C13.4844 23.9051 13.3037 23.9778 13.1146 23.9957C12.9254 24.0135 12.7352 23.9759 12.5654 23.8869C12.3955 23.7979 12.2526 23.6611 12.1527 23.4919C12.0529 23.3226 12 23.1275 12 22.9286V10.0714Z" /></svg>');
  background-repeat: no-repeat;
  background-position: center;
  transition: background-color 0.4s ease-in-out;
}
main .list-pickup .modal-video .list-pickup_img img {
  opacity: 0.8;
}
main .list-pickup .list-pickup_body {
  margin: 8px 0 10px;
}
main .list-pickup .list-pickup_title {
  margin: 0;
  color: #000;
  font-size: 1.8rem;
  font-weight: 900;
  line-height: 1.6;
  letter-spacing: 0.03em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  transition: color 0.4s ease-in-out;
}
main .list-pickup .btns_next {
  margin: auto 1px 1px 0;
  font-weight: 500;
}

@media screen and (min-width: 768px) {
  main .list-pickup .list-pickup-elem {
    margin: 0 -11px;
  }
  main .list-pickup .list-pickup-elem li {
    padding: 0 11px;
  }
  main .list-pickup .list-pickup-elem.list-col1 {
    max-width: 750px;
    margin: 0 auto;
  }
  main .list-pickup .list-pickup-elem.list-col1 li {
    padding: 0;
  }
  main .list-pickup .list-pickup-elem.list-col2 > li {
    width: 50%;
  }
  main .list-pickup .list-pickup-elem.list-col > li,
  main .list-pickup .list-pickup-elem.list-col3 > li {
    width: calc(1 / 3 * 100%);
  }
}

@media screen and (max-width: 767px) {
  main .slider2 + .list-pickup {
    margin-top: 65px;
  }
  main .list-pickup .list-pickup-elem {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
  .js-pickup-slide .slick-dots li {
    width: calc(1 / 6 * 100% - 4px);
    max-width: 60px;
  }
  .js-pickup-slide .slick-dots li button,
  .js-pickup-slide .slick-dots li button:before {
    width: 100%;
  }
}

@media (hover: hover) and (pointer: fine) {
  main .list-pickup a.modal-video:hover .list-pickup_img:before {
    border-color: #005BAC;
  }
  main .list-pickup  a.modal-video:hover .list-pickup_img:after {
    background-color: #005BAC;
  }
  main .list-pickup a:hover .list-pickup_title {
    color: #005BAC;
  }
}


/* =========================================================
 * update service 2024/07/
========================================================= */
/* ----- sort tab ----- */

main .sorttabs.is-service {
  gap: 10px;
  border-bottom-color: #005bac;
}
main .sorttabs.is-service li {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  color: #fff;
  font-size: min(1.5vw,1.8rem);
  font-weight: 900;
  line-height: 1.5;
  background: #005bac;
  border: 1px solid #005bac;
  border-bottom: transparent;
}
main .sorttabs.is-service li.active {
  background: #fff;
  color: #005bac;
  box-shadow: none;
}
main .sorttabs.is-service li.active:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 1px;
  background-color: #fff;
}

main .sorttabs li:has(a) {
  cursor: auto;
}
main .sorttabs li a {
  color: inherit;
  transition: none;
}
main .sorttabs li a:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}

@media screen and (max-width: 767px) {
  main .sorttabs.is-service {
    gap: 1px;
  }
  main .sorttabs.is-service li {
    height: 50px;
    font-size: 1.1rem;
    line-height: 1.2;
  }
}

@media (hover: hover) and (pointer: fine) {
  main .sorttabs.is-service li:hover {
    color: #005bac;
    background-color: #fff;
  }
}

/* ----- detail circle ----- */
.service main .detail-set.is-a920 {
  padding: 49px 30px 0 34px;
}
.service main .detail-set.is-a920 .img:after {
  background-image: url("../../images/service/a920_detail_line.png");
}
.service main .detail-set.is-a920 .bubble:nth-of-type(2) {
  right: 0;
  top: calc(38.5% - 60px);
}
.service main .detail-set.is-a920 .bubble:nth-of-type(3) {
  right: calc(24.8% - 60px);
  bottom: 16px;
}
.service main .detail-set.is-a920 .bubble:nth-of-type(4) {
  left: calc(25% - 60px);
  bottom: 16px;
}
.service main .detail-set.is-a920 .bubble:nth-of-type(5) {
  left: 0;
  bottom: unset;
  top: calc(38.5% - 60px);
}

@media screen and (max-width: 767px) {
  .service main .detail-set.is-a920 {
    padding: 4vw 5vw 1vw;
  }
  .service main .detail-set.is-a920 .bubble:nth-of-type(2) {
    top: calc(38.5% - 9vw);
  }
  .service main .detail-set.is-a920 .bubble:nth-of-type(3) {
    right: calc(24.8% - 9vw);
    bottom: 0;
  }
  .service main .detail-set.is-a920 .bubble:nth-of-type(4) {
    left: calc(25% - 9vw);
    bottom: 0;
  }
  .service main .detail-set.is-a920 .bubble:nth-of-type(5) {
    top: calc(38.5% - 9vw);
  }
}


/* ----- officepay ----- */
main .panel-set.officepay-case {
  justify-content: flex-start;
}
main .panel-set.officepay-case a .img {
  aspect-ratio: 20 / 11;
}
main .panel-set.officepay-case a .company-name {
  margin: 0;
  font-size: 1.3rem;
  font-weight: bold;
  line-height: 1.6;
}
main .panel-set.officepay-case a .heading {
  font-size: 1.8rem;
  font-weight: bold;
}
main .panel-set.officepay-case a .company-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 0;
  margin: 20px 0 0;
  font-size: 1.3rem;
  line-height: 1.2;
}
main .panel-set.officepay-case a .company-meta dt {
  width: 6em;
  font-weight: bold;
}
main .panel-set.officepay-case a .company-meta dd {
  width: calc(100% - 6em);
}

@media screen and (min-width: 768px) {
  .officepay main .step-set .col-set .step {
    height: 200px;
  }
  .service main .link-product .img:has(.img-officepay) {
    width: 120px;
    padding-top: 0;
    padding-bottom: 0;
    align-self: center;
    box-sizing: content-box;
  }
}

@media screen and (max-width: 767px) {
  main .panel-set.officepay-case a .company-name {
    margin-bottom: 8px;
  }
  .service main .link-product .img figure.img-officepay {
    aspect-ratio: auto;
  }
  .service main .link-product .img:has(.img-officepay) img {
    width: 183px;
    margin-inline: auto;
  }
}


/*---------------------------------------------
	外部認証・評価 2024/07
  ---------------------------------------------*/
.certification-evaluation main .kv.level2 {
  background-image: url(../../images/certification-evaluation/kv.jpg);
  background-position: right top;
}
.certification-evaluation main .kv {
  background-image: url(../../images/certification-evaluation/kv_pci.jpg);
}

main .list-certif {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
main .list-certif .item {
  display: flex;
  align-items: flex-start;
  gap: 30px min(3.9vw,52px);
}
main .list-certif .item .certif-img {
  width: 24.5%;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  padding: 0;
  text-align: center;
  border: 1px solid #DEDEDE;
}
main .list-certif .item .certif-img figure {
  width: 77%;
  height: 87.5%;
}
main .list-certif .item .certif-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  
}
main .list-certif .item .certif-body {
  flex: 1;
}
main .list-certif .item .certif-body > *:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 1100px) {
  .certification-evaluation main .kv.level2 {
    background-image: url("../../images/certification-evaluation/kv_sp.jpg");
  }
  .certification-evaluation main .kv {
    background-image: url("../../images/certification-evaluation/kv_pci_sp.jpg");
  }
  main .list-certif .item {
    flex-wrap: wrap;
  }
  main .list-certif .item .certif-img {
    width: 100%;
    aspect-ratio: 2;
  }
  main .list-certif .item .certif-img figure {
    width: 69%;
    height: 90%;
  }
  main .list-certif h3.heading1 {
    margin-bottom: 20px;
    font-size: 2rem;
  }
}

/*---------------------------------------------
	SNSボタン 2025/11
  ---------------------------------------------*/
.btn-copy {
	display: block;
	width: inherit;
	height: inherit;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	cursor: pointer;
}

.footer-sns {
	display: flex;
	gap: 0 16px;
	justify-content: center;
	padding: 40px 0 0;
	text-align: center;
}
.footer-sns-item {
	width: 32px;
	height: 32px;
}
.footer-sns-item a {
	display: block;
}
.footer-sns-item img {
	width: 100%;
	height: 100%;
}
.footer-sns-item.is-title {
	display: flex;
	align-items: center;
	justify-content: center;
	width:50px;
	font-size: 1.6rem;
	color: #fff;
	font-weight: bold;
	white-space: nowrap;
}

.release_area .news-share {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0 40px;
	width: 100%;
	margin: 0 0 16px;
	padding: 0;
}
.release_area .news-share .share-wrapper {
	align-items: center;
	display: flex;
	line-height: 1;
	white-space: nowrap;
}
.release_area .news-share .list-sns {
	align-items: center;
	display: flex;
	gap: 0 10px;
	justify-content: flex-end;
}
.release_area .news-share .list-sns-item {
	width: 20px;
	height: 20px;
}
.release_area .news-share .list-sns-item a {
	display: block;
}
.release_area .news-share .list-sns-item img {
	width: 100%;
	height: 100%;
}
.release_area .news-share .list-sns-item.is-title {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	font-size: 1.6rem;
	color: #fff;
	font-weight: bold;
	white-space: nowrap;
}
@media (hover: hover) and (pointer: fine) {
	.footer-sns-item a:hover {
		opacity: 1;
	}
}

/*---------------------------------------------
	アニメーション
  ---------------------------------------------*/
@media screen {
  main .fade-in-up {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity .5s ease, transform .5s cubic-bezier(0,0.3,0.3,1);
  }
  main .fade-in-up.active {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fade-in {
  0% {opacity: 0;}
  100% {opacity: 1;}
}
