img {
  image-rendering: -webkit-optimize-contrast;
}
/* コンポーネント */
/*---------------------------------

  01_カラー

---------------------------------*/
.blueGradation {
  background-image: linear-gradient(to right, #002896, #002896, #00a0f0, #48c0ff);
}
.skyblue_bg {
  background: #edf3f6;
}
.txt-com-blue {
  color: #002896;
}
.txt-sky-blue {
  color: #00A0F0;
}
/*---------------------------------

  09_カラム

---------------------------------*/
.column-box03a, .column-box03b {
  box-sizing: border-box;
  display: flex;
  justify-content: center;
}
.column-box03a .box, .column-box03b .box {
  display: flex;
  flex-direction: column;
  width: 31.8%;
  max-width: 375px;
  margin-right: 40px;
  background: #fff;
  box-shadow: 5px 5px 0px #00103a13;
}
.column-box03a .box p:last-child, .column-box03b .box p:last-child {
  margin-bottom: 0;
}
.column-box03a .box:nth-of-type(3n), .column-box03b .box:nth-of-type(3n) {
  margin-right: 0;
}
.column-box03a .box figure {
  margin-bottom: 0;
}
.column-box03a .box .thumb img {
  width: 100%;
  height: auto;
}
.column-box03a .box .content {
  padding: 0 40px 40px;
}
.column-box03a .box h3, .column-box03b .box h3 {
  margin-top: 40px;
  margin-bottom: 0;
  font-size: 24px;
}
.column-box03a .box h3 img {
  max-width: 60%;
  max-height: 62px;
  text-align: left;
}
.column-box03a .box .content p {
  text-align: justify;
  text-justify: inter-ideograph;
}
.column-box03a .box .more_btn {
  text-align: right;
}
.column-box03a .box .tag {
  margin: 32px 0;
}
.column-box03a .box .tag li {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  margin: 0 24px 16px 0;
  padding: 0 12px;
  border: solid 1px #00248b;
  border-radius: 15px;
  background-color: #fff;
  color: #002896;
  font-size: 16px;
  letter-spacing: 0.8px;
  text-decoration: none;
}
.column-box03a .box .tag li:last-of-type {
  margin-right: 0;
  margin-bottom: 0;
}
.column-box03b {
  padding-top: 35px;
}
.column-box03b .box {
  box-sizing: border-box;
  position: relative;
  padding: 40px;
  box-shadow: none;
  text-align: center;
}
.column-box03b .box .num {
  position: absolute;
  top: -35px;
  left: 20px;
  color: #002896;
  font-weight: 300;
  font-size: 50px;
  line-height: 1.3;
  font-family: 'Noto Sans', sans-serif;
  letter-spacing: 2.5px;
}
/*---------------------------------

  10a_マージン:全体

---------------------------------*/
.contentWrap.smallCntBtm0{
  padding-bottom: 0;
}
.contentWrap {
  padding: 60px 0 72px;
  color: #000;
}
.contentWrap .contentInner, .contentThroughRight, .contentThroughLeft {
  box-sizing: border-box;
/*  max-width: 1366px;*/
  max-width: 1166px;
  margin: 0 auto;
/*  padding-right: 80px;
  padding-left: 80px;*/
}
.contentThroughRight, .contentThroughLeft {
  max-width: 1483px;
}
.contentWrap .contentInner > p:first-child, .contentThroughRight > p:first-child, .contentThroughLeft > p:first-child {
  margin-top: 0;
}
.contentWrap .contentInner > p:last-child, .contentThroughRight > p:last-child, .contentThroughLeft > p:last-child {
  margin-bottom: 0;
}
/*---------------------------------

  14_表

---------------------------------*/
.table-normal {
  width: 100%;
  background-color: #fff;
  color: #707070;
  font-size: 18px;
  line-height: 1.88;
}
.table-normal, .table-normal td, .table-normal th {
  padding: 10px 15px;
  border: 1px solid #99A2AB;
  border-collapse: collapse;
  vertical-align: middle;
}
.table-normal tr:first-of-type th {
  box-sizing: border-box;
  height: 60px;
}
.table-normal th {
  background-color: #C7EAFD;
}
.table-normal th:first-of-type {
  color: #002896;
}
.table-normal th.em, .table-normal th.em-top, .table-normal th.em-left, .table-normal th.em-right, .table-normal th.em-bottom {
  background-color: #002896;
  color: #fff;
}
.table-normal .em-top {
  border-top: 2px solid #002896;
}
.table-normal .em-left {
  border-left: 2px solid #002896;
}
.table-normal .em-right {
  border-right: 2px solid #002896;
}
.table-normal .em-bottom {
  border-bottom: 2px solid #002896;
}
.table-normal td.em, .table-normal td.em-top, .table-normal td.em-left, .table-normal td.em-right, .table-normal td.em-bottom {
  color: #002896;
}
.table-simple {
  background-color: #fff;
  font-size: 18px;
  text-align: left;
}
.table-simple, .table-simple td, .table-simple th {
  padding: 16px 21px;
  border: 1px solid #99A2AB;
  border-collapse: collapse;
  line-height: 1.5;
}
.table-simple th {
  width: 280px;
  background-color: #D3DDE6;
}
.table-simple ul {
  padding: 7px 0 20px;
}
.table-simple ul:last-of-type {
  padding-bottom: 0;
}
.table-simple ul li {
  position: relative;
  line-height: 1.5;
  list-style-type: none !important;
  vertical-align: middle;
}
.table-simple ul li::before {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 10px;
  margin-left: 5px;
  border-radius: 50%;
  background: #a3acb4;
  content: '';
}
@media screen and (max-width: 768px) {

  /*---------------------------------

  10a_マージン:全体

  ---------------------------------*/
  .contentWrap {
    padding-top: 48px;
    padding-bottom: 56px;
  }
  .contentWrap .contentInner, .contentThroughRight, .contentThroughLeft {
    padding-right: 24px;
    padding-left: 24px;
  }
    /*---------------------------------

  09_カラム

  ---------------------------------*/
  .column-box03a, .column-box03b {
    flex-direction: column;
    align-items: center;
  }
  .column-box03a .box, .column-box03b .box {
    width: 100%;
    max-width: 328px;
    margin-right: 0;
    margin-bottom: 32px;
  }
  .column-box03a .box:last-of-type, .column-box03b .box:last-of-type {
    margin-bottom: 0;
  }
  .column-box03a .box .content {
    padding: 0 24px 32px;
  }
  .column-box03a .box .tag {
    margin: 24px 0;
  }
  .column-box03a .box .tag li {
    min-height: 24px;
    margin: 0 10px 16px 0;
    padding: 0 10px;
    font-size: 14px;
  }
  .column-box03a .box .tag li:last-of-type {
    margin-right: 0;
    margin-bottom: 0;
  }
  .column-box03a .box h3, .column-box03b .box h3 {
    margin-top: 32px;
    margin-bottom: 0;
    font-size: 20px;
  }
  .column-box03b .box {
    padding: 32px 24px;
  }
  .column-box03b .box .num{
    top: -25px;
    font-size: 40px;
  }
    /*---------------------------------

  14_表

  ---------------------------------*/
  .table-scroll {
    padding-bottom: 32px;
    overflow-x: scroll;
  }
  .table-normal {
    min-width: 500px;
    font-size: 14px;
    line-height: 1.85;
  }
  .table-simple {
    font-size: 14px;
    line-height: 1.85;
  }
  .table-simple th {
    width: auto;
  }
}
/*------------------------------------
追加CSS
-------------------------------------*/
/*背景色*/
.connect_bg{
  background-color: #EBF5FA;
}
.contentWrap .contentInner{
  text-align:center;
}
.contentWrap .contentInner h2+p{
  color: #333;
  font-size: 21px;
  padding: 10px 0 40px;
}
.contentWrap.page_top .contentInner h2+p{
  padding: 10px 0 0;
}
/*カラム*/
.column-box03b .box {
  margin:0 40px 0;
  padding:0;
  background: #EBF5FA;
}
.contentWrap .column-box03b h3{
  color: #002896;
  font-weight: bold;
  text-align: center;
}
.contentInner .column-box03b p {
  margin: 32px 0;
  font-size: 18px;
  text-align:left;
}
/*テーブル*/
.contentWrap .contentInner .table-normal th,
.contentWrap .contentInner .table-normal td{
  font-weight:bold;
  width:9%;
  writing-mode:horizontal-tb;
}
.contentWrap .contentInner .table-normal th:first-of-type{
  width:19%;
}
/*微調整*/
.contentWrap.solutions2 .contentInner p.midashi{
  padding: 72px 0 40px;
  font-size:21px;
}
.contentWrap.solutions2 .contentInner p.notice{
  text-align:right;
  padding:18px 40px 0;
}
#industry-insights h2{
  padding-top: 60px;
}
@media screen and (max-width: 768px) {
  .contentWrap .contentInner h2{
    margin:0 auto;
    padding:0;
  }
  .contentWrap .contentInner h2+p{
    color: #333;
    font-size: 17px;
    padding: 10px 0 20px;
  }
  .contentWrap.page_top .contentInner h2+p{
    padding: 10px 0 24px;
  }
  .contentWrap .contentInner p.page-top{
    padding-bottom: 60px;
  }
  .column-box03b{
    padding-top:60px;
  }
  .column-box03b .box {
    margin:0;
    padding:0;
  }
  .column-box03b .box img {
    max-height: 210px;
  }
  .contentWrap .column-box03b h3{
    line-height: 1.3;
    margin:29px auto 0;
  }
  .contentInner .column-box03b p {
    margin: 17px 0 0;
    padding-bottom:32px;
    text-align:left;
  }
  /*テーブル*/
  .contentWrap .contentInner .table-normal {
    min-width: auto;
    border : 1px solid;
    -ms-writing-mode : tb-lr;
    writing-mode : vertical-lr;
  }
  .table-normal td, .table-normal th{
    padding: 10px 0;
  }
  .table-normal  .em-right,
  .table-normal  .em-left,
  .table-normal  .em-top,
  .table-normal  .em-bottom
  {
    border: 1px solid #99A2AB;
  }
  .contentWrap .contentInner .table-normal th,
  .contentWrap .contentInner .table-normal td{
    font-weight:bold;
    width:auto;
    border-bottom: 2px solid #002896;
    vertical-align:center;
    height:3em;
  }
  .table-normal td>span, .table-normal th>span{
    -ms-writing-mode : lr-tb;
    writing-mode : horizontal-tb;
    white-space : nowrap;
  }
  .contentWrap .contentInner .table-normal th:first-of-type{
    width:19%;
  }
  .contentWrap .contentInner .table-normal tr:first-of-type td{
    border-left: 2px solid #002896;
    border-top: 2px solid #002896;
  }
  .contentWrap .contentInner .table-normal tr:last-of-type th,
  .contentWrap .contentInner .table-normal tr:last-of-type td{
    border-right: 2px solid #002896;
  }
  .contentWrap .contentInner .table-normal tr th:first-of-type{
    border-top: 2px solid #002896;
    font-size: 12px;
  }
  .contentWrap .contentInner .table-normal tr:first-of-type td:first-of-type{
    border-left: 2px solid #EBF5FA;
    border-top: 2px solid #EBF5FA;
    background-color: #EBF5FA;
  }
  /*微調整*/
  .contentWrap.solutions2 .contentInner p.midashi{
    padding: 32px 0 24px;
    font-size:17px;
  }
  .contentWrap.solutions2 .contentInner p.notice{
    text-align:right;
    padding:18px 6.5px 0;
  }
  #industry-insights h2{
    padding-top: 48px;
  }
}


/*---------------------------------

 既存CSS

  ---------------------------------*/
* {
  box-sizing: border-box;
}
html {
  color: #333;
}
h1 {
  font-size: 60px;
  color: #fff;
}
h2 {
  font-size: 40px;
  font-weight: normal;
  color: #002896;
/*   padding-top: 80px; */
}
h3 {
  font-size: 36px;
  font-weight: lighter;
}
#main-visual {
  height: 26.7vw;
  background: url(../img/image_lg01.jpg);
  background-size: cover;
  color: #fff;
  text-align: center;
  margin: 0 auto;
  padding-top: 6.59vw;
}

/*#main-visual p:first-of-type {
  font-size: 30px;
}
#main-visual p:last-of-type {
  font-size: 20px;
  padding-top: 20px;
  margin-bottom: 20px;
  font-weight: bold;
}*/
#main-visual a.more_btn {
  display: inline-block;
  font-size: 14px;
  padding: 0 25px;
  border: 1px solid #fff;
  color: #fff;
  margin: 0 auto;
  border-radius: 14px;
  transition: all 0.3s ease;
}
#main-visual a.more_btn:hover {
  color: #2e3190;
  background: #fff;
  text-decoration: none;
}
#solutions {
  color: #fff;
  width: 100%;
  max-width: 1166px;
  text-align: center;
  margin: 0 auto;
}
#solutions h2 + p {
  color: #333;
  font-size: 21px;
  padding-top: 10px;
  padding-bottom: 40px;
}
#solutions h3 {
  margin-bottom: 10px;
  line-height: 1.3em;
  font-weight: 200;
}
#solutions h3 + p {
  font-size: 16px;
}
#solutions a {
  color: #fff;
  font-size: 14px;
  border: 1px solid #fff;
  border-radius: 14px;
  display: inline-block;
  transition: all 0.3s ease;
  padding: 0 25px;
  font-weight: lighter;
  margin-top: 13px;
}
#solutions a:hover {
  color: #2e3190;
  background: #fff;
  text-decoration: none;
}
#solutions .box{
  display: flex;
  align-items: center;
  height: 233px;
  text-align: left;
  margin-bottom: 15px;
  background-position: right;
}
#solutions .box > div{
  padding-left: 50px;
}
#solutions .box:first-of-type{
  background-image: url("../img/storm.jpg");
  height: 345px;
  position: relative;
}
.sp_award_logo{
  position: absolute;
  bottom: 13px;
  left: 33.5%;
  height: 135px;
  width: auto;
}
#solutions .box:nth-of-type(2){
  background-image: url("../img/speed.jpg");
}
#solutions .box:nth-of-type(3){
  background-image: url("../img/Miitel.jpg");
  margin-bottom: 0;
}
#solutions .box:first-of-type > div{
  padding-bottom: 90px;
}
#read {
  background: linear-gradient(to left, #00064d, #00389a);
  padding: 5em 10px;
  text-align: center;
}
#read h2 {
  padding-top: 0;
  color: #fff;
  margin-bottom: 35px;
}
#read .read_btn {
  display: inline-block;
  background: url(../img/top/button_white_outline.png) center center no-repeat;
  background-size: contain;
  width: 167px;
  line-height: 37px;
  color: #fff;
  text-align: left;
  padding-left: 35px;
}
#read h2 + div{
  width: 100%;
  max-width: 1000px;
  background: #fff;
  padding: 40px 60px 0px;
  margin: 0 auto;
}
#read h2 + div ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#read h2 + div ul li{
  padding-bottom: 40px;
	width: 31%;
}
#read h2 + div ul li img{
	height: 40px;
	width: auto;
	margin-left: auto;
	margin-right: auto;
}
#read h2 + div ul li img.logo-fashion{
	height: 80px;
}
/*リリースお知らせ表示*/
.info-box{
  display: inline-block;
  margin: 0 auto 40px;
  padding: 20px;
  font-size: 18px;
  font-weight: bold;
  text-align: left;
  background-color: #fff;
  border: 1px solid #000;
  color: #002896;
  width: 100%;
  max-width: 810px;
}
.info-box span{
  text-align: right;
  display: block;
  margin-top: 16px;
}
.info-box a{
  border: 1px solid #002896;
  border-radius: 14px;
  padding: 1px 25px;
  transition: all 0.3s ease;
  font-size: 17px;
}
.info-box a:hover{
  color: #fff;
  background: #002896;
  text-decoration: none;
}
.info-box a,
.info-box a:visited{
  color:#002896;
  text-decoration: none;
}
@media screen and (max-width: 1365px) {
  h1 {
    font-size: 5vw;
  }
  /*h2 {
    font-size: 4.2vw;
  }*/
 #solutions h2 + p{
    font-size: 17px;
    padding: 10px 10px 20px;
  }
  #main-visual {
    padding: 4vw 10px 0;
  }
  #main-visual p:first-of-type {
    font-size: 18px;
  }
  #main-visual p:last-of-type {
    font-size: 15px;
    padding-top: 10px;
    margin-bottom: 20px;
  }
/*	#read h2 {
	font-size: 3vw;
	}*/
}
@media screen and (max-width: 768px) {
  html{overflow-x: hidden;}
  h1 {
    font-size: 40px;
  }
  h2 {
    font-size: 30px;
    padding-top: 6.5vw;
    line-height: 1.3em;
    margin-bottom: 10px;
  }
  #read h2{
    font-size: 5vw;
  }
  #main-visual {
    padding-top: 1vw;
    height: auto;
  }
  #main-visual p:first-of-type {
    font-size: 18px;
  }
  #main-visual p:last-of-type {
    font-size: 15px;
    padding: 10px 0 20px;
    margin-bottom: 0;
  }
  #solutions h3 {
    font-size: 24px;
  }
  #solutions h3 + p {
    font-size: 14px;
  }
  #solutions a {
    font-size: 14px;
  }
  #solutions .box{
    margin-bottom: 0;
    text-align: center;
    justify-content: center;
  }
  #solutions .box > div{
    padding: 0 5vw;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  #solutions .box:first-of-type{
    align-items: baseline;
  }
  #solutions .box:first-of-type > div{
    padding-top: 40px;
    padding-bottom:0;
    justify-content: flex-start;
  }
  #solutions .box:first-of-type{
    background-size:cover;
    background-image: url("../img/sp_storm.jpg");
  }
  #solutions .box:nth-of-type(2){
    height:260px;
    background-size:cover;
    background-image: url("../img/sp_speed.jpg");
  }
  #solutions .box:nth-of-type(3){
    height:260px;
    background-size:cover;
    background-image: url("../img/sp_Miitel.jpg");
  }
  #solutions .box{
    position: relative;
    z-index: 0;
  }
  #solutions .box::before{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: inherit;
    filter:brightness(55%);
    z-index: -1;
  }
  .sp_award_logo{
    display:block;
    margin-top:25px;
    height:130px;
    width: auto;
    position: static;
    bottom: auto;
    left: auto;
  }
  /*ロゴサイズ調整*/
  #read h2 + div {
    padding: 24px 60px 0px;
  }
  #read h2 + div ul li{
    width: calc(50% - 10px);
    padding-bottom: 24px;
  }
  @media screen and (max-width: 414px) {
    #read h2 + div {
      padding: 16px 60px 0px;
    }
    #read h2 + div ul{
      flex-direction: column;
    }
    #read h2 + div ul li{
      width: 100%;
      padding-bottom: 16px;
    }
    #read h2 + div ul li img,
    #read h2 + div ul li img.logo-fashion{
      max-width: 100%;
      width:auto;
    }
  }
  .info-box{
    margin-bottom: 60px;
    font-size: 17px;
    line-height: 1.3em;
  }

}

/* 20230628追記 */
.sp_award_logo {
  display: none;
}
#solutions .box {
  height: 344px;
  background-size: cover;
}
#solutions a {
  margin-top: 20px;
  padding: 0;
  width: 115px;
  text-align: center;
  letter-spacing: -1px;
}
#solutions .box ul {
  margin-top: 16px;
}
#solutions .box:first-of-type > div {
  padding-bottom: 0;
}
#solutions .box:first-of-type {
  background-image: url(../img/storm_02.webp);
  height: 344px;
}
#solutions .box:nth-of-type(2) {
  background-image: url(../img/SmaCom.webp);
}
#solutions .box:nth-of-type(3) {
  background-image: url(../img/speed_02.webp);
  margin-bottom: 15px;
}
#solutions .box:nth-of-type(4) {
  background-image: url(../img/Miitel_02.webp);
  margin-bottom: 0;
}
#solutions .attention {
  font-size: 12px;
}
.solutions2-map-base01, .solutions2-map-base02 {
  position: relative;
}
.solutions2-map-base01 a, .solutions2-map-base02 a {
  position: absolute;
}
.solutions2-map-base01 .storm {
  top: 15%;
  left: 18%;
  height: 23%;
  width: 52%;
  display: block;
}
.solutions2-map-base01 .smacom {
  top: 24%;
  left: 17.5%;
  height: 32%;
  width: 81%;
  display: block;
}
.solutions2-map-base01 .miitel {
  top: 61%;
  left: 46%;
  height: 32%;
  width: 24%;
  display: block;
}
.solutions2-map-base02 .storm {
  top: 12%;
  left: 31%;
  height: 27%;
  width: 44%;
  display: block;
}
.solutions2-map-base02 .smacom {
  top: 25.5%;
  left: 31.5%;
  height: 34%;
  width: 67.5%;
  display: block;
}
.solutions2-map-base02 .miitel {
  top: 62%;
  left: 54.5%;
  height: 33.5%;
  width: 20%;
  display: block;
}
@media screen and (max-width:768px) {
  .sp_award_logo {
    display: block;
    margin-top: 9px;
    height: 110px;
  }
  #solutions .box {
    background-size: cover;
  }
  #solutions .box:nth-of-type(2), #solutions .box:nth-of-type(4) {
    height: 300px;
  }
  #solutions .box:first-of-type {
    height: 300px;
    background-image: url(../img/sp_storm.jpg);
  }
  #solutions .box:nth-child(2) {
    background-image: url(../img/sp_smacom.jpg);
    background-size: 100%;
    background-position: top;
  }
  #solutions .box:nth-of-type(3) {
    margin-bottom: 0;
    height: 300px;
    background-image: url(../img/sp_speed.jpg);
  }
  #solutions .box:nth-child(4) {
    background-image: url(../img/sp_Miitel.jpg);
  }
  #solutions .attention {
    font-size: 10px;
  }
}
/*2024/9 メインビジュアル変更*/
.topMainvisual.bg_on{
  height: 500px;
  box-shadow: 0 1rem 2rem -2rem hsl(200 50% 20% / 30%);
  padding-top: 80px;
  height: auto;
  min-height: 500px;
}
.topMainvisual-txt-wrap{
  top: 0;
  transform: none;
  max-width: 1366px;
  display: flex;
  justify-content: flex-end;
}
.topMainvisual-txt-wrap .topMainvisual-txt{
  position: absolute;
  right: 0;
  left: auto;
  padding: 0;
  max-width: calc(576px + 105px);
  background: none;
  padding-right: 105px;
  padding-bottom: 20px;
  position: static;
}
.topMainvisual.bg_on h1{
  display: block;
  width: 400px;
  line-height: 1;
}
.topMainvisual.bg_on h2{
  color: #002896;
  line-height: 1.5;
  padding: 34px 0 22px;
}
.topMainvisual.bg_on .topMainvisual-txt-item02{
  font-size: 18px;
}
.topMainvisual-txt-wrap .topMainvisual-txt::after {
  background: none;
}

@media screen and (max-width:1153px) {
  .topMainvisual-txt-wrap .topMainvisual-txt{
    max-width: calc(576px + 32px);
    padding-right: 32px;
  }
  .mainVisual-bg img {
    object-position: -224px 0px;
  }
}
@media screen and (max-width:920px) {
  .topMainvisual.bg_on{
    padding-top: clamp(56px,5vw,80px);
  }
  .topMainvisual.bg_on h2{
    font-size: clamp(24px,4.158vw,38px);
  }
  .topMainvisual-txt-wrap .topMainvisual-txt{
    width: clamp(400px,60vw,600px);
    padding-right: 16px;
  }
  .topMainvisual.bg_on .topMainvisual-txt-item02{
    font-size: clamp(14px,2.239vw,18px);
  }
  .topMainvisual.bg_on .topMainvisual-txt-item02 br.sp_hide{
    display: none;
  }
}