body {
    font-family: "source-han-sans-japanese",'Noto Sans JP','游ゴシック', 'Yu Gothic', "ヒラギノ角ゴ Pro W3", sans-serif;
    /* width: 100%; */
    width: 100vw; /* メニュー画面表示時の横ずれ対策 */
    overflow-x: hidden; /* メニュー画面表示時の横ずれ対策 */
    margin: 0;
    line-height: 1.8em;
    color: #40404b;
    cursor: none; /* デフォルトのカーソルを非表示 */
    font-size: 16px;
    font-feature-settings: "palt";
}
.container {
    max-width: 1320px;
    width: 90%;
}
*:focus {
  outline: none;
}
/*
input:focus {
    outline: none;
}
*/
a, a:hover {
    text-decoration: none;
    color: #40404b;
    cursor: none !important;
}

.no-scroll {
    overflow:hidden;
}
/* Windowsでメニューを開くと右にズレる件の対策_ここから */
/* .win .no-scroll {
    position:relative;
    right:8.5px;
}
.win .no-scroll .first-view-logo {
    left:8.5px;
}
.win .no-scroll .menu {
    right:-8.5px;
    width:calc(100% + 8.5px);
}
.win .no-scroll .slider{
    left:8.5px;
} */
/* Windowsでメニューを開くと右にズレる件の対策_ここまで */
.first-view-left-logo,
.first-view-right-logo {
    animation-duration: 12s; /* デフォルトは1s。数値を大きくするとゆっくりになります */
}
@media screen and (max-width:767px) { 
    body {
        cursor: auto;
        font-size: 14px;
    }
    /* タッチデバイス判別でカーソル非表示とするため削除 */
    /* #cursor {
        display: none;
    } */
}
#cursor {
  position: fixed;
  width: 100px;
  height: 100px;
  opacity: 0;
  margin: -50px 0 0 -50px; /* カーソルの中心を設定 */
  z-index: 5000; /* 一番手前に来るように */
  pointer-events: none; /* クリックできなくなるのを防ぐため。noneで対応 */
}
#cursor-ripple {
  position: absolute;
  /* 円の大きさと色の指定 */
  width: 100px;
  height: 100px;
  transform: scale(0.2);
  border-radius: 50%;
  background: #0a50a0;
  opacity: 0.5;
  transition: transform 0.5s, opacity 0.5s;
}
#cursor-background {
    position: absolute;
    /* 円の大きさと色の指定 */
    width: 100px;
    height: 100px;
    transform: scale(0.2);
    border-radius: 50%;
    background: #0a50a0;
    opacity: 0.1;
    transition: transform 0.5s;
}
#cursor-foreground {
    position: absolute;
    /* 円の大きさと色の指定 */
    width: 100px;
    height: 100px;
    transform: scale(0.2);
    border-radius: 50%;
    background: #0a50a0;
    opacity: 0.8;
    transition: transform 0.5s;
}
#cursor-text {
    position: relative;
    text-align: center;
    line-height: 100px;
    white-space: nowrap;
    color: white;
    font-size: 13px;
    font-weight: bold;
    font-family: "source-han-sans-japanese", sans-serif;
    opacity: 0;
    transition: opacity 0.5s;
}
.cursor-ripple-read-more {
    transform: scale(1.86) !important;
    opacity: 0 !important;
}
/*
.cursor-background-read-more {
    transform: scale(1.46) !important;
}
*/
.cursor-foreground-read-more {
    transform: scale(1.06) !important;
}
.cursor-text-read-more {
    opacity: 1 !important;
}
.cursor-menu-open {
  background: #fff !important;
  opacity: 0.21 !important;
}
.cursor-menu-open-ripple {
  background: #fff !important;
  opacity: 0.49 !important;
}
.cursor-ripple-link-hover {
    transform: scale(0.86) !important;
    opacity: 0 !important;
}
/*
.cursor-background-link-hover {
    transform: scale(0.66) !important;
}
*/
.cursor-foreground-link-hover {
    transform: scale(0.46) !important;
}

/* タッチデバイスの場合カーソルアニメ非表示 */
@media (hover: none) and (any-pointer: coarse){
  body {
    cursor: auto;
  }
  #cursor {
    display: none;
  }
}
  

#information-bar {
  /* display: none; */
  background-color: #363639;
  position: fixed; /* ウィンドウを基準に画面に固定 */
  top: 0; /* 上下の固定位置を上から0pxにする */
  left: 0; /* 左右の固定位置を左から0pxにする */
  width:100%;
  z-index: 999;
}
.information-bar-box {
    color: #ffffff;
    padding: 15px 0;
}
#information-bar .topics-badge-pc {
    background-color: transparent;
    font-size: 10px;
    font-weight: bold;
    font-family: "source-han-sans-japanese", sans-serif;
    display: inline-block;
    padding: 3px 0 2px 0;
    border: 1px solid transparent;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: top;
    border-color: #ffffff;
    color: #ffffff;
    width:110px;
    margin-top: 3px;
}
#information-bar .text-link-underline {
  text-decoration: none;
  color: #ffffff;
  background-image: linear-gradient(90deg, #ffffff, #ffffff);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 1px;
  transition: background-size 0.6s ease-in-out;
  padding-bottom: 2px;
  cursor: none !important;
}
#information-bar .text-link-underline:hover {
    color: #ffffff;
    text-decoration: none;
    background-size: 100% 1px;
    background-position: left bottom;
    padding-bottom: 2px;
}
#information-bar .badge-box-pc {
    padding: 0 30px;
}
.topics-txt-information-bar-headline {
    font-weight: bold;
    font-family: "source-han-sans-japanese", sans-serif;
}

.pickup-bar-box-pc {
    width: 90px;
    height: auto;
    background-color: #363639;
    position: fixed;
    z-index: 999;
    top: 160px;
    right: 0px;
    border-radius:6px 0 0 6px;
    box-shadow: -2px -9px 10px rgba(0, 0, 0, 0.3); /* 左:2 上:9 ぼかし:10 広がり:-3 */
    color: #ffffff;
    padding: 12px 12px 8px 12px;
    cursor: none !important;
}
.pickup-bar-title {
    text-align: center;
}
.pickup-bar-text {
    writing-mode: vertical-rl;
    padding: 20px 0 0;
    width: auto;
    height: auto;
/* max-height: 234px; */
    max-height: 300px;
    max-width: 70px;
    margin:0 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.5em;
}
.pickup-bar-thumb {
    width: 70px;
/* height: 70px; */
    height: 37px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}
.pickup-bar-thumb img {
    max-width: 56px;
/* max-height: 56px; */
    max-height: 29px;
    width: auto;
    height: auto;
}

/* header logo sp */
.header-logo-sp {
  position: absolute;;
  top: 10px;
  left: 20px;
  z-index: 900;
}
.header-logo-sp img {
  width: 70%;
  height: auto;
  filter: drop-shadow(0 0 6px rgba(255, 255, 255, 1)); /* x方向 y方向 ぼかし半径 色 */
}
@media screen and (min-width: 576px)  and (max-width: 767px) { 
.header-logo-sp {
  top: 25px;
  left: 30px;
}
.header-logo-sp img {
  width: 250px;
}
}
@media screen and (max-width: 350px) { 
.header-logo-sp {
  top: 5px;
  left: 10px;
}
.header-logo-sp img {
  width: 65%;
}
}
.first-view-pc {
  position: relative;
  top: -60px;
  /* padding-top: 70px; */
}

.first-view-container {
    position: relative;
    /* padding-top: 70px; */
    width: 100%;
    /* height: 1060px; */
}
.first-view-msg {
  position: relative;
  width: 100%;
  height: 560px;
}
.first-view-msg .msg {
  /* font-family: 'Noto Sans JP', sans-serif; */
  position: absolute;
  top: 320px;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  margin: auto;
  text-align: center;
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}
.first-view-msg .main-msg {
    font-family: "source-han-sans-japanese", sans-serif;
    font-size:96px;
    font-weight: bold;
    /* line-height: 8.2rem; */
    line-height: 120%;
    color: #234F99;
    text-shadow: 10px 0px 30px #fff,
    -10px 0px 30px #fff,
    0px 5px 30px #fff,
    0px -5px 30px #fff;
}
.first-view-msg .sub-msg {
    margin-top: 20px;
    font-size: 24px;
    font-weight: 400;
    line-height: 40px;
}

.first-view-msg .main-msg .inversion {
    color: #fff;
    text-shadow: 4px 0px 12px rgba(0, 0, 0, .3),
    -4px 0px 12px rgba(0, 0, 0, .3),
    0px 2px 12px rgba(0, 0, 0, .3),
    0px -2px 12px rgba(0, 0, 0, .3);
    line-height: 120%;
}
.inversion {
    display: inline-block;
    padding: 8px 50px;
    color: #fff;
    line-height: 1;
}
.first-view-msg .sub-msg .inversion {
  display: inline-block;
  padding: 5px 50px;
  color: #fff;
  background-color: #234F99;
}
.first-view-msg .default-msg .main-msg span {
  display: none;
}
.first-view-msg .default-msg .main-msg span:nth-of-type(1) {
  display: inline;
}
.first-view-msg .invisible {
    opacity: 0;
}
.first-view-msg .visible {
    opacity: 1;
}

.first-view-bg {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
}
.first-view-bg img {
  position: absolute;
    width: 100%;
    height: 1200px;
    object-fit: cover;
    opacity: 0;
    filter: blur(1px);
    will-change: opacity; /* アニメーションのカクつき防止 */
    transition: opacity 0.3s;
}
.first-view-bg img.visible {
    opacity: 0.8;
}

.first-view-logo {
    width: 100%;
    height:100vh;
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
}
.first-view-logo img{
    position: absolute;
    /* width: 780px; */
    /* height: 740px; */
    width: 1049px;
    height: 880px;
    /* opacity: 0.7; */
    opacity: 0.8;
    transition: opacity 0.6s ease-in-out;
}
.first-view-left-logo{
    left: -784px;
    top: -40px;
}
.first-view-right-logo{
    right:-784px;
    top: -40px;
}
@media screen and (min-width: 768px)  and (max-width: 991px) {
.first-view-left-logo{
    left: -66%;
}
.first-view-right-logo{
   right: -66%;
}
}
.first-view-logo img.invisible {
  opacity: 0;
}

.slider {
  position: relative;
  top: 0;
  width: 100%;
  margin: 0 auto;
}
.slider img {
  width: 100%;
  position: relative;
  padding: 25px;
  will-change: contents;
  transition: all 300ms ease;
}
.slider img:hover {
  padding: 0;
}

.slide-dots {
    width: fit-content;
    margin: 20px auto 0 auto;
    padding: 0;
}
.slide-dots li {
    display: inline-block;
}
.slide-dots li button {
    width: 70px;
    height: 8px;
    background: #F4F4F4;
    border-width: 0;
    position: relative;
    text-indent: -9999px;
    cursor: none !important;
}
.slide-dots li button:focus {
    outline: none;
}
.slide-dots li:first-of-type button {
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
}
.slide-dots li:last-of-type button {
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
}
.slide-dots li button::before {
    position: absolute;
    left: 1px;
    top: 1px;
    width: 68px;
    height: 6px;
    content: "";
    /* cursor: pointer; */
}
.slide-dots li.slick-active button::before {
    background: #234F99;
}
.slide-dots li.slick-active:first-of-type button::before {
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
}
.slide-dots li.slick-active:last-of-type button::before {
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
}

.first-view-container-mobile {
    width: 100%;
    height: 667px;
}
.first-view-slider-msg-mobile {
    position: absolute;
    top: 140px;
    width: 100%;
    text-align: center;
}
.first-view-slider-msg-mobile .msg {
    /* font-family: 'Noto Sans JP', sans-serif; */
    position: absolute;
    top: 100px;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
}
.first-view-slider-msg-mobile .main-msg {
  font-family: "source-han-sans-japanese", sans-serif;
  padding-top: 20px;
    font-size: 40px;
    font-weight: bold;
    line-height: 3.2rem;
    color: #234F99;
    text-shadow: 6px 0px 16px rgba(255, 255, 255, .8),
    -6px 0px 16px rgba(255, 255, 255, .8),
    0px 3px 16px rgba(255, 255, 255, .8),
    0px -3px 16px rgba(255, 255, 255, .8);
    white-space: norap;
}
/* 幅の狭いsp向け文字サイズ対応 2022/07/15 */
@media screen and (max-width: 480px) {
.first-view-slider-msg-mobile .main-msg {
    font-size: 32px;
    white-space:nowrap;
}
}
@media screen and (max-width: 375px) {
.first-view-slider-msg-mobile .main-msg {
    font-size: 28px;
    white-space:nowrap;
}
}

@media screen and (max-width: 360px) {
    .first-view-slider-msg-mobile .main-msg {
      padding-top: 28px;
      font-size: 28px;
      line-height: 3.2rem;
  }
}
@media screen and (max-width: 330px) {
    .first-view-slider-msg-mobile .main-msg {
      padding-top: 30px;
      font-size: 26px;
      line-height: 3.0rem;
  }
}
.first-view-slider-msg-mobile .sub-msg {
    margin-top: 20px;
    font-size: 20px;
    font-weight: normal;
    line-height: 24px;
}

.first-view-slider-msg-mobile .main-msg .inversion {
    color: #fff;
    line-height: 3.2rem;
    text-shadow: 4px 0px 12px rgba(0, 0, 0, .3),
    -4px 0px 12px rgba(0, 0, 0, .3),
    0px 2px 12px rgba(0, 0, 0, .3),
    0px -2px 12px rgba(0, 0, 0, .3);
}
.first-view-slider-msg-mobile .sub-msg .inversion {
    display: inline;
    padding: 4px 10px;
    color: #fff;
    background-color: #234F99;
}

.first-view-slider-img-mobile {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 667px;
}
.first-view-slider-img-mobile img {
    width: auto;
    height: 667px;
    object-fit: cover;
    opacity: 0.8;
}

.first-view-arrows-mobile {
  position: absolute;
  top: 430px;
  width: 100%;
}
.first-view-prev-arrow-mobile,
.first-view-next-arrow-mobile {
  position: absolute;
  top: 50%;
  margin: 0;
  padding: 0;
  /* cursor: pointer; */
}
.first-view-prev-arrow-mobile {
  left: 24%;
}
.first-view-next-arrow-mobile {
  right: 24%;
}
.first-view-logo-mobile {
    position: absolute;
    width: 100%;
    top: 150px;
}
.first-view-logo-mobile img {
    opacity: 0.5;
    width: 100%;
    height: 570px;
    object-fit: cover;
    object-position: 50% 0;
    will-change: animation;
    animation-duration: 10.0s; /* アニメーションの時間 */
}

.cases-area {
    position: relative;
    margin-top: 0px;
    padding: 70px 0;
    background: #F7F7F7;
}
.cases-row {
    position: relative;
    top: -10px;
}
.cases-intro {
    width: 100%;
    padding-right: 30px;
    border-right: 1px #cccccd solid;
}
.cases-intro-mobile {
    width: 100%;
    padding: 30px;
}
.cases-intro img {
    max-width: 164px;
    width: 100%;
}
.cases-area h2 {
    color: #212124;
    font-weight: bold;
    font-family: "source-han-sans-japanese", sans-serif;
    font-size: 25px;
    margin:10px 0 40px;
}
@media screen and (max-width: 767px) { 
.cases-area {
    padding: 25px 0 50px;
}
.cases-area h2 {
    margin:0 0 30px;
}
}
.cases-area p, figcaption {
    color: #40404b;
}
.cases-area .show-list-1,
.cases-area .show-list-2 {
    text-align: center;
}
.cases-area .show-list-1 {
    margin-top: 10px;
}
.cases-area .show-list-2 {
    margin-top: 30px;
}
.cases-slider figure {
    border-right: 1px #F7F7F7 solid;
    border-left: 1px #F7F7F7 solid;
    padding: 10px 30px;
    min-height:320px;
    position:relative;
}
@media screen and (min-width: 768px) { 
.cases-day-area{
    position:absolute;
    bottom:0;
    right:30px;
}
}
@media screen and (min-width: 992px) and (max-width: 1199px) { 
.cases-slider figure {
    min-height:360px;
}
}
@media screen and (min-width: 768px) and (max-width: 991px) { 
.cases-slider figure {
    min-height:335px;
}
}
.cases-slider figure.slick-center {
    border-right: 1px #cccccd solid;
    border-left: 1px #cccccd solid;
}
.cases-slider .cases-img-background {
  width: 100%;
  background-color: #024398;
  overflow: hidden;
  margin-bottom: 15px;
}
.cases-slider figure img {
  width: 100%;
  height: auto;
  opacity: 0;
  transition: opacity 1s ease 0.5s, transform 0.5s;
}
.cases-slider figure:hover .wp-post-image {
  transform: scale(1.3);
}
.cases-slider figure:nth-of-type(3) img {
  transition: opacity 1s ease  0.75s, transform 0.5s;
}
.cases-slider figure:nth-of-type(4) img {
  transition: opacity 1s ease 1s, transform 0.5s;
}
.cases-slider figure:nth-of-type(5) img {
  transition: opacity 1s ease 1.25s, transform 0.5s;
}
.cases-slider figure:nth-of-type(6) img {
  transition: opacity 1s ease 1.5s, transform 0.5s;
}
.cases-slider figure img.visible {
    opacity: 1;
}
.cases-slider figure .cases-tag {
    margin-bottom: 8px;
}
.cases-slider figure figcaption div {
    text-align: right;
    color: #bcbcbc;
    font-size: 12px;
}

.cases-arrows {
    position: relative;
    height: 92px;
    text-align: center;
    white-space: nowrap;
    font-size: 0px;
}
@media screen and (max-width: 350px) { 
.cases-arrows {
    position: relative;
    height: 92px;
}
}
.cases-prev-arrow, .cases-next-arrow {
    position: relative;
}
.cases-prev-arrow {
    left: 0;
    margin-right: 15px;
}
.cases-next-arrow {
    right: 0;
    margin-left: 15px;
}
.cases-prev-arrow-mobile,
.cases-next-arrow-mobile {
    position: relative;
}
.cases-prev-arrow-mobile {
    left: 0px;
}
.cases-next-arrow-mobile {
    right: 0px;    
}

.cases-dots {
    position: relative;
    top: 4px;
    display: inline-block;
    width: 170px;
    margin: 0 10px;
}
.cases-dots ul {
    position: relative;
}
.cases-slide-dots {
  justify-content: center;
  padding: 0;
}
.cases-slide-dots li {
    display: inline;
    list-style-type: none;
}
.cases-slide-dots li button {
    position: relative;
    width: 18px !important;
    height: 18px !important;
    border-radius: 50%;
    border: 1px solid #bcbcbc;
    background: transparent;
    margin: 0 8px;
    text-indent: -9999px;
    cursor: none !important;
}

.cases-slide-dots li button::before {
    position: absolute;
    top: 0;
    left: 0;
    padding: 0;
    margin: 0;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    content: "";
}
@media screen and (max-width:575px) { 
.cases-dots {
    width:35% !important;
}
.cases-slide-dots li button {
    width: 15px !important;
    height: 15px !important;
    margin: 0 3px;
}
.cases-slide-dots li button::before {
    width: 13px;
    height: 13px;
}
}
@media screen and (max-width:350px) { 
.cases-dots ul {
    display:none !important;
}
}
.cases-slide-dots li.slick-active button::before {
    background: #bcbcbc;
}
.cases-slide-dots li button:focus {
    outline: none;
}

/* svg:hover .arrow-circle-stroke,
.cases-area .show-list-1 svg:hover .show-list-stroke,
.cases-area .show-list-1 svg:hover .show-list-text,
svg:hover .cases-tag-stroke,
svg:hover .cases-tag-text,
svg:hover .prev-arrow-text,
.cases-area svg:hover .next-arrow-text {
    stroke: #234F99;
} */
/* 一覧を見るボタンにBold適用 2022/07/15 */
.show-list-text {
  font-family: "source-han-sans-japanese", sans-serif;
}

svg:hover .page-navi-text {
  fill: #355C9A;
}
svg:hover .arrow-circle-stroke {
  stroke: #355C9A;
    stroke-dasharray: 189;
    transform-origin: center;
    will-change: animation;
    animation: circle-stroke-anime ease-in 0.6s;
}
@keyframes circle-stroke-anime {
  to {
    stroke-dashoffset: 0;
    transform: rotate(300deg);
  }
  from {
    stroke-dashoffset: 100;
    transform: rotate(90deg);
  }
}

svg:hover .show-list-stroke {
    stroke-dasharray: 412;
    will-change: animation;
    animation: show-list-stroke-anime 0.8s ease-in;
}
@keyframes show-list-stroke-anime {
    to {
        stroke-dasharray: 412;
        stroke-dashoffset: 0;
    }
    from {
        stroke-dasharray: 206;
        stroke-dashoffset: 412;
    }
}

svg:hover .cases-tag-stroke {
    stroke-dasharray: 218;
    will-change: animation;
    animation: cases-tag-anime 0.6s ease-in;
}
svg:hover .badge-stroke {
  stroke-dasharray: 254;
  will-change: animation;
  animation: badge-anime 0.6s ease-in;

}
@keyframes cases-tag-anime {
    to {
        stroke-dasharray: 218;
        stroke-dashoffset: 0;
    }
    from {
        stroke-dasharray: 109;
        stroke-dashoffset: 218;
    }
}
@keyframes badge-anime {
  to {
      stroke-dasharray: 254;
      stroke-dashoffset: 0;
  }
  from {
      stroke-dasharray: 127;
      stroke-dashoffset: 254;
  }
}
@keyframes prev-arrow-anime {
    0% {
        opacity: 1;
        transform: translateX(0);
    }
    50% {
        opacity: 0;
        transform: translateX(-10px);
    }
    51% {
        opacity: 0;
        transform: translateX(10px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}
@keyframes next-arrow-anime {
    0% {
        opacity: 1;
        transform: translateX(0);
    }
    50% {
        opacity: 0;
        transform: translateX(10px);
    }
    51% {
        opacity: 0;
        transform: translateX(-10px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}
svg:hover .prev-arrow {
    will-change: animation;
    animation: prev-arrow-anime 0.8s ease-in-out;
}
svg:hover .next-arrow {
    will-change: animation;
    animation: next-arrow-anime 0.8s ease-in-out;
}
/* svg:hover .prev-arrow-text {
    will-change: animation;
    animation: prev-arrow-anime 0.8s ease-in-out;
}
svg:hover .next-arrow-text {
    will-change: animation;
    animation: next-arrow-anime 0.8s ease-in-out;
} */

/* cases:underline */
.text-link-underline {
  text-decoration: none;
  color: #40404b;
  background-image: linear-gradient(90deg, #40404b, #40404b);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 1px;
  transition: background-size 0.6s ease-in-out;
  padding-bottom: 1px;
  cursor: none !important;
}
.cases-slider a:hover .text-link-underline {
  color: #40404b;
  text-decoration: none;
  background-size: 100% 1px;
  background-position: left bottom;
  padding-bottom: 1px;
  cursor: none !important;

}

/* cases:font size y/m/d */
.cases-txt-date {
    color: #bcbcbc;
    margin-top: 5px;
    text-align:right;
  }
  /* .cases-txt-year {
  } */
  .cases-txt-month {
    font-weight: bold;
    font-family: "source-han-sans-japanese", sans-serif;
    padding: 0 4px;
  }
  .cases-txt-day {
    font-weight: bold;
    font-family: "source-han-sans-japanese", sans-serif;
  }


  /* underline */
  .text-link-underline {
  text-decoration: none;
  color: #40404b;
  background-image: linear-gradient(90deg, #40404b, #40404b);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 1px;
  transition: background-size 0.6s ease-in-out;
  padding-bottom: 1px;
}
.text-link-underline:hover {
  color: #40404b;
  text-decoration: none;
  background-size: 100% 1px;
  background-position: left bottom;
  padding-bottom: 1px;
}

  #topics {
    padding: 70px 0;
  }
  #topics h2 {
    color: #212124;
    font-weight: bold;
    font-size: 25px;
    margin:10px 0 20px;
    font-family: "source-han-sans-japanese", sans-serif;
}
@media screen and (max-width: 767px) { 
  #topics {
    padding: 50px 0;
  }  
 #topics h2 {
    margin:0 0 20px;
}
}
  .topics-link-area {
    border-right: 1px solid #d3d3d3;
  }
  .tab-content .tab-pane{
    margin-top:10px;     
  }
  /* .topics-box {
    margin-bottom: 35px;
  } */
  .topics-badge {
    background-color: transparent;
    font-size: 10px;
    font-weight: bold;
    font-family: "source-han-sans-japanese", sans-serif;
    display: inline-block;
    padding: 3px 5px;
    border: 1px solid transparent;
    line-height: 1;
    text-align: center;
    float:right;
    white-space: nowrap;
    vertical-align: top;
    border-color: #004a97;
    color: #004a97;
  }
a.topics-badge-link {
  color: #004a97 !important;
  fill: #004a97 !important;
  }
  .topics-badge-pc {
    background-color: transparent;
    font-size: 10px;
    font-weight: bold;
    font-family: "source-han-sans-japanese", sans-serif;
    display: inline-block;
    padding: 2px 0 2px 0;
    border: 1px solid transparent;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: top;
    border-color: #004a97;
    color: #004a97;
    width:110px;
  }

  /* topics sp */
  .nav-pills .nav-link.active {
        background-color: #024398;
  }
  .nav-pills .nav-link {
      color: #024398;
      font-weight: bold;
      font-family: "source-han-sans-japanese", sans-serif;
      padding: 1px 15px;
      margin-right: 15px;
      border: solid 1px #024398;
      border-radius:3px;
      white-space:nowrap;
  }
  .topics-nav-box .nav-item {
    margin: 0;
    padding: 0;
    border: none;
  }

  .topics-link {
    margin-top:40px;
    display: flex;
    list-style: none;
    color: #212124;
    flex-wrap: wrap;
    white-space:nowrap;
  }
  .topics-link li a {
    display: block;
    padding:2px 20px;
    text-decoration: none;
    color: #212124;
    cursor: none !important;
  }
  .topics-link li {
    margin-bottom: 20px;
    cursor: none !important;
  }

  /* topics-link 下線アニメ */
  .topics-link li a {
    position: relative;
  }
  .topics-link .current,
  .topics-link li a:hover{
    color: #212124;
    font-weight: bold;
    font-family: "source-han-sans-japanese", sans-serif;
  }

  .topics-link .current::after,
  .topics-link li a::after {
    content: '';
    /*絶対配置で線の位置を決める*/
    position: absolute;
    bottom: 0;
    left: 10%;
    /*線の形状*/
    width: 80%;
    height: 1px;
    background:#004a97;
    /*アニメーションの指定*/
    transition: transform .3s ease;
    transform-origin: right top;
    transform: scale(0, 1);/*X方向0、Y方向1*/
  }

  /*現在地とhoverの設定*/
  .topics-link .current::after,
  .topics-link li a:hover::after {
    transform-origin: left top;
    transform: scale(1, 1);/*X方向にスケール拡大*/
  }
  .topics-link .current:hover::after {
    animation-name: topics-link-current-anime;
    animation-duration: .6s;
  }
  @keyframes topics-link-current-anime {
    0%{
      transform-origin: right top;
      transform: scale(1, 1);/* 一旦下線を消す(X方向0、Y方向1) */ 
    }
    50%{
      transform-origin: right top;
      transform: scale(0, 1);/* 一旦下線を消す(X方向0、Y方向1) */ 

    }
    60% {
        transform-origin: left top;
        transform: scale(0, 1);/*X方向0、Y方向1*/
    }
    100% {
        transform-origin: left top;
        transform: scale(1, 1);/*X方向1、Y方向1*/
    }
  }
  
  
  /* sp用フリックボタン */
  .topics-nav-box {
    margin-bottom: 35px;
    width: 100%;
  }
  .scroll-nav {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  flex-wrap:nowrap;
  overflow-x:scroll;
  white-space: nowrap;
  }
  .scroll-nav::-webkit-scrollbar {
	  display:none;
  }
  .scroll-nav ul{
	  display: flex;
  	list-style-type: none;
	  padding: 0;
	  text-align: center;
  }
  .scroll-nav li{
	  display: flex;
  	padding: 1px 15px;
	  margin-right: 15px;
	  background:#fff;
    white-space:nowrap;
    font-weight: 600;
    font-family: "source-han-sans-japanese", sans-serif;
    border: solid 1px #024398;
    border-radius:3px;

  }
  .scroll-nav li a{
	  width: 100%;
	  color:#024398;
	  text-decoration:none;
  }
  .scroll-nav li.scroll-nav-current{
    color: #fff;
    background:#024398;
    margin-left: 15px;
  }
  .nav-pills .nav-link.active {
  background-color: #024398;
}
.nav-pills .nav-link {
  color: #024398;
  font-weight: bold;
  font-family: "source-han-sans-japanese", sans-serif;
  padding: 1px 15px;
  margin-right: 15px;
  border: solid 1px #024398;
  border-radius:3px;
  white-space:nowrap;
}

@media screen and (min-width: 576px) and (max-width: 767px) { 
   .topics-nav-box {
    width:540px;
    display:block;
    margin-left:auto;
    margin-right:auto;
  }  
}

/* sp footer nav */
body {
  position: relative;
}
/* tab */
#footer-nav-sp {
  position: fixed;
	bottom: 0px;
  background-color: #ffffff;
  z-index: 99;
  width: 100%;
}
#footer-nav-menu-sp {
  position: fixed;
	bottom: 0px;
  z-index: 99;
  width: 100%;
}
.footer-nav-tab-sp {
  text-align: center;
}
/* sp submenu 2022/07/28 */
.footer-nav-sp-submenu-area {
  border-top: 1px solid #0a50a0;
}
/* for touch */
#footer-nav-sp .tab-content {
  /* border-top: 1px solid #0a50a0; */
}
.footer-nav-tab-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
   /* border-top: 1px solid #0a50a0; */ /* 親要素のcssに移動 2022/07/28 */
   width: 100%;
}
.footer-nav-tab-scroll::-webkit-scrollbar {
  display:none;
}
.footer-nav-tab-scroll ul {
    display: flex;
    list-style-type: none; 
    padding: 5px 0; /*  8px→5px spメニューの間隔に合わせて間隔調整 2022/07/28 */
    margin-bottom: 0;
  }
.footer-nav-tab-scroll li {
    width: 100%; 
    display: flex;
    white-space:nowrap;
    /* margin:0 10px; */
    margin:0 12px;  /* 10→12px 2022/-7/28 */
    font-size: 12px;
  }
.footer-nav-tab-scroll li a {
  text-decoration:none;
}
.footer-nav-tab-sp-menu-area {
  border-top: solid 1px #0a50a0;
  width: 100%;
  margin: 0;
  /* padding: 0; */
  /*padding: 2px 0 0; */
  padding: 2px 0 0 0; /* font-size rem→pxによる間隔対策 2022/07/28 */
}
#footer-nav-menu-sp .footer-nav-tab-sp-menu-area {
  border-top: none;
  width: 100%;
  margin: 0;
  /* padding: 0; */
  padding: 5px 0; /* font-size rem→pxによる間隔対策 2022/07/28 */
}
.footer-nav-menu-area {
  width: 100%;
  text-align: center;
}
.footer-nav-menu-area a {
  font-size: 12px;
  font-weight: bold;
  font-family: "source-han-sans-japanese", sans-serif;
  width: 100%;
  padding: 3px 0px !important;
  white-space:nowrap;
}
.footer-nav-menu-area a div{
  position:relative;
  bottom:3px;
}
.footer-nav-menu-area .nav-link {
  padding: 0;
}
.footer-nav-menu-area img {
  max-width: 30px;
  margin-bottom: 2px;
  height: auto;
}
/* spメニュー company サブメニュー current []表示 2022/07/28 */
.footer-nav-sp-submenu-box {
  list-style: none;
}
.footer-nav-sp-submenu-box .current span::before {
  content: "[";
  margin-right: 6px;
  color: #0a50a0;
}
.footer-nav-sp-submenu-box .current span::after {
  content: "]";
  margin-left: 6px;
  color: #0a50a0;
}
.footer-nav-sp-submenu-box li:last-child a {
  margin-right: 15px;
}

/* pc header nav */
.nav-bar-container {
  position: relative;
/*  top: 100px; */  /* headline表示あり */
  top: 10px;  /* headline表示なし */
  z-index: 50;
}
.nav-bar-area-pc {
  /* width: 100%; */  /* 画面中央表示対策 */
  height: 60px;
  padding: 0 10px;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 30px;
}
.header-logo-style {
  margin: 0;
  padding: 0;
  width: 240px;
  max-width: none;
  height: auto;
}
.nav-bar-link {
  text-align: right;
}
.nav-bar-link-pc {
  font-size: 14px;
  font-weight: bold;
  font-family: "source-han-sans-japanese", sans-serif;
}
.nav-bar-link-pc .nav-item {
  display: inline-block;
  margin: 0 0 0 40px;
  font-family: "source-han-sans-japanese", sans-serif;
    position:relative;
    top:-2px;
}
.nav-bar-link-pc .nav-item a{
  padding:0 !important;
  line-height:1.8em !important;
}
.nav-bar-link-pc .change-language{
  margin: 0 0 0 30px;
  padding-left:30px;
  color:#8c8c92;
  position:relative;
}
.nav-bar-link-pc .change-language::before{
    content: '';
    background:#cfcfcf;
    height:15px;
    width:1px;
    display:inline-block;
    position:relative;
    right:29px;
    top:3px;
}
img.header-weblink-icon{
    position:relative;
    bottom:1px;
    width:14px;
    margin-left:3px;
}
.nav-bar-link-pc .change-language a{
  color:#8c8c92;
}
.nav-bar-link-pc .nav-item-icon{
    margin:0 0 0 55px;
    position:relative;
    top:5px;
}
.nav-bar-link-pc .nav-item a{
  font-size: 14px !important;
}
@media screen and (min-width: 992px) and (max-width: 1199px) {
.nav-bar-link-pc .nav-item {
  margin: 0 0 0 20px;
}
.nav-bar-link-pc .change-language{
  margin: 0 0 0 15px;
  padding-left:15px;
}
.nav-bar-link-pc .change-language::before{
    right:14px;
}
.nav-bar-link-pc .nav-item-icon{
    margin:0 0 0 25px;
}
}
@media screen and (min-width: 768px) {
main.is-show {
    margin-top:60px;
}
}
/* #pc-header */
#pc-header.is-show {
  position: fixed;
  /* top: 70px; */  /* headline bar */
  top: 0;  /* headline bar */
  z-index: 60;
  /* width: 100%; */
  width: 100vw; /* 画面中央表示対策 */
  background-color: #ffffff;
  animation: window-down .3s ease-out ;
  animation-fill-mode: forwards;
}
@keyframes window-down {
  from {
    top: -80px;
  }
  to {
    top: 0;
  }
}
#pc-header.is-show .nav-bar-container {
  position: relative;
  box-sizing: border-box;
  top: 0;
}
#pc-header.is-show .nav-bar-area-pc {
  /* width: 100%; */ /* 画面中央表示対策 */
  height: 80px;
  padding: 0 10px;
  background: none;
  border-radius: none;
}

/* underline */
/* global navi */
/* .nav-bar-link-pc-nodisp .text-link-underline {
text-decoration: none;
color: #40404b;
background-image: linear-gradient(90deg, #014397, #014397);
background-repeat: no-repeat;
background-position: right bottom;
background-size: 0 2px;
transition: background-size 0.4s ease-in-out;
padding-bottom: 5px;
}
.nav-bar-link-pc-nodisp .text-link-underline:hover {
color: #014397;
text-decoration: none;
background-size: 100% 2px;
background-position: left bottom;
padding-bottom: 5px;
} */
.nav-bar-link-pc-nodisp li a {
  position: relative;
  display: inline-block;
  text-decoration: none;
}
.nav-bar-link-pc-nodisp li a:hover,
.nav-bar-link-pc-nodisp .current {
  color: #014397;
}
.nav-bar-link-pc-nodisp .current::after,
.nav-bar-link-pc-nodisp a::after {
  color: #014397;
  position: absolute;
  bottom: 3px;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #014397;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .3s ease;
}
.nav-bar-link-pc-nodisp .current::after,
.nav-bar-link-pc-nodisp a:hover::after {
  transform-origin: left top;
  transform: scale(1, 1);
}
.nav-bar-link-pc-nodisp .current:hover::after  {
  animation-name: nav-bar-link-pc-current-anime;
  animation-duration: .6s;
}
@keyframes nav-bar-link-pc-current-anime {
  0%{
    transform-origin: right top;
    transform: scale(1, 1);/* 一旦下線を消す(X方向0、Y方向1) */ 
  }
  50%{
    transform-origin: right top;
    transform: scale(0, 1);/* 一旦下線を消す(X方向0、Y方向1) */ 
  }
  60% {
      transform-origin: left top;
      transform: scale(0, 1);/*X方向0、Y方向1*/
  }
  100% {
      transform-origin: left top;
      transform: scale(1, 1);/*X方向1、Y方向1*/
  }
}

/* footer */  /* sm幅でフッターにspメニュー用の余白を付けるように変更 2022/07/15 */
@media screen and (max-width: 768px) {
  #footer {
    margin-top: 80px;
  }
}

/*  spメニュー company サブメニュー用 2022/07/28 */
.sp-nav-company-margin-top {
  margin-top: 160px;
}
#footer a {
  cursor: none !important;
}
.footer-area-logo-sp {
  background-color: #f7f7f7;
  padding: 25px 0;
}
.footer-area-link-copyright-sp {
  font-size: 12px;
  padding: 25px 0;
}
.footer-area-copyright-sp {
  padding: 30px 0 0;
}
.footer-area-logo-pc {
  background-color: #f7f7f7;
  padding: 45px 0;
}
.footer-area-link-copyright-pc {
  font-size: 12px;
  padding: 25px 0;
}

.menu {
    width: 100%;
    height: 100%;
    /* display: none; */
    position: fixed;
    top: 0;
    color: #fff;
    background: #06429a;
    padding-bottom: 60px;
    overflow: auto;
    z-index: 1000;
}
.menu-open {
    display: block;
    opacity: 1;
    animation: menu-fade-in 1.0s;
}
.menu-close {
  display: none;
    opacity: 0;
    animation: menu-fade-out 1.0s;
}
@keyframes menu-fade-in {
    from {
        display: none;
        opacity: 0;
    }
    to {
        display: block;
        opacity: 1;
    }
}
@keyframes menu-fade-out {
    from {
        display: block;
        opacity: 1;
    }
    to {
        display: none;
        opacity: 0;
    }
}

.menu-header {
    position: relative;
    width: 100%;
    /* max-width: 1300px; */
    font-size: 13px;
    margin: 0 auto;
    padding: 10px 0 80px 0;
}
.menu-header-area {
    width: 100%;
  height: 60px;
  padding: 0 10px;
}
/*
.menu-header-actions {
    position: absolute;
    padding: 50px;
    top: 0;
    right: 100px;
    color:#CFD0E3
}
*/
.menu-header-actions {
    font-size: 16px;
    color:#CFD0E3;
    padding: 5px 0 0 0;
}
.menu-header-sns-icon {
    width: 35px;
    height: auto;
    padding-right: 15px;
}
.menu-header-actions-icon {
    margin: 0 0 3px 4px;
    vertical-align: middle;
}
.menu-header-search {
    width: 200px;
    height: 30px;
    border-radius: 15px;
    border: none;
    margin: 0 -10px 0 10px;
    background: #CFD0E3;
    padding: 0 30px 0 10px;
    color: #004a97;
}

/* search input */
.menu-header-search-btn {
    position: relative;
  border: none;
  background: none;
  left: -35px;
  top: -1px;
  outline : none;
}
.menu-header-search-btn-sp {

  border: none;
  background: none;
  right: -100px;
  top: 100px;
  outline : none; 
}

.menu-header-mobile {
    position: relative;
    width: 100%;
    height: auto;
}
.menu-header-actions-mobile {
  position: relative;
  padding: 40px 20px;
  color:#CFD0E3;
}
/*
.menu-header-actions-mobile i {
    font-size: 28px;
    padding-right: 12px;
    vertical-align: middle;
    margin-bottom: 15px;
}
*/


form.searchform{
  width:100%;
  position:relative;
  display:inline;
  margin-right:10px;
}
form.searchform input{
    margin:0;
}
.searchfield {
    width: 200px;
    height: 30px;
    padding:10px 15px;
    border-radius: 15px;
    border: none;
    background: #CFD0E3;
    color: #004a97;
}
input#searchsubmit {
    position:absolute;
    right:13px;
    top:-3px;
	width: 18px;
	height:18px;
	box-sizing:border-box !important;
	border: none;
	background: none;
    color:#bfbfbf;
    -webkit-appearance: none;
    border-radius: 0;
}
.win input#searchsubmit{
    top:2px;
}

@media screen and (max-width: 767px) { 
form.searchform{
  display:block;
  margin:0 0 20px;
}
.searchfield {
    width: 100%;
    height: 40px;
    border-radius: 25px;
}
input#searchsubmit {
    position:absolute;
    right:13px;
    top:10px;
	width: 18px;
	height:18px;
}
}

.menu-header-actions-mobile-icon {
    margin: 0 10px 0 3px;
    vertical-align:text-bottom;
}
.menu-header-search-mobile-area {
  width: 100%;
  position: relative;
}
.menu-header-search-btn-sp-area {
  position: absolute;
  top: 5px;
  right: 15px;
}
.menu-header-search-mobile {
    display: block;
    width: 100%;
    /* height: 72px; */
    height: 35px;
    /* border-radius: 36px; */
    border-radius: 25px;
    border: none;
    margin-bottom: 30px;
    padding: 0 40px 0 10px;
    background: #CFD0E3;
    color: #004a97;
}
.menu-header-action-button-mobile {
    text-align: center;
    margin-top: 10px;
    font-size: 13px;
    color: #CFD0E3;
    width: 100%;
}
.menu-header-action-button-mobile a {
    text-decoration: none;
    color: #CFD0E3;
}
.menu a {
  text-decoration: none;
    color: #CFD0E3;
    line-height: 120%;
}
.menu-header-mobile-text {
  text-align: center;
    margin-top: 10px;
    font-size: 16px;
    color: #CFD0E3;
    width: 100%;
}
@media screen and (max-width:767px) {
.menu-header-mobile-text {
    font-size: 12px;
}
}
@media screen and (max-width:350px) {
.menu-header-mobile-text {
    font-size: 12px;
}
}

.menu-button {
  width: 25px;
    height: 25px;
    cursor: none;
    margin: 0 auto;
    position: relative;
}
@media screen and (min-width:768px) {
.menu-button {
    margin: 0 0 0 auto;
}
}
#bento-menu {
  display: none;
  position: absolute;
  z-index: 4999;
}
#bento-menu.visible {
  display: block;
}
#footer-bento-menu {
  position: fixed;
  bottom: 24px;
  z-index: 4999;
}
.menu-container {
    width: 90%;
    max-width: 1300px;
    /* padding: 0px 180px; */
    margin-top: -40px;
}
.menu-button-top {
  position: fixed;
    top: 50px;
    right: 80px;
    /* z-index: 100; */
}
.menu-button-bottom {
    position: fixed;
    /* top: 10px; */
    bottom: 29px;
    right: 18px;
    /* z-index: 100; */
}
.menu-button span{
    display: block;
    margin: 0;
    border: none;
    width: 5px;
    height: 5px;
    background: #06429a;
    position: absolute;
    top: 0px;
    left: 0%;
    transition: .3s;
}
.menu-button span:nth-of-type(2){
    left: 10px;
}
.menu-button span:nth-of-type(3){
    left: 20px;
}
.menu-button span:nth-of-type(4){
    top: 10px;
}
.menu-button span:nth-of-type(5){
    top: 10px;
    left: 10px;
}
.menu-button span:nth-of-type(6){
    top: 10px;
    left: 20px;
}
.menu-button span:nth-of-type(7){
    top: 20px;
}
.menu-button span:nth-of-type(8){
    top: 20px;
    left: 10px;
}
.menu-button span:nth-of-type(9){
    top: 20px;
    left: 20px;
}
.menu-button-close span{
    background: white;
    opacity: 1;
}
.menu-button-close span:nth-of-type(1){
    top: 20px;
    left: 0px;
}
.menu-button-close span:nth-of-type(2){
    top: 5px;
    left: 5px;
}
.menu-button-close span:nth-of-type(3){
    top: 0px;
    left: 0px;
}
.menu-button-close span:nth-of-type(4){
    top: 15px;
    left: 5px;
}
.menu-button-close span:nth-of-type(6){
    top: 5px;
    left: 15px;
}
.menu-button-close span:nth-of-type(7){
    top: 20px;
    left: 20px;
}
.menu-button-close span:nth-of-type(8){
    top: 15px;
    left: 15px;
}
.menu-button-close span:nth-of-type(9){
    top: 0px;
    left: 20px;
}

/* .menu-title {
  position: relative;
  width: auto;
  padding: 5px 50px 0px 15px;
  font-weight: bold;
  margin-top: 20px;
}
.menu-title-arrow {
    position: absolute;
    top: 0;
    right: 15px;
}
hr {
    border-color: #4C6696;
} */
.menu-title {
  align-items: center;
  min-height: 55px;
  padding: 0 15px;
  font-size: 18px;
  font-weight: bold;
  font-family: "source-han-sans-japanese", sans-serif;
  border-bottom: solid 1px #4C6696; /* 区切り線の高さを1pxに変更 2022/07/15 */
  margin: 20px 0;
}
.casestudy-menu-title{
  margin: 40px 0 20px;
}
.menu-title-arrow {
  text-align: right;
}
.menu-items {
  /* margin-left: 15px; */
  font-size: 14px;
  color: #CFD0E3;
  text-align:left;
}
@media (max-width: 767px) {
.menu-title {
  margin: 0 0 20px;
}
.casestudy-menu-title{
  margin: 0 0 20px;
}
.menu-items {
  font-size: 12px;
 }

}
@media (max-width: 767px) {
.menu-items {
  font-size: 12px;
 }
}
.menu-item {
  align-items: center;
  min-height: 19px;
  line-height: 1.4em !important;
  padding: 0 15px;
  margin-bottom: 10px;
  /* position: relative; */
  /* padding: 0 50px 15px 0; */
}
.menu-item-arrow {
  text-align: right;
  /* position: absolute; */
  /* top: 0; */
  /* right: 15px; */
}

/* svg:hover .menu-title-arrow-circle {
    stroke-dasharray: 157;
    transform-origin: center;
    will-change: animation;
    animation: menu-title-arrow-circle-anime ease-in 0.6s;
}
@keyframes menu-title-arrow-circle-anime {
  to {
    stroke-dashoffset: 0;
    transform: rotate(300deg);
  }
  from {
    stroke-dashoffset: 130;
    transform: rotate(90deg);
  }
}
svg:hover .menu-item-arrow-circle {
    stroke-dasharray: 132;
    transform-origin: center;
    will-change: animation;
    animation: menu-item-arrow-circle-anime ease-in 0.6s;
}
@keyframes menu-item-arrow-circle-anime {
  to {
    stroke-dashoffset: 0;
    transform: rotate(300deg);
  }
  from {
    stroke-dashoffset: 120;
    transform: rotate(90deg);
  }
}
svg:hover .menu-next-arrow {
    will-change: animation;
    animation: menu-next-arrow-anime 0.8s ease-in-out;
}
@keyframes menu-next-arrow-anime {
    0% {
        opacity: 1;
        transform: translateX(0);
    }
    50% {
        opacity: 0;
        transform: translateX(8px);
    }
    51% {
        opacity: 0;
        transform: translateX(-8px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
} */
@media (max-width: 767px) {
    .menu-container {
        padding: 40px 0;
    }
    .menu-title {
      padding: 0 5px 0 0;
    }
    .menu-item {
      padding: 0 5px 0 0;
      /* padding: 5px 50px 15px 0; */
      /* padding: 5px 30px 15px 0; */
    }
    .menu-title {
        font-size: 12px;
        line-height: 1.5em;
    }
    .menu-item-arrow {
        /* right: 5px;
        padding-right: 0;             テキストリンクと矢印アイコンを縦中央揃え　2022/07/15
        transform: translateY(-50%);  テキストリンクと矢印アイコンを縦中央揃え　2022/07/15
        top:35%;                      テキストリンクと矢印アイコンを縦中央揃え　2022/07/15 */
    }
    .menu-container-mobile-no-gutters .col-6,
    .menu-container-mobile-no-gutters .col-12 {
        padding: 0 10px;  /* mobile時 gutter: 15px→10px */
    }
} 
@media (max-width: 992px) {
  .nav-bar-link-pc-nodisp li.nav-item {
    display: none;
  }
  .nav-bar-link-pc-nodisp li.nav-item-icon {
    display: inline-block;
  }
}

.menu-topics-box {
color: #ffffff;
padding: 0;
margin-bottom: 25px;
}
.menu-topics-box .topics-badge-pc {
background-color: transparent;
font-size: 10px;
font-weight: bold;
font-family: "source-han-sans-japanese", sans-serif;
display: inline-block;
padding: 3px 0 2px 0;
border: 1px solid transparent;
line-height: 1;
text-align: center;
white-space: nowrap;
vertical-align: top;
border-color: #cfd0ea;
color: #cfd0ea;
width:110px;
margin-top: 3px;
}
.menu-topics-box .text-link-underline {
text-decoration: none;
color: #cfd0ea;
background-image: linear-gradient(90deg, #cfd0ea, #cfd0ea);
background-repeat: no-repeat;
background-position: right bottom;
background-size: 0 1px;
transition: background-size 0.6s ease-in-out;
padding-bottom: 2px;
cursor: none !important;
}
.menu-topics-box .text-link-underline:hover {
color: #cfd0ea;
text-decoration: none;
background-size: 100% 1px;
background-position: left bottom;
padding-bottom: 2px;
}
.menu-topics-box .badge-box-pc {
padding: 0 30px;
}
.menu-topics-box .badge-box-pc a {
  /* fill: #fff !important; */
}
.topics-txt-menu-topics-box {
font-size: 14px;
color: #cfd0ea;
}
.menu-topics-box-thumb img {
    width: 100%;
    max-width: 120px;
    margin-right: 15px;
}
/* underline */
.menu-title .text-link-underline {
  text-decoration: none;
  color: #ffffff;
  background-image: linear-gradient(90deg, #ffffff, #ffffff);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 1px;
  transition: background-size 0.5s ease-in-out;
  padding-bottom: 2px;
  cursor: none !important;
}
.menu-title .text-link-underline:hover {
    color: #ffffff;
    text-decoration: none;
    background-size: 100% 1px;
    background-position: left bottom;
    padding-bottom: 2px;
}
.menu-item .text-link-underline {
  text-decoration: none;
  color: #cfd0ea;
  background-image: linear-gradient(90deg, #cfd0ea, #cfd0ea);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 1px;
  transition: background-size 0.5s ease-in-out;
  padding-bottom: 2px;
  cursor: none !important;
}
.menu-item .text-link-underline:hover {
    color: #cfd0ea;
    text-decoration: none;
    background-size: 100% 1px;
    background-position: left bottom;
    padding-bottom: 2px;
}
.menu-header-actions .text-link-underline {
  text-decoration: none;
  color: #cfd0ea;
  background-image: linear-gradient(90deg, #cfd0ea, #cfd0ea);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 1px;
  transition: background-size 0.5s ease-in-out;
  padding-bottom: 2px;
  cursor: none !important;
}
.menu-header-actions .text-link-underline:hover {
    color: #cfd0ea;
    text-decoration: none;
    background-size: 100% 1px;
    background-position: left bottom;
    padding-bottom: 2px;
}


/* cases:underline */
.text-link-underline {
text-decoration: none;
color: #40404b;
background-image: linear-gradient(90deg, #40404b, #40404b);
background-repeat: no-repeat;
background-position: right bottom;
background-size: 0 1px;
transition: background-size 0.6s ease-in-out;
padding-bottom: 1px;
cursor: none !important;
}
.cases-slider a:hover .text-link-underline {
color: #40404b;
text-decoration: none;
background-size: 100% 1px;
background-position: left bottom;
padding-bottom: 1px;
cursor: none !important;

}

/* cases:font size y/m/d */
.cases-txt-date {
color: #bcbcbc;
margin-top: 5px;
text-align:right;
}
/* .cases-txt-year {
} */
.cases-txt-month {
font-weight: bold;
font-family: "source-han-sans-japanese", sans-serif;
padding: 0 4px;
}
.cases-txt-day {
font-weight: bold;   
font-family: "source-han-sans-japanese", sans-serif;
}


/* underline */
.text-link-underline {
text-decoration: none;
color: #40404b;
background-image: linear-gradient(90deg, #40404b, #40404b);
background-repeat: no-repeat;
background-position: right bottom;
background-size: 0 1px;
transition: background-size 0.6s ease-in-out;
padding-bottom: 1px;
}
.text-link-underline:hover {
color: #40404b;
text-decoration: none;
background-size: 100% 1px;
background-position: left bottom;
padding-bottom: 1px;
}

.topics-link-area {
border-right: 1px solid #d3d3d3;
}
.topics-box {
margin-bottom: 35px;
}
.topics-txt-y {
font-size: 12px;
text-align: right;
margin-top: -12px;
color: #212124;
}
.topics-txt-m {
font-size: 12px;
font-family: "source-han-sans-japanese", sans-serif;
margin-top: -6px;
line-height: 1;
color: #212124;
}
.topics-txt-d {
font-size: 35px;
font-family: "source-han-sans-japanese", sans-serif;
margin-top: -4px;
color: #212124;
}
.topics-txt-m-pc {
    text-transform: uppercase !important;
    font-family: "source-han-sans-japanese", sans-serif !important;
}
@media (max-width: 767px) {
.topics-txt-m {
    text-transform: uppercase;
    font-family: "source-han-sans-japanese", sans-serif !important;
}
}
#topics .tab-content .mb-1, .my-1 {
  margin-top: -0.2rem!important;
}

.menu-topics-box .topics-txt-y {
  color: #fff;
}
.menu-topics-box .topics-txt-m {
  color: #fff;
}
.menu-topics-box .topics-txt-d {
  color: #fff;
}
@media screen and (min-width: 1200px) {
.tab-content {
    padding-left:27px;
}
}
@media screen and (min-width: 992px)  and (max-width: 1199px) {
.tab-content {
    padding-left:50px;
}
}
@media screen and (min-width: 768px)  and (max-width: 991px) {
.tab-content {
    padding-left:40px;
}
}

.topics-link .current::after,
.topics-link li a::after {
content: '';
/*絶対配置で線の位置を決める*/
position: absolute;
bottom: 0;
left: 10%;
/*線の形状*/
width: 80%;
height: 1px;
background:#004a97;
/*アニメーションの指定*/
transition: transform .3s ease;
transform-origin: right top;
transform: scale(0, 1);/*X方向0、Y方向1*/
}

/*現在地とhoverの設定*/
.topics-link .current::after,
.topics-link li a:hover::after {
transform-origin: left top;
transform: scale(1, 1);/*X方向にスケール拡大*/
}
.topics-link .current:hover::after {
animation-name: topics-link-current-anime;
animation-duration: .6s;
}
@keyframes topics-link-current-anime {
0%{
transform-origin: right top;
transform: scale(1, 1);/* 一旦下線を消す(X方向0、Y方向1) */ 
}
50%{
transform-origin: right top;
transform: scale(0, 1);/* 一旦下線を消す(X方向0、Y方向1) */ 

}
60% {
  transform-origin: left top;
  transform: scale(0, 1);/*X方向0、Y方向1*/
}
100% {
  transform-origin: left top;
  transform: scale(1, 1);/*X方向1、Y方向1*/
}
}
.menu-logo-sp {
    max-width: 200px;
    height: auto;
    margin-top: 30px;
}


.menu-header-mobile-sns-icon-box {
    white-space: nowrap;
}
.menu-header-mobile-sns-icon {
    width: 24px;
    height: auto;
    margin: 0 20px 0 0;
}
.menu-header-actions-mobile-icon {
    margin: 0 20px 0 3px;
}
@media (max-width: 400px) {
  .menu-header-mobile-sns-icon {
    width: 20px;
    margin: 0 5px 0 0;
  }
  .menu-header-actions-mobile-icon {
    margin: 0 8px 0 3px;
  }
}

@media (max-width: 1034px) {
  .menu-header-actions-pc-nodisp {
    display: none;
  }
}

@media (max-width: 350px) {
    .footer-nav-tab-sp-menu li {
    padding-right: 12px;
  }
  .footer-nav-tab-sp-menu {
    font-size: 12px;
  }
}

/* sp footer menu 5col */
.footer-nav-menu-area .col-15 {
	width: 20%;
  padding: 3px 5px 0px;
  margin: 0;
}
.col-sp-menu-area {
  padding-top: 17px;
  width: 20%;
}
#footer-nav-menu-sp .col-sp-menu-area {
  margin-top: -79px;
}

@media (max-width: 480px) {
  .footer-nav-menu-area .col-sp-long-txt-area {
    width: 25%;
  }
  .col-sp-menu-area {
    width: 15%;
  }
} 
@media (max-width: 360px) {
  .footer-nav-menu-area .col-15 {
    font-size: 10px;
    padding: 12px 3px;
  }
  .footer-nav-menu-area .col-sp-long-txt-area {
    font-size: 10px;
    padding: 12px 3px;
    width: 27%;
  }
  .footer-nav-menu-area .col-sp-long-txt-area2 {
    font-size: 10px;
    padding: 12px 3px;
    width: 22%;
  }
  .col-sp-menu-area {
    padding-top: 24px;
    width: 11%;
  }
} 
@media (max-width: 299px) {
  .footer-nav-menu-area .col-15 {
    font-size: 8px;
    font-weight: normal;
  }
  .footer-nav-menu-area .col-sp-long-txt-area {
    font-size: 8px;
    font-weight: normal;
  }
  .footer-nav-menu-area .col-sp-long-txt-area2 {
    font-size: 8px;
    font-weight: normal;
  }
} 

.menu-card {
  position: relative;
}

.swiper{
  padding: 5px 0;
}
.swiper-slide {
  text-align: center;
  font-size: 12px;
  width: auto;
}
.swiper-slide a {
  color: #40404b;
}
.swiper-slide .current::before {
  content: '[';
  margin-right: 6px;
  color: #0a50a0;
}
.swiper-slide .current::after {
  content: ']';
  margin-left: 6px;
  color: #0a50a0;
}


/*メニューサービス部分変更*/
.service-menu-category-area{
    padding:0 0 15px 15px;
    display:block;
}
.service-menu-category-area02{
    margin-top:30px;
}
.service-menu-category-area .text-link-underline {
  text-decoration: none;
  color: #ffffff;
  background-image: linear-gradient(90deg, #ffffff, #ffffff);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 1px;
  transition: background-size 0.5s ease-in-out;
  padding-bottom: 2px;
  cursor: none !important;
}
.service-menu-category-area .text-link-underline:hover {
    color: #ffffff;
    text-decoration: none;
    background-size: 100% 1px;
    background-position: left bottom;
    padding-bottom: 2px;
}
.service-menu-category-area .menu-category-bar{
  color: #CFD0E3 !important;
  margin-right:5px;
}
@media screen and (max-width: 767px) { 
.service-menu-category-area{
    padding:0 0 10px;
}
.service-menu-category{
    font-size:12px;
}
.service-menu-category-area02{
    margin-top:20px;
}
}