.contIn1170 {
    width: 1170px;
    max-width: 1170px;
}
@media screen and (max-width: 767px) {
    .contIn1170 {
        width: 100%;
        max-width: 100%;
    }
    footer .contIn1170 {
        margin-left: 20px;
        margin-right: 20px;
    }    
}
.breadcrumb {
    padding: 13px 0px 0px 0px;
    border-bottom: none;
}
@media screen and (max-width: 767px) {
.breadcrumb {
    padding-left: 20px;
    padding-right: 20px;
}
}
.contMainColumn_01 {
    padding-top: 35px;
    background: #fff;
}

.mv {
    position: relative;
    margin-bottom: 20px;
}
.mv img {
    width: 100%;
    height: auto;
}
.mv div {
    position: absolute;
    left: 0;
    bottom: 0;
    background-color: rgba(0, 167, 235, 0.8);
    color: #ffffff;
    min-width: 372px;
    height: 120px;
    padding: 0 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
@media screen and (max-width: 767px) {
    .mv div {
        width: 60%;
        height: auto;
        padding: 10px;
        top: 0;
        min-width:auto;    
    }
}




@media (max-width: 940px) {
    #top.l-top .site-header__inner {
        padding-right: 0;
    }
}



.mv div p {
    font-family: "Lato", sans-serif;
    font-size: 12px;
    margin-bottom: 0;
    line-height: 1em;
    margin-bottom: 10px;
}
.mv div h1 {
    font-size: 32px;
}
@media screen and (max-width: 767px) {
    .mv div h1 {
        font-size: 16px;
    }
}






.solutionNav {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    margin-bottom: 60px;
    list-style-type: none;
    margin-left: 0;
    margin-top: 30px;
}
.solutionNav li {
    /* width: 270px; */
    width: 250px;
    min-height: 49px;
    border-bottom: 1px solid #e5e5e5;
    margin-right: 30px;
    position: relative;
    padding-right: 20px;
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}
@media screen and (max-width: 767px) {
    .solutionNav li {
        width: 100%;
        margin-right: 0;
    }
}
.solutionNav li:nth-child(4n) {
    margin-right: 0;
}
.solutionNav li a {
    /* color: #7d7d7d;
    font-size: 14px; */
    line-height: 1.5em;
    text-decoration: none;
}
.solutionNav li a::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: "";
    display: block;
}
.solutionNav li a::after {
    position: absolute;
    top: 30%;
    right: 0;
    content: "";
    width: 20px;
    height: 20px;
    background-image: url(../../images/icon01.png);
}
.solutionNav::after {
    content: "";
    display: block;
    width: 270px;
}






.tabs {
    margin-top: 50px;
    padding-bottom: 40px;
    background-color: #fff;
    /* box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); */
    width: 100%;
    margin: 0 auto;
}
.tabsInner {
    display: flex;
    flex-wrap: wrap;
}
.tab_item {
    flex: 1;
    height: 58px;
    line-height: 58px; /* PCで縦中央 */
    border: 1px solid #e5e5e5;
    border-right: none;
    background-color: #f3f3f3;
    font-size: 19px;
    text-align: center;
    color: #999999;
    font-weight: bold;
    transition: all 0.2s ease;
    cursor: pointer;
    box-sizing: border-box;
}

/* ▼ スマホ時（767px以下） */
@media screen and (max-width: 767px) {
    .tabsInner {
        display: flex;
        flex-wrap: wrap;
    }

    .tab_item {
        flex: 0 0 50%;
        font-size: 16px;

        /* ▼ 高さ固定を解除 */
        height: auto;
        line-height: normal;
        padding: 12px 6px; /* 好みで調整。上下に余白 */

        /* ▼ 文字を中央寄せ */
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
    }
}

/* PCレイアウト用の最後だけ右ボーダー */
.tab_item:last-of-type {
    border-right: 1px solid #e5e5e5;
}
.tab_item:hover {
    opacity: 0.75;
}
input[name="tab_item"] {
    display: none;
}
.tab_content {
    display: none;
    padding: 30px 0 0 0;
    clear: both;
    overflow: hidden;
}
.tabs:has(#industry:checked) #industry_content {
    display: block;
}
.tabs:has(#challenges:checked) #challenges_content {
    display: block;
}
.tabs:has(#keywords:checked) #keywords_content {
    display: block;
}
.tabs:has(#products:checked) #products_content {
    display: block;
}

.tabs input:checked + .tab_item {
    background-color: #ffffff;
    color: #00a7eb;
    border-bottom: none;
}
.foodIndustry,
.col3,
.col2,
.col2-2 {
  margin-top: 1.5em;
  width: 100%;
  max-width: 1170px;
  margin-left: auto;
  margin-right: auto;
}
/* PC: 2列レイアウト */
.col2,
.col2-2  {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
@media (max-width: 599.98px) {
  .col2,
.col2-2  {
    grid-template-columns: 1fr; /* スマホは1列 */
  }
}
/* カードはカラム幅いっぱいに広げる */
.col2Card {
  width: 100%;        /* 570px はやめて、親にフィットさせる */
  margin-bottom: 0;   /* gapで間隔を管理するので不要 */
}
.col3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3列 */
  gap: 24px;
}
/* タブレット: 2列 */
@media (max-width: 1023.98px) {
  .col3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* スマホ: 1列 */
@media (max-width: 599.98px) {
  .col3 {
    grid-template-columns: 1fr;
  }
}
/* カードはグリッドの幅にフィットさせる */
.col3Card {
  width: 100%;      /* 370px 固定を解除 */
  margin-bottom: 0; /* gap で管理 */
  box-shadow: none; /* これはそのままでもOK */
}

@media (min-width: 768px) {
  .foodIndustry {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3列 */
    column-gap: 30px;
    row-gap: 30px;
  }

  .foodIndustryCard {
    width: auto;          /* 370px 固定を解除 */
    margin-bottom: 0;     /* gapで管理 */
  }
}

/* 767px以下は2列レイアウト（すでに近いことを書いているので整理版） */
@media (max-width: 767px) {
  .foodIndustry {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2列 */
    gap: 12px;
    width: 100%;
  }

  .foodIndustryCard {
    width: auto;
    margin-bottom: 0;
  }

  .foodIndustryCard img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* 擬似要素で幅370pxを作っているものは無効化 */
  .foodIndustry::after {
    content: none;
  }
}
.foodIndustryCard,
.col3Card {
    display: flex;
    flex-direction: column;
    width: 370px;
    box-shadow: 30px 30px 30px 30px #fbfbfb;
    /* border-radius: 10px; */
    position: relative;
    overflow: hidden;
    box-shadow: 0px 5px 15px 0px rgba(230, 230, 230, 0.5);
    margin-bottom: 30px;
    position: relative;
  overflow: hidden;
}
.col2Card {
    display: flex;
    flex-direction: column;
    width: 570px;
    /* border-radius: 10px; */
    position: relative;
    overflow: hidden;
    margin-bottom: 30px;
}
.col3Card {
    box-shadow: none;
}
.col3Card img,
.col2Card img {
    max-width: 100%;
    height: auto;
}

.foodIndustryCard a,
.col3Card a,
.col2Card a {
    background-color: #fff;
    min-height: 70px;
    display: flex;
    align-items: center;
    /*padding: 0 40px 0 20px;/  /* 右の40pxはアイコン用の余白 */
    padding: 0 20px 0 20px;
    margin-bottom: 0;
    flex-direction: row;
    justify-content: flex-start;
    width: 100%;
    /* ★ 重要：positionは static のままにする */
    position: static;
    box-sizing: border-box;

    color: #333333;
    font-size: 16px;
    line-height: 21px;
    font-weight: bold;
    text-decoration: none;
}

.foodIndustryCard a::after,
.col3Card a::after,
.col2Card a::after {
    content: "";
    display: inline-block;
    flex: 0 0 20px;   /* 幅20pxのボックスとして右側に配置 */
    width: 20px;
    height: 20px;
    margin-left: auto;         /* テキストの右端に寄せる */
    background-image: url(../../images/icon02.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.foodIndustryCard a,
.col3Card a,
.col2Card a {
    color: #333333;
    font-size: 16px;
    line-height: 21px;
    font-weight: bold;
    text-decoration: none;
}
.foodIndustryCard a::before,
.col3Card a::before,
.col2Card a::before {
    content: "";
    position: absolute;
    inset: 0;   /* top:0; right:0; bottom:0; left:0; */
    cursor: pointer;
}
.slider-wrap .foodIndustryCard a{
    padding: 0 60px 0 0px;
    width: calc(100% - 15px);
}
.col2-2 .col2Card {
    font-size: 28px;
    font-weight: bold;
}
.col2-2 .col2Card ol {
    font-size: 16px;
    font-weight: normal;
    list-style-type: decimal;
}
.slick-prev:hover, .slick-prev:focus, .slick-next:hover, .slick-next:focus{
    color: #00a7eb;
}
.slick-prev:before, .slick-next:before{
    display: none;
}
@media screen and (max-width: 767px) {
    .foodIndustryCard, .col3Card, .col2Card {
        width: 100%;
    }
}
@media (max-width: 1169.9px) {
  .foodIndustry {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* 2列 */
    gap: 12px; /* カード間の余白 */
    width: 100%;
  }
  .foodIndustryCard, .col3Card{
    width: 100%;
  }
  
} 
@media (max-width: 767px) {
  .foodIndustry {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2列 */
    gap: 12px; /* カード間の余白 */
    width: 100%;
  }

  /* カードの固定幅を解除して、列幅にフィットさせる */
  .foodIndustryCard {
    width: auto;
    margin-bottom: 0; /* gap で管理するので不要 */
  }

  /* 画像がHTMLの width/height 属性に引っ張られないように上書き */
  .foodIndustryCard img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* 擬似要素で幅370pxを作っているものは無効化 */
  .foodIndustry::after {
    content: none;
  }

  /* リンクエリアは横いっぱいに（calc不要） */
  .foodIndustryCard a {
    padding: 0 15px 0 8px;
    min-height: 56px;
    font-size: 14px;
  }

  .foodIndustryCard a::after,
  .col3Card a::after,
  .col2Card a::after {
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
  }
}




.slider-wrap{ position:relative; padding:30px 0; }
.slick-prev, .slick-next{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);  /* とりあえず縦だけ中央寄せ */
  border: none;
  background: #fff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  z-index: 5;
  font-family: "Font Awesome 6 Free";
  color: #03a8eb;
  font-size: 20px;
}
.slick-prev {
  left: 0;                          /* 要素はコンテナ内に収める */
  transform: translate(-60%, -50%); /* 見た目だけ少し外へ */
}

.slick-next {
  right: 0;
  transform: translate(60%, -50%);
}
@media (min-width: 1270px) {
  .slick-prev {
    transform: translate(-100%, -50%); /* ← しっかり外へ */
  }
  .slick-next {
    transform: translate(100%, -50%);
  }
}
.progress-wrap{
    height:8px; background:#eeeeee; margin-top:18px; overflow:hidden;
}
.progress-bar{
    height:100%; width:0%; background:#333; transition:width .25s ease;
}
/* Slickのスライド本体 */
.slick-slider-js .slide {
  padding: 0 6px;
  box-sizing: border-box;
}

/* カード部分のスタイル */
.slick-slider-js .slide .foodIndustryCard {
  display: flex;
  flex-direction: column;
  width: 270px;
  box-shadow: unset;
  background: #fff;
  position: relative;
   padding: 0;
}

.slick-slider-js .slide .foodIndustryCard img {
  width: 100%;
  display: block;
}
.slick-slider-js .slide .foodIndustryCard.foodIndustryCardTitle {
    padding: 0 40px 0 0;
}
.slick-slider-js .slide .foodIndustryCardTitle::after {
    right: 0;
}
.progress-wrap {
  position: relative;
  height: 8px;
  margin-top: 20px;
}

.scroll-track {
  width: 100%;
  height: 8px;
  background: #eeeeee;
  position: relative;
  /* border-radius: 2px; */
}

.scroll-thumb {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 10px;

  background: #333333;
  /* border-radius: 5px; */
  cursor: grab;
  transition: left 0.3s ease;
}

/* スライダー内のカードはレスポンシブに */
.slick-slider-js .slide {
  padding: 0 10px;
  box-sizing: border-box;
}

.slick-slider-js .slide .foodIndustryCard {
  display: flex;
  flex-direction: column;
  width: 100%;          /* 270px 固定をやめる */
  max-width: 270px;     /* 必要なら最大幅だけ制限 */
  margin: 0 auto;
  box-shadow: unset;
  background: #fff;
  position: relative;
}

.slick-slider-js .slide .foodIndustryCard img {
  width: 100%;
  height: auto;
  display: block;
}

/* タイトル行（p）の余白調整 */
.slick-slider-js .slide .foodIndustryCardTitle {
  margin: 0;
}

/* スライダーのタイトルリンク専用スタイル */
.slick-slider-js .slide .foodIndustryCardTitle a {
  display: block;
  position: relative;          /* ★ 追加：これが超重要 */
  background-color: #fff;
  padding: 10px 24px 10px 0px; /* 右はアイコンの余白 */
  min-height: auto;
  width: 100%;
  box-sizing: border-box;
  color: #333333;
  font-size: 16px;
  line-height: 1.4;
  font-weight: bold;
  text-decoration: none;
}

/* アイコンの位置をスライダー用に再定義 */
.slick-slider-js .slide .foodIndustryCardTitle a::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  top: 50%;
  right: 5px;
  transform: translateY(-50%);
  background-image: url(../../images/icon02.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* 説明テキストは普通の段落として */
.slick-slider-js .slide .foodIndustryCard > p:not(.foodIndustryCardTitle) {
  padding: 10px 0px 12px;
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}

.contIn1170 #VcArea-MainColum .linkBtn01 {
    text-align: center;
    margin-bottom: 60px;
}
.contIn1170 #VcArea-MainColum .linkBtn01 a.link-more {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 370px;
    height: 50px;
    color: rgb(255, 255, 255);
    background: var(--c-primary);
    text-decoration: none;
    overflow: hidden;
    border-radius: 0px;
    transition: background-color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.contIn1170 #VcArea-MainColum .linkBtn01 a.link-more:hover {
    background: rgb(51, 51, 51);
}

.contIn1170 #VcArea-MainColum .linkBtn01 .btn {
  position: relative;
  display: inline-flex;
    align-items: center;
    justify-content: center;
  width: 370px;
  height: 50px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  letter-spacing: 0.1em;
  margin-bottom: 60px;
  padding: 0;
}
.linkBtn01 .btn.btn-flat {
  overflow: hidden;
  /* padding: 1.5rem 6rem; */
  background: #0ea5e9;
  border-radius: 0;
}
.linkBtn01 .btn.btn-flat a {
  position: relative;
  display: inline-block;
  color: #fff;
  text-decoration: none;
  z-index: 1;
}
.linkBtn01 .btn.btn-flat::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 150%;
  height: 1000%;
  content: "";
  /* -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
  -webkit-transform: translateX(-98%) translateY(-25%) rotate(45deg);
  transform: translateX(65%) translateY(-25%) rotate(135deg); */
}
.linkBtn01 .btn.btn-flat:hover::before {
  /* -webkit-transform: translateX(-9%) translateY(-25%) rotate(45deg);
  transform: translateX(-9%) translateY(-25%) rotate(135deg); */
}
.btn-flat:hover:before {
    /* -webkit-transform: translateX(-9%) translateY(-25%) rotate(45deg);
    transform: translateX(-9%) translateY(-25%) rotate(4135deg); */
}


/* ===============================
   右下めくれ → 全面ふわっと黒
   =============================== */

.contIn1170 #VcArea-MainColum .linkBtn01 {
  text-align: center;
  margin-bottom: 60px;
}

/* ボタン本体 */
.contIn1170 #VcArea-MainColum .linkBtn01 .btn.btn-flat {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 370px;
  height: 50px;
  overflow: hidden;
  background: #0ea5e9;
  border: none;
  border-radius: 0;
  cursor: pointer;

  /* 動きのパラメータ */
  /* --peel-time: .5s;
  --peel-portion: .1;
  --peel-in: .40s;
  --peel-out: .18s; */
    position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  width:170px; height:50px;
  background:var(--c-primary);
  color:#fff; text-decoration:none;
  overflow:hidden; border-radius:0;
  transition: background-color .35s cubic-bezier(.4,0,.2,1);
}
.contIn1170 #VcArea-MainColum .linkBtn01 .btn.btn-flat::after {
    content: "";
    position: absolute;
    right: 0px;
    bottom: 0px;
    width: 0px;
    height: 0px;
    pointer-events: none;
    border-left: 10px solid transparent;
    border-bottom: 10px solid rgb(51, 51, 51);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s;
}
.contIn1170 #VcArea-MainColum .linkBtn01 .btn.btn-flat:hover {
    background: rgb(51, 51, 51);
}
/* テキスト */
.contIn1170 #VcArea-MainColum .linkBtn01 .btn.btn-flat > a {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.05em;

      position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

/* ▼右下の三角 */
.contIn1170 #VcArea-MainColum .linkBtn01 .btn.btn-flat::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 140%;
  height: 140%;
  /* transform: translate(28%, 28%) rotate(135deg);
  transition: transform var(--peel-out) ease; 戻るときの速度 */
  z-index: 1;
}

/* hover中：めくれアニメーション（進む時はゆっくり） */
.contIn1170 #VcArea-MainColum .linkBtn01 .btn.btn-flat:hover::before {
  /* transform: translate(10%, 10%) rotate(135deg);
  transition-duration: var(--peel-in); */
}

/* ▼全面黒フェード（ふわっと） */
/* .contIn1170 #VcArea-MainColum .linkBtn01 .btn.btn-flat::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #333;
  opacity: 0;
  transition: opacity .45s ease;
  transition-delay: calc(var(--peel-time) * var(--peel-portion));
  z-index: 2;
  pointer-events: none;
}
.contIn1170 #VcArea-MainColum .linkBtn01 .btn.btn-flat:hover::after {
  opacity: 1;
} */

.section-h--row2 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 12px 0 18px;
    width: 100%;
    margin-bottom: 30px;
    font-size: 24px;
    padding-bottom: 8px;
    border-bottom: none;
    position: relative;
    background-image: linear-gradient(#00a7eb, #00a7eb), /* 40px の水色（最前面） */ linear-gradient(#333333, #333333), /* 80px の黒（中面） */ linear-gradient(#dddddd, #dddddd);
    background-repeat: no-repeat;
    background-position: left bottom, left bottom, left bottom;
    background-size: 40px 2px, 80px 2px, 100% 2px;
    padding-left: 0;
}
#VcArea-MainColum .section-h--row2 h2 {
    /* margin: 0; */
    /* font-size: 36px; */
    /* line-height: 1.2; */
    font-size: 24px;
    font-weight: 500;
    padding: 0;
    margin-bottom: 0;
    /* color: #0f172a; */
    /* padding: 0px 0px 0px 0px; */
}
.section-h--row2 > .link-more {
    font-size: 16px;
}













.CorpParts17-1,
.CorpParts17-2 {
    margin-bottom: 30px;
}
.CorpParts17-1-inner,
.CorpParts21-1 {
    display: flex;
    justify-content: space-between;
}
.CorpParts17-1-right {
    width: 30%;
}
.CorpParts17-1-right img {
    max-width: 100%;
    height: auto;
}
.CorpParts17-1-left {
    width: calc(70% - 20px);
}
.CorpParts21-1-left {
    width: 570px;
}
@media screen and (max-width: 767px) {
    .CorpParts17-1-inner {
        display: block;
    }
    .CorpParts17-1-right,
    .CorpParts17-1-left {
        width: 100%;
        margin-bottom: 20px;
    }
}
#VcArea-MainColum .CorpParts17-1 .h2-01,
#VcArea-MainColum .CorpParts17-2 .h2-01,
#VcArea-MainColum .CorpParts21-1-left .h2-01 {
    border-bottom: none;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.6em;
    padding: 0;
    margin-bottom: 40px;
}
#VcArea-MainColum .CorpParts17-1 .h2-01,
#VcArea-MainColum .CorpParts17-2 .h2-01 {
    text-align: center;
    border-bottom: 2px solid #dddddd;
}
.CorpParts21-1-left dl {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    font-size: 15px;
}
.CorpParts21-1-left dt {
    width: 3em;
    font-weight: bold;
}
.CorpParts21-1-left dd {
    width: calc(100% - 3em);

}
.CorpParts21-1-left p {
    text-align: left;
    margin-bottom: 45px;
}
.CorpParts21-1-left p img {
    margin-left: 0;
}
.CorpParts17-1-left ul {
    list-style-type: disc;
    list-style-position: inside;
}
.CorpParts21-1-right {
    width: 570px;
}
.CorpParts17-2 img {
    /*width: 100%;*/
    height: auto;
}
@media screen and (max-width: 767px) {
    #VcArea-MainColum .CorpParts21-1-left .h2-01 {
        border-bottom: none;
        margin-bottom: 10px;
        font-size: 20px;
    }
    #VcArea-MainColum .CorpParts21-1-left p {
        text-align: center;
        margin-top: 15px;
        margin-bottom: 15px;
    }
    .CorpParts21-1-left p img {
        width: 100%;
        height: auto;
    }
    .CorpParts21-1 {
        display: block;
    }
    .CorpParts21-1-left,
    .CorpParts21-1-right {
        width: 100%;
    }
    .CorpParts21-1-left {
        margin-bottom: 30px;
    }
}
.CorpParts21-1-box {
    position: relative;
    padding: 20px 110px;
    margin-top: 60px;
    top: 0;
    margin-bottom: 60px;
}
.CorpParts21-1-box p {
    font-size: 24px;
    line-height: 46px;
    font-weight: bold;
}
.CorpParts21-1-box:before, .CorpParts21-1-box:after{
    position: absolute;
    top: 0;
    content:'';
    width: 15px;
    height: 100%;
    display: inline-block;
    box-sizing: border-box;
}
.CorpParts21-1-box:before{
    border-left: solid 1px #00a7eb;
    border-top: solid 1px #00a7eb;
    border-bottom: solid 1px #00a7eb;
    left: 0;
}
.CorpParts21-1-box:after{
    border-top: solid 1px #00a7eb;
    border-right: solid 1px #00a7eb;
    border-bottom: solid 1px #00a7eb;
    right: 0;
}
.CorpParts21-1-box p {
    margin: 0;
    padding: 0;
}
@media screen and (max-width: 767px) {
    .CorpParts21-1-box {
        position: relative;
        padding: 20px 15px;
        margin-top: 60px;
        top: 0;
        margin-bottom: 30px;
    }
    .CorpParts21-1-box p {
        font-size: 18px;
        line-height: 1.6em;
    }
}


#VcArea-MainColum h2.CorpParts21-1-overview {
    font-size: 28px;
    border-bottom: 2px solid #dddddd;
    position: relative;
    padding-left: 0;
    margin-left: 0;
}
h2.CorpParts21-1-overview::before {
    content: "";
    display: block;
    border-bottom: 2px solid #00a7eb;
    width: 40px;
    position: absolute;
    left: 0;
    bottom: -2px;
}
h2.CorpParts21-1-overview::after {
    content: "";
    display: block;
    border-bottom: 2px solid #333333;
    width: 40px;
    position: absolute;
    left: 40px;
}
#VcArea-MainColum h3.CorpParts21-1-problem {
    font-size: 20px;
    border-bottom: 1px solid #333333;
    font-weight: bold;
    padding-bottom: 20px;
    margin-bottom: 30px;
}
ul.CorpParts21-1-problem-ul {
    list-style-type: disc;
    list-style-position: inside;
    margin-bottom: 60px;
}
.CorpParts21-1-3row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 60px;
}
.CorpParts21-1-3row > div {
    width: 310px;
    padding: 30px;
    background-color: #f6f6f6;
}
@media screen and (max-width: 767px) {
    #VcArea-MainColum h2.CorpParts21-1-overview {
        font-size: 20px;
    }
    #VcArea-MainColum h3.CorpParts21-1-problem {
        font-size: 18px;
        padding-bottom: 10px;
    }
    .CorpParts21-1-3row {
        display: block;
    }
    .CorpParts21-1-3row > div {
        width: calc(100% - 60px);
        margin-bottom: 30px;
    }
    ul.CorpParts21-1-problem-ul {
        margin-bottom: 30px;
    }
}
.CorpParts21-1-3row > div h4 {
    font-weight: bold;
    font-size: 16px;
    line-height: 28px;
    margin-bottom: 20px;
    letter-spacing: 0.1em;
}
.CorpParts21-1-h4 {
    border-left: 4px solid #cccccc;
    padding-left: 16px;
    font-size: 19px;
    line-height: 31px;
    margin-bottom: 20px;
    margin-top: 40px;
    font-weight: 500;
}
.CorpParts21-1-text {
    border: 1px solid #e5e5e5;
    height: 378px;
    max-height: 378px;
    background-color: #fcfcfc;
    margin-bottom: 50px;
}
.CorpParts21-1-text h3 {
    font-size: 21px;
    line-height: 80px;
    font-weight: bold;
    text-align: center;
    background-color: #fcfcfc;
}
.CorpParts21-1-text > div {
    padding: 0 40px 30px;
    height: 268px;
    max-height: 268px;
    overflow-y: auto;
    background-color: #fcfcfc;
}
.CorpParts21-1-text > div > p {
    background-color: #fcfcfc;
}
h4.CorpParts21-1-h4-02 {
    font-size: 16px;
    margin-left: 35px;
    font-weight: bold;
    position: relative;
    margin-bottom: 45px;
}
h4.CorpParts21-1-h4-02::before {
    content: "";
    display: block;
    width: 30px;
    border-top: 2px solid #a0a0a0;
    position: absolute;
    top: 50%;
    left: -35px;
}
dl.caseCompanyProfile {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    font-size: 15px;
    border-bottom: 1px solid #dddddd;
}
.caseCompanyProfile dt {
    width: 25%;
    font-weight: bold;
    border-top: 1px solid #dddddd;
    padding-top: 30px;
    padding-bottom: 30px;
}
.caseCompanyProfile dd {
    width: 75%;
    border-top: 1px solid #dddddd;
    padding-top: 30px;
    padding-bottom: 30px;
}
.caseCompanyProfile dd a {
    position: relative;
    padding-bottom: 8px;
    border-bottom: 1px solid #999999;
    text-decoration: none;
}
.caseCompanyProfile dd a::after {
    position: absolute;
    content: "";
    top: 30%;
    right: -20px;
    background-image: url(../../images/ex-link.png);
    width: 11px;
    height: 11px;
}
@media screen and (max-width: 767px) {
    dl.caseCompanyProfile {
        display: block;
    }
    .caseCompanyProfile dt,
    .caseCompanyProfile dd {
        width: 100%;
        padding-top: 15px;
        padding-bottom: 15px;
    }
}
.companyName {
    font-size: 18px;
    margin-bottom: 20px;
    font-weight: bold;
}

.relatedCard {
    color: #333333;
    font-size: 18px;
    line-height: 21px;
    font-weight: bold;
    line-height: 70px;
    margin-bottom: 0;
}
.case,
.column {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
    margin-bottom: 30px;
}
.related {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 30px;
    margin-bottom: 30px;
}
.caseCard,
.relatedCard,
.columnCard {
    width: 100%;
    margin-bottom: 0;
    position: relative;   /* ★ ここを追加（／維持） */
    overflow: hidden;
}
.caseCard img,
.relatedCard img,
.columnCard img {
    width: 100%;
    height: auto;
    display: block;
}

/* .caseCard p.date,
.columnCard p.date {
    text-align: right;
    margin-bottom: 0;
} */
/* .caseCardTitle {
    background-color: #fff;
    height: 70px;
    display: flex;
    align-items: center;
    position: relative;
    padding: 0 60px 0 0;
    margin-bottom: 0;
} */
#VcArea-MainColum .caseCard a,
#VcArea-MainColum .relatedCard a,
#VcArea-MainColum .columnCard a {
    color: #333333;
    font-size: 18px;
    line-height: 21px;
    font-weight: bold;
    margin-top: 25px;
    margin-bottom: 25px;
    display: flex;             /* ← block から flex に */
    align-items: center;
    /*padding: 0 40px 0 0; */      /* 右にアイコン分の余白 */
    text-decoration: none;
    position: static;          /* ★ ここ重要：relative をやめて static に */
    box-sizing: border-box;
}
.relatedCard p {
    font-size: 16px;
    margin-block-end: 15px;
    font-weight: normal;
    line-height: 1.6em;
}
.card-head,.relatedCard p.card-head{
    font-size: 18px;
    line-height: 21px;
    font-weight: bold;
    margin-top: 1em;
}
.caseCard a::before,
.relatedCard a::before,
.columnCard a::before {
    content: "";
    position: absolute;
    inset: 0;      /* top:0; right:0; bottom:0; left:0; */
    z-index: 1;
    cursor: pointer;
}
.caseCard a::after,
.relatedCard a::after,
.columnCard a::after {
    content: "";
    display: inline-block;
    flex: 0 0 20px;             /* 幅20pxのボックスを右側に確保 */
    width: 20px;
    height: 20px;
    margin-left: auto;          /* テキストを左、アイコンを右に押し出す */
    background-image: url(../../images/icon02.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 2;                 /* ::before の上に表示 */
}

.caseText,
.columnText {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.caseTag span,
.columnTag span {
    display: inline-block;
    font-size: 10px;
    padding: 8px 20px;
    background-color: #00a7eb;
    margin-right: 5px;
    color: #fff;
    line-height: 1em;
}
@media screen and (max-width: 767px) {
    .case,
    .related,
    .column {
        display: block;
    }
    .caseCard,
    .relatedCard,
    .columnCard {
        width: 100%;
        margin-bottom: 30px;
    }

    #VcArea-MainColum .caseCard a,
    #VcArea-MainColum .relatedCard a,
    #VcArea-MainColum .columnCard a {
        padding-right: 30px;
        font-size: 16px;
    }

    .caseCard a::after,
    .relatedCard a::after,
    .columnCard a::after {
        flex: 0 0 16px;
        width: 16px;
        height: 16px;
        margin-left: auto;
    }

    .relatedCard p {
        font-size: 14px;
    }
}



.case02{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 2em;
  display: grid;
  gap: 24px;            /* カード間隔 */
  grid-template-columns: repeat(3, 1fr);  /* PC: 3列想定。必要なら4にも可 */
  margin-top: 2em;
}
.case02-01 {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 2em;
}

.caseCard02 {
    display: flex;
    flex-direction: column;
    width: 370px;
    position: relative;
    overflow: hidden;
    margin-bottom: 30px;
  display: flex;
  flex-direction: column;
  width: 100%;
  position: relative;
  overflow: hidden;
  margin: 0;            /* 下マージンはgridのgapで管理 */    
}
.caseCard02-01 {
    display: flex;
    flex-direction: column;
    width: 570px;
    position: relative;
    overflow: hidden;
    margin-bottom: 30px;
}
.case02::after {
    content: "";
    display: block;
    width: 100%;
}
.case02-01::after {
    content: "";
    display: block;
    width: 570px;
}
.caseCard02 img,
.caseCard02-01 img {
    /*width: 100%;*/
    display: block;
}


/* タイトルの a（テキスト＋右アイコン用） */
.caseCard02 .card-head a,
.caseCard02-01 .card-head a {
  display: flex;                   /* 左：文字／右：アイコン */
  align-items: center;
  justify-content: space-between;  /* 余白を間に取る */
  width: 100%;
  /* position: relative; は付けない！ */
  padding: 0;
  color: #333;
  font-size: 18px;
  font-weight: bold;
  text-decoration: none;
}

/* カード全体を覆う透明レイヤー（リンク&指カーソル用） */
.caseCard02 .card-head a::before,
.caseCard02-01 .card-head a::before {
  content: "";
  position: absolute;
  inset: 0;            /* top:0; right:0; bottom:0; left:0 と同じ */
  z-index: 1;
  cursor: pointer;     /* この範囲が指マークになる */
}

/* アイコン（文字の右端） */
.caseCard02 .card-head a::after,
.caseCard02-01 .card-head a::after {
  content: "";
  width: 16px;
  height: 16px;
  background: url(../../images/icon02.png) center/contain no-repeat;
  flex-shrink: 0;
  margin-left: 10px;
}
/* --- ブレークポイント --- */
/* タブレット: 2列 */
@media (max-width: 1023.98px) {
  .case02 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* スマホ: 1列 */
@media (max-width: 599.98px) {
  .case02 {
    grid-template-columns: 1fr;
  }
}

.commonLocalNav {
    box-shadow: 0px 5px 15px 0px rgba(230, 230, 230, 0.5);
    margin-bottom: 100px;
}
#VcArea-MainColum .commonLocalNav h2 {
    color: #fff;
    background-color: #00a7eb;
    font-weight: bold;
    font-size: 17px;
    line-height: 32px;
    padding: 26px 27px;
    margin-bottom: 0;
}
.commonLocalNav div {
    padding: 5px 30px 30px;
}
.commonLocalNav div ul {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
}
.commonLocalNav div ul li {
    border-bottom: 1px solid #dddddd;
    font-size: 12px;
    line-height: 59px;
    width: 255px;
    margin-right: 30px;
    position: relative;
}
@media screen and (max-width: 767px) {
    .commonLocalNav div ul li {
        margin-right: 0;
    }
    .commonLocalNav {
        margin-bottom: 50px;
    }
}
.commonLocalNav div ul li:nth-child(4n) {
    margin-right: 0;
}
.commonLocalNav div ul li a::after {
    content: "";
    position: absolute;
    background-image: url(../../images/icon04.png);
    width: 6px;
    height: 10px;
    top: 50%;
    right: 0;
    display: block;
}
.commonLocalNav div ul li a {
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
}
.commonContact {
    width: 100%;
    height: 260px;
    background-image: url(../../images/commonContactBg.png);
    text-align: center;
    margin-bottom: 105px;
}
#VcArea-Footer .commonContact {
    margin-bottom: 0;
    background-size: cover;
    display: block;
    position: relative;
    z-index: 2;
    clear: both;
}
@media screen and (max-width: 767px) {
    .commonContact {
        margin-bottom: 50px;
    }
}
#VcArea-MainColum .commonContact h2,
#VcArea-Footer .commonContact h2 {
    font-size: 19px;
    font-weight: bold;
    margin: 0;
    padding: 0;
    padding-top: 30px;
    margin-bottom: 30px;
}
.commonContact h2 span {
    font-size: 9px;
    line-height: 9px;
    color: #00a7eb;
    display: block;
}
.contIn1170 #VcArea-MainColum .linkBtn02,
#VcArea-Footer .linkBtn02 {
    text-align: center;
    margin-bottom: 60px;
}
.contIn1170 #VcArea-MainColum .linkBtn02 .btn,
#VcArea-Footer .linkBtn02 .btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 370px;
    height: 80px;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    text-align: center;
    vertical-align: middle;
    letter-spacing: 0.1em;
    margin-bottom: 60px;
    padding: 0;
}
.linkBtn02 .btn.btn-flat {
    overflow: hidden;
    background: #0ea5e9;
    border-radius: 0;
}
.linkBtn02 .btn.btn-flat a {
    position: relative;
    display: inline-block;
    color: #fff;
    text-decoration: none;
    z-index: 1;
}
.linkBtn02 .btn.btn-flat::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 150%;
    height: 1000%;
    content: "";
    /* background: #333333; */
    /* -webkit-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
    -webkit-transform: translateX(-98%) translateY(-25%) rotate(45deg);
    transform: translateX(89%) translateY(-25%) rotate(135deg); */
}
.linkBtn02 .btn.btn-flat:hover::before {
    /* -webkit-transform: translateX(-9%) translateY(-25%) rotate(45deg);
    transform: translateX(-9%) translateY(-25%) rotate(135deg); */
}
.contIn1170 #VcArea-MainColum .linkBtn02  {
    text-align: center;
    margin-bottom: 60px;
}
.contIn1170 #VcArea-MainColum .linkBtn02  a.link-more {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 370px;
    height: 80px;
    color: rgb(255, 255, 255);
    background: var(--c-primary);
    text-decoration: none;
    overflow: hidden;
    border-radius: 0px;
    /* transition: background-color 0.35s cubic-bezier(0.4, 0, 0.2, 1); */
}
.contIn1170 #VcArea-MainColum .linkBtn02  a.link-more:hover {
    /* background: rgb(51, 51, 51); */
    background: #333333;
}

.contIn1170 #VcArea-MainColum .linkBtn02  .btn {
  position: relative;
  display: inline-flex;
    align-items: center;
    justify-content: center;
  width: 370px;
  height: 50px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  letter-spacing: 0.1em;
  margin-bottom: 60px;
  padding: 0;
}
.linkBtn02  .btn.btn-flat {
  overflow: hidden;
  /* padding: 1.5rem 6rem; */
  background: #0ea5e9;
  border-radius: 0;
}
.linkBtn02  .btn.btn-flat a {
  position: relative;
  display: inline-block;
  color: #fff;
  text-decoration: none;
  z-index: 1;
}
.linkBtn02  .btn.btn-flat::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 150%;
  height: 1000%;
  content: "";
  /* background: #333333; */
  /* -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
  -webkit-transform: translateX(-98%) translateY(-25%) rotate(45deg);
  transform: translateX(65%) translateY(-25%) rotate(135deg); */
}
.linkBtn02  .btn.btn-flat:hover::before {
  /* -webkit-transform: translateX(-9%) translateY(-25%) rotate(45deg);
  transform: translateX(-9%) translateY(-25%) rotate(135deg); */
}
.btn-flat:hover:before {
    /* -webkit-transform: translateX(-9%) translateY(-25%) rotate(45deg);
    transform: translateX(-9%) translateY(-25%) rotate(4135deg); */
}


/* ===============================
   右下めくれ → 全面ふわっと黒
   =============================== */

.contIn1170 #VcArea-MainColum .linkBtn02,
#VcArea-Footer .linkBtn02 {
  text-align: center;
  margin-bottom: 60px;
}

/* ボタン本体 */
.contIn1170 #VcArea-MainColum .linkBtn02  .btn.btn-flat,
#VcArea-Footer .linkBtn02  .btn.btn-flat {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 370px;
  height: 50px;
  overflow: hidden;
  background: #0ea5e9;
  border: none;
  border-radius: 0;
  cursor: pointer;

  /* 動きのパラメータ */
  /* --peel-time: .5s;
  --peel-portion: .1;
  --peel-in: .40s;
  --peel-out: .18s; */
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* width: 170px;
    height: 50px; */
    background: var(--c-primary);
    color: #fff;
    text-decoration: none;
    overflow: hidden;
    border-radius: 0;
    transition: background-color .35s cubic-bezier(.4, 0, .2, 1);
}
.contIn1170 #VcArea-MainColum .linkBtn02  .btn.btn-flat:hover,
#VcArea-Footer .linkBtn02  .btn.btn-flat:hover,
.contIn1170 #VcArea-MainColum .CorpParts32-1 .linkBtn02 .btn.btn-flat:hover {
    background: rgb(51, 51, 51);
}
/* テキスト */
.contIn1170 #VcArea-MainColum .linkBtn02  .btn.btn-flat > a,
#VcArea-Footer .linkBtn02  .btn.btn-flat > a {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.05em;

  position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

/* ▼右下の三角 */
.contIn1170 #VcArea-MainColum .linkBtn02  .btn.btn-flat::before,
#VcArea-Footer .linkBtn02  .btn.btn-flat::before {
  /* content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 140%;
    height: 140%;
    z-index: 1; */
}

/* hover中：めくれアニメーション（進む時はゆっくり） */
.contIn1170 #VcArea-MainColum .linkBtn02  .btn.btn-flat:hover::before,
#VcArea-Footer .linkBtn02  .btn.btn-flat:hover::before {
  /* transform: translate(10%, 10%) rotate(135deg);
  transition-duration: var(--peel-in); */
}

/* ▼全面黒フェード（ふわっと） */
.contIn1170 #VcArea-MainColum .linkBtn02  .btn.btn-flat::after,
#VcArea-Footer .linkBtn02  .btn.btn-flat::after {
    content: "";
    position: absolute;
    right: 0px;
    bottom: 0px;
    width: 0px;
    height: 0px;
    pointer-events: none;
    border-left: 10px solid transparent;
    border-bottom: 10px solid rgb(51, 51, 51);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s;
}
.contIn1170 #VcArea-MainColum .linkBtn02  .btn.btn-flat:hover::after,
#VcArea-Footer .linkBtn02  .btn.btn-flat:hover::after {
  opacity: 1;
}
@media screen and (max-width: 767px) {
    .commonContact p {
        padding: 0 10px;
    }
    .contIn1170 #VcArea-MainColum .linkBtn02 .btn.btn-flat,
    #VcArea-Footer .linkBtn02 .btn.btn-flat {
        width: 80%;
        height: 50px;
        margin: 0 auto;
    }
}

.btnCol4 {
    display: flex;
    justify-content: space-between;
}
.contIn1170 #VcArea-MainColum .btnCol4 .linkBtn01 {
    width: calc((100% - 60px) / 4);
    margin-right: 20px;
}
@media screen and (max-width: 767px) {
    .btnCol4 {
        display: block;
    }
    .contIn1170 #VcArea-MainColum .btnCol4 .linkBtn01 {
        width: 100%;
        margin-bottom: 20px;
    }
}
.contIn1170 #VcArea-MainColum .btnCol4 .linkBtn01 .btn.btn-flat {
    width: 100%;
    margin-bottom: 30px;
    background: var(--c-primary);
}
.contIn1170 #VcArea-MainColum .linkBtn01 .btn.btn-flat:hover {
    background: rgb(51, 51, 51);
}
.btnCol4 .linkBtn01:last-of-type {
    margin-right: 0;
}

.CorpParts13-1 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 60px;
}
.CorpParts13-1 p a{
    color: #FFF;
    display: block;;
}
.CorpParts13-1 > div {
    width: calc(50% - 15px);
    position: relative;
}
@media screen and (max-width: 767px) {
    .CorpParts13-1 {
        display: block;
    }
    .CorpParts13-1 > div {
        width: 100%;
        margin-bottom: 20px;
    }
}
.CorpParts13-1 img {
    width: 100%;
    height: auto;
}
.CorpParts13-1 p {
    width: 70%;
    height: 50px;
    text-align: right;
    line-height: 50px;
    position: absolute;
    padding-right: 1em;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 167, 235, 0.8);
    color: #ffffff;
    font-weight: 500;
    margin-bottom: 0;
}

.CorpParts16-1 {
    text-align: center;
    margin-bottom: 30px;
    width: 330px;
    margin: 0 auto 30px;
    border: 1px solid #00a7eb;
    padding: 20px;
    position: relative;
}
.CorpParts16-1 a {
    width: 500px;
    display: inline;
    margin: 0 auto;
    text-decoration: none;
}
@media screen and (max-width: 767px) {
    .CorpParts16-1,
    .CorpParts16-1 a {
        width: calc(100% - 40px);
    }
}
.CorpParts16-1 a::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
.CorpParts16-1 img {
    vertical-align: middle;
    display: inline;
    width: 1em;
    height: auto;
    padding-right: 1em;
}
.CorpParts16-1 a::after {
    display: inline-block;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f35d";
    font-size: 1em;
    color: #00a7eb;
    position: absolute;
    background-color: transparent;
    right: 1em;
    top: 30%;
    width: 1em;
    height: auto;
}

.CorpParts25-1 {
    margin-bottom: 60px;
}
.CorpParts25-1 .date {
    font-size: 12px;
    margin-bottom: 0;
}
.CorpParts25-1 .writer {
    font-size: 16px;
    margin-bottom: 30px;
    font-weight: bold;
}
.CorpParts25-1 .photo {
    text-align: center;
}
.CorpParts25-1 .photo img {
    margin: 0 auto 34px;
}

.CorpParts19-1 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
}
.CorpParts19-1 img {
    /*width: calc(40% - 20px);*/
    margin-right: 20px;
}
.CorpParts19-1 div {
    width: 60%;
}
@media screen and (max-width: 767px) {
    .CorpParts19-1 {
        display: block;
    }
    .CorpParts19-1 img {
        width: 100%;
        margin-right: 0;
    }
    .CorpParts19-1 div {
        width: 100%;
    }
}
.CorpParts19-1 div h4,
.CorpParts19-1 div ol {
    font-weight: bold;
    margin-bottom: 20px;
}
.CorpParts19-1 div ol {
    list-style-type: decimal;
    list-style-position: outside;
    padding-left: 1.5em;
}
.CorpParts19-1 div ol li span {
    font-weight: normal;
}

.CorpParts20-1,
.CorpParts20-3 {
    display: flex;
    justify-content: space-between;
    margin-top: 30px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}
.CorpParts20-1 div {
    width: 370px;
    margin-bottom: 30px;
}
.CorpParts20-3 div {
    width: 270px;
    margin-bottom: 30px;
}
.CorpParts20-3 div p a {
    text-decoration: none;
    display: block;
    position: relative;
    text-align: center;
}
.CorpParts20-3 div p a::after {
    position: absolute !important;
    content: "";
    width: 20px !important;
    height: 20px;
    background-image: url(../../images/icon02.png);
    top: 22%;
    right: 20px;
    position: relative;
    width: 100%;
    z-index: 2;
}
@media screen and (max-width: 767px) {
    .CorpParts20-1,
    .CorpParts20-3 {
        display: block;
    }
    .CorpParts20-1 div,
    .CorpParts20-3 div {
        width: 100%;
    }
}
.CorpParts20-1 div h4,
.CorpParts20-3 div h4 {
    border-left: 3px solid #00a7eb;
    font-size: 1.2em;
    font-weight: bold;
    padding-left: 10px;
    margin-bottom: 20px;
}
.CorpParts20-1 div img,
.CorpParts20-3 div img {
    /* width: 100%;
    height: auto; */
    margin-bottom: 20px;
}
.CorpParts20-1 div p span {
    font-size: 12px;
    line-height: 12px;
}

.CorpParts20-2 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
    flex-wrap: wrap;
    margin-top: 30px;
}
.CorpParts20-2 div {
    width: 570px;
    margin-bottom: 30px;
}
@media screen and (min-width: 768px) and (max-width: 1169px) {
    .CorpParts20-2 {
        justify-content: flex-start; /* space-between だと隙間が広がりすぎるので */
    }

    .CorpParts20-2 div {
        width: calc((100% - 30px) / 2); /* 2カラム＋間30pxくらいを想定 */
        margin-right: 30px;
    }

    /* 行末の右マージンを消したい場合はこんなのもあり
    .CorpParts20-2 div:nth-child(2n) {
        margin-right: 0;
    }
    */
}
@media screen and (max-width: 767px) {
    .CorpParts20-2 {
        display: block;
    }
    .CorpParts20-2 div {
        width: 100%;
    }
}
.CorpParts20-2 div h4 {
    border-left: 3px solid #00a7eb;
    font-size: 1.2em;
    font-weight: bold;
    padding-left: 10px;
    margin-bottom: 15px;
}
.CorpParts20-2 div img {
    /* width: 100%;
    height: auto; */
    margin-top: 1.5em;
    margin-bottom: 1em;
}
.CorpParts20-2 div p span {
    font-size: 12px;
    line-height: 12px;
}
@media screen and (max-width: 767px) {
    .CorpParts20-1 div,
    .CorpParts20-2 div {
        width: 100%;
    }
}
.CorpParts23-1 a {
    text-decoration: underline;
    position: relative;
    display: inline-block; /* ← 高さを持たせる */
}
.CorpParts23-1 a::after {
    content: "";
    width: 6px;
    height: 10px;
    background-image: url(../../images/icon04.png);
    background-size: contain;
    background-repeat: no-repeat;

    position: absolute;
    right: -15px;
    top: 50%;              /* 高さの中央に配置 */
    transform: translateY(-50%); /* 正確に中央へ */
}
/* 既定は 15px */
p.CorpParts23-1.inline {
  display: inline-block;
  margin-bottom: 15px;
  margin-right: 30px;
}
p.CorpParts23-1.inline a{
    margin-right: 20px;
}



/* 後ろに同じクラスの p が続くもの（=途中の要素）は 0 にする */
p.CorpParts23-1.inline:has(+ p.CorpParts23-1.inline) {
  margin-bottom: 0;
}


.CorpParts24-1,
.CorpParts24-2 {
    display: flex;
    flex-direction: row-reverse;
    margin-bottom: 30px;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 30px;
}
.CorpParts24-1 img{
    width: calc(40% - 20px);
    margin-left: 20px;
}
.CorpParts24-1 div {
    min-width: 60%;
}
.CorpParts24-2-img{
    width: 30%;
}
.CorpParts24-2-text{
    width: 70%;
}
@media screen and (max-width: 767px) {
    .CorpParts24-1,
    .CorpParts24-2 {
        display: block;
    }
    .CorpParts24-1 img,
    .CorpParts24-2 img {
        width: 100%;
        margin-left: 0;
        margin-bottom: 30px;
    }
    .CorpParts24-1 div,
    .CorpParts24-2 div {
        width: 100%;
    }
}
.CorpParts24-1 ul {
    margin-bottom: 30px;
    list-style-type: none;
}
.CorpParts24-1 ul li {
    position: relative;
    padding-left: 1.5em;
}
.CorpParts24-1 ul li::before {
    display: block;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f058";
    font-size: 1em;
    color: #00a7eb;
    position: absolute;
    background-color: transparent;
    left: 0;
    top: 5%;
}
.CorpParts24-1 img{
    /* CSSで幅を固定しない */
  height: auto;           /* 縦横比の維持 */
  /* HTML の width を使いたいなら width: auto; でOK */
  width: auto;
  max-width: 100%;
  margin-left: 20px;
  flex: 0 0 auto;         /* 画像の縮みすぎ防止（任意） */
}
.CorpParts24-2 h4 {
    border-left: 4px solid #cccccc;
    padding-left: 16px;
    font-size: 19px;
    line-height: 31px;
    margin-bottom: 10px;
    font-weight: bold;
}
.CorpParts24-2 h4.plain {
    border: none;
    padding-left: 0;
}
.CorpParts24-2 p {
    margin-bottom: 30px;
}

.CorpParts26-1 {
    padding: 40px;
    border: 1px solid #dddddd;
    margin-bottom: 30px;
}
.CorpParts26-1 .inner {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
}
.CorpParts26-1 .inner img {
    width: 30%;
    height: auto;
}
.CorpParts26-1 .inner div {
    width: calc(70% - 20px);
    margin-right: 20px;
}
@media screen and (max-width: 767px) {
    .CorpParts26-1 .inner {
        display: block;
    }
    .CorpParts26-1 .inner img {
        width: 100%;
    }
    .CorpParts26-1 .inner div {
        width: 100%;
        margin-right: 0;
    }
}
.CorpParts26-1 .inner div h4 {
    font-weight: bold;
    margin-bottom: 1em;
}
.CorpParts27-1 {
    padding: 40px;
    background-color: #f6f6f6;
    text-align: center;
    padding: 30px 270px;
    margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
    .CorpParts27-1 {
        padding: 30px;
    }
}
.CorpParts27-1 h3 {
    font-size: 21px;
    font-weight: bold;
    margin-bottom: 34px;
}
.CorpParts27-1 p {
    margin-bottom: 30px;
    text-align: left;
}
.contIn1170 #VcArea-MainColum .CorpParts27-1 .linkBtn01 {
    margin-bottom: 0;
}
.contIn1170 #VcArea-MainColum .CorpParts27-1 .linkBtn01 .btn.btn-flat {
    width: auto;
    padding-left: 2em;
    padding-right: 2em;
    height: 80px;
    margin-bottom: 0;
}

.CorpParts29-1 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
    flex-wrap: wrap;
}
.CorpParts29-1 div {
    padding: 20px;
    width: 330px;
}
@media screen and (max-width: 767px) {
    .CorpParts29-1 {
        display: block;
    }
    .CorpParts29-1 div {
        padding: 0;
        width: 100%;
        margin-bottom: 30px;
    }
}
.CorpParts29-1 div h4 {
    font-size: 1.2em;
    text-align: center;
    font-weight: bold;
    margin-bottom: 1em;
}

.CorpParts30-1 ul {
    display: flex;
    width: 830px;
    justify-content: space-between;
    margin: 0 auto 30px;
}
.CorpParts30-1 ul li {
    display: block;
    text-align: center;
    width: calc(100% / 7 - 10px);
    color: #00a7eb;
    height: 48px;
    line-height: 48px;
    font-size: 13px;
    background-color: #f3f3f3;
    border: 1px solid #e5e5e5;
    /* border-bottom: 1px solid #dddddd; */
}
@media screen and (max-width: 767px) {
    .CorpParts30-1 ul {
        width: 100%;
        flex-wrap: wrap;
        justify-content: flex-start;
    }
    .CorpParts30-1 ul li {
        width: calc(100% / 3 - 1em);
        margin-right: 1em;
        margin-bottom: 10px;
    }
    .CorpParts30-1 ul li:nth-child(3n) {
        margin-right: 0;
    }
}
.CorpParts30-1 ul li.checked {
    color: #fff;
    background-color: #00a7eb;
    border: 1px solid #00a7eb;
}
.CorpParts30-1 ul li a {
    text-decoration: none;
    display: block;      /* ← クリック範囲を広げるために追加 */
    width: 100%;
    height: 100%;
    text-decoration: none;
    line-height: 48px;   /* li と同じ高さにする */
}

.CorpParts31-1 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
    flex-wrap: wrap;
}
.CorpParts31-1::after {
    content: "";
    display: block;
    width: 370px;
}
.CorpParts31-1 div {
    width: 370px;
    position: relative;
}
@media screen and (max-width: 767px) {
    .CorpParts31-1 {
        display: block;
    }
    .CorpParts31-1 div {
        width: 100%;
        margin-bottom: 30px;
    }
}
.CorpParts31-1 div a {
    text-decoration: none;
    position: absolute;
    width: 100%;
    display: block;
    height: 4em;
    line-height: 4em;
    text-align: center;
    left: 0;
    bottom: 0;
    background-color: rgba(0, 167, 235, 0.8);
    color: #fff;
}
.CorpParts31-1 div a::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 200px;
    top: calc(-100% - 4em);
    left: 0;
}

.CorpParts32-1 {
    width: 100%;
    background: #dddddd;
    text-align: center;
    margin-bottom: 105px;
}
#VcArea-MainColum .CorpParts32-1 h2 {
    font-size: 22px;
    font-weight: bold;
    margin: 0;
    padding: 0;
    padding-top: 30px;
    margin-bottom: 30px;
}
.contIn1170 #VcArea-MainColum .CorpParts32-1 .linkBtn02 .btn.btn-flat {
    margin-bottom: 0;
    margin-bottom: 30px;
    background: #0ea5e9;
}

.CorpParts33-1 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
    flex-wrap: wrap;
}
.CorpParts33-1 div {
    width: 370px;
    background-color: #f5fbfe;
    text-align: center;
    margin-bottom: 30px;
    position: relative;
}
.CorpParts33-1 div img {
    padding-top: 20px;
}
.CorpParts33-1 div a {
    text-decoration: none;
    color: #fff;
    font-weight: bold;
}
.CorpParts33-1 div a::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
.CorpParts33-1::after {
    content: "";
    display: block;
    width: 370px;
}

.CorpParts34-1 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 30px;
    flex-wrap: wrap;
}
.CorpParts34-1::after {
    content: "";
    display: block;
    width: 570px;
}
.CorpParts34-1 div {
    width: 570px;
    position: relative;
    margin-bottom: 30px;
}
.CorpParts34-1 div img {
    /* width: 100%;
    height: auto; */
    margin-bottom: 10px;
}
.CorpParts34-1 div h4 {
    font-size: 1.2em;
    font-weight: bold;
    margin-bottom: 10px;
}
.CorpParts34-1 th {
    width: 30%;
}
.CorpParts34-1 td {
    width: 70%;
}
@media screen and (max-width: 767px) {
    .CorpParts34-1 div {
        width: 100%;
    }
    /*20251202thが広がるため削除
    .CorpParts34-1 th,
    .CorpParts34-1 td {
        width: 100%;
    }*/
}
/* すべてのページ内リンクに対して、上方向の余白を確保 */
:root {
  scroll-behavior: smooth;           /* なめらかスクロール（任意） */
  scroll-padding-top: 100px;         /* PC時の固定ヘッダー高さぶん */
}

/* SP時にヘッダー高さが違うならメディアクエリで調整 */
@media (max-width: 768px) {
  :root {
    scroll-padding-top: 100px;
  }
}

header#VcArea-Header.site-header {
    position: sticky;
}
.contSideColumn {
    position: sticky;
    overflow-x: hidden;
}


.sb-search {
    position: relative;
    margin-top: 10px;
    width: 0%;
    min-width: 60px;
    height: 60px;
    float: right;
    overflow: hidden;
    -webkit-transition: width 0.3s;
    -moz-transition: width 0.3s;
    transition: width 0.3s;
    -webkit-backface-visibility: hidden;
}

.sb-search-input {
    position: absolute;
    top: 0;
    right: 0px;
    border: none;
    outline: none;
    background: #fff;
    width: calc(100% - 70px);
    height: 60px;
    margin: 0;
    z-index: 10;
    padding: 0px 65px 0px 0px;
    font-family: inherit;
    font-size: 16px;
    color: #2c3e50;
    padding-left: 1em;
    /* border: 1px solid #00a7eb; */
    /* background: #eee; */
}
 
input[type="search"].sb-search-input {
    -webkit-appearance: none;
    -webkit-border-radius: 0px;
}
.sb-search-input::-webkit-input-placeholder {
    color: #333333;
}
 
.sb-search-input:-moz-placeholder {
    color: #333333;
}
 
.sb-search-input::-moz-placeholder {
    color: #333333;
}
 
.sb-search-input:-ms-input-placeholder {
    color: #333333;
}

.sb-icon-search,
.sb-search-submit  {
    width: 60px;
    height: 60px;
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    padding: 0;
    margin: 0;
    line-height: 60px;
    text-align: center;
    cursor: pointer;
}

.sb-search-submit {
    background: #00a7eb;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE 8 */
    filter: alpha(opacity=0); /* IE 5-7 */
    opacity: 0;
    color: transparent;
    color:red;
    border: none;
    outline: none;
    z-index: -1;
}

.sb-icon-search {
    color: #fff;
    /* background: #e67e22; */
    z-index: 90;
    font-size: 22px;
    font-family: 'icomoon';
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
}
 
.sb-icon-search:before {
    content: "";
}

.sb-search.sb-search-open,
.no-js .sb-search {
    width: 300px;
}

.sb-search.sb-search-open .sb-icon-search,
.no-js .sb-search .sb-icon-search {
    background: #bdd5df;
    color: #fff;
    z-index: 11;
}

.sb-search.sb-search-open .sb-search-submit,
.no-js .sb-search .sb-search-submit {
/*    z-index: 90;*/
}

.sb-icon-search img {
    position: relative;
    top: 20px;
}
@media screen and (max-width: 767px) {
    input#spSearch {
        /* position: absolute; */
        top: 0;
        right: 0px;
        border: none;
        outline: none;
        background: #fff;
        /* width: calc(100% - 70px); */
        height: 60px;
        margin: 0;
        z-index: 10;
        padding: 0px 65px 0px 0px;
        font-family: inherit;
        font-size: 16px;
        color: #2c3e50;
        background: rgb(238, 238, 238);
        padding-left: 1em;
    }
}
@media screen and (min-width:768px) and ( max-width:1024px) {
    input#spSearch {
        position: absolute;
        left: 20px;
        border: none;
        outline: none;
        background: #fff;
        width: calc(100% - 170px);
        height: 60px;
        margin: 0;
        z-index: 10;
        padding: 0px 65px 0px 0px;
        font-family: inherit;
        font-size: 16px;
        color: #2c3e50;
        background: rgb(238, 238, 238);
        padding-left: 1em;
    }
}
#VcArea-MainColum table {
    width: 100%;
}
#VcArea-MainColum table,
#VcArea-MainColum thead,
#VcArea-MainColum th,
#VcArea-MainColum td {
    border: 1px solid #ccc;
}
#VcArea-MainColum th {
    background-color: #eee;
}
#VcArea-MainColum th,
#VcArea-MainColum td {
    padding: 10px;
}
.scrollBannar {
    background: #00a7eb;
    color: #fff;
    position: fixed;
    bottom: 100px;
    right: 0;
    writing-mode: vertical-rl;
    border-radius: 15px 0 0  15px;
    z-index: 9999;
}
.scrollBannar p {
    padding: 15px 10px;
    margin-block-end: 0;
}
.scrollBannar a {
    text-decoration: none;
    color: #fff;
}
.scrollBannar a::before {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
}
.local_navi {
    clear: both;
    margin-bottom: 60px;
    overflow-x: hidden;
}
.local_navi li ol{
    margin: 0;
    padding: 0;
}
.local_navi li{
    list-style-type: none;
}

/* すべての処理は .local_navi の中に限定 */
.local_navi {
  line-height: 1.6;
  box-shadow: var(--shadow);
  margin-top: 70px;
}

/* li を基本的に横並びにする */
.local_navi ol > li {
  display: inline-block;
  margin-right: 1em;
  white-space: nowrap;
  vertical-align: middle;
  width: calc(100% - 60px);
  padding-top: 10px;
}
.local_navi ol > li .ln-strong-parent-ol li {
     flex: 0 0 calc((100% - 3 * 15px) / 4);
  box-sizing: border-box;
}


/* 子階層は縦並び */
.local_navi ol ol > li {
  display: block;
  margin: 0;
}
.local_navi a,.local_navi strong{
    padding-top: 7px;
    padding-bottom: 7px;
    display: inline-block;
}
.local_navi a{
    position: relative;
  border-bottom: 1px solid #CCC;
  display: block;
  padding-right: 15px;
}
/* strong はマークとして視覚的に強調 */
.local_navi strong {
  font-weight: bold;
  border-bottom: 1px solid #CCC;
  display: block;;
}
/* .local_navi 内だけに限定 */
.local_navi a::after {
content: "";
    display: block;
    width: 6px;
    height: 10px;
    background-image: url(../../images/icon04.png);
    position: absolute;
    top: 35%;
    right: 5px;
}
/*
.local_navi .ln-strong-parent-ol a,.local_navi .ln-strong-parent-ol strong{
    margin-right: 30px;
}
*/
/* 必要なら微調整 */
.local_navi { line-height: 1.6; }
.local_navi ol { width: 100%;margin: 0; padding: 0; display: flex; flex-wrap: wrap;column-gap: 15px; }
.local_navi li { list-style: none; }
.local_navi > ol > ol > li {
  background-color: transparent; /* リセット */
  width: 100%;
}
.local_navi > ol > ol > li {
    white-space: normal;
    padding-top: 0;    
}
.local_navi > ol > ol > li > a {
  background-color: #0ea5e9;
  color: #fff;
  display: block;
  padding: 15px 30px;
  margin-right: 0;
}
.ln-heading-strong {
  background-color: #0ea5e9;
  color: #fff;
  display: block!important;
  padding: 15px 30px!important;
  margin-right: 0!important;
}
.local_navi > ol > ol > li > a::after{
    content: none;
}
.local_navi a{
    text-decoration: none;
}
.local_navi > ol > ol > li > ol{
    padding: 15px 30px;
}
.local_navi .ln-level-3 > li {
    width: calc(100% - 60px)!important;
}

@media (max-width: 768px) {
  .local_navi {
    margin-left: 15px;
    margin-right: 15px;
    overflow-x: hidden; /* 念のため保険 */
  }

  /* flex を解除して普通の縦リストにする */
  .local_navi ol {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  /* すべての li を縦並び＆折り返しONに */
  .local_navi ol > li,
  .local_navi .ln-level-3 > li {
    display: block;
    width: 100%;
    margin-right: 0;
    white-space: normal;
    box-sizing: border-box; /* padding 分も含めて100%内に収める */
  }

  /* 4列レイアウト用の flex を無効化 */
  .local_navi .ln-strong-parent-ol li {
    flex: none;
    width: 100%;
  }

  /* a / strong 自体も折り返し可能に */
  .local_navi a,
  .local_navi strong {
    white-space: normal;
  }
}


/*PDFアイコン*/
a.pdf-link {
  padding-right: 0; /* 必要なくなる */
}

a.pdf-link::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 6px; /* テキストとの隙間 */
  background-image: url("../img/common/pdf_icon.svg");
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle; /* 行揃え調整 */
}
.block-section.default11 .module-flex-img.module-3column {
    display: flex;
    flex-wrap: wrap;
}
#VcArea-MainColum h1 a,
#VcArea-MainColum h2 a,
#VcArea-MainColum h3 a,
#VcArea-MainColum h4 a {
    text-decoration: none;
}

#vcbody-wrapper .tab_content{
    display: block;
}

.contwrap{
    padding-bottom: 50px;
}


table .w-10{
    width: 10%;
}
table .w-15{
    width: 15%;
}
table .w-20{
    width: 20%;
}
table .w-25{
    width: 25%;
}
table .w-30{
    width: 30%;
}
table .w-50{
    width: 50%;
}

a[target="_blank"][href^="http"] .external-link-icon {
  width: 0.9em;
  height: 0.9em;
  margin-left: 0.25em;
  vertical-align: text-bottom;
  fill: currentColor; /* テキストと同じ色にする */
}