@charset "utf-8";

/*
   1. ベースのスタイル
   2. パーツのスタイル
   3. ヘッダー
   4. フッター
   5. 共通ブロックエリア
   6. プラグイン調整
   7. サブページ共通
   8. 本文内装飾
   9. パーツのベース
*/

/*=================================================================
   1. ベースのスタイル
=================================================================*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

:root {
   --color-base: #000;
   --color-base-rgb: 0,0,0;

   --color-blue: #0054a7;
   --color-blue-rgb: 10,99,188;

   --color-aqua: #279de0;

   --color-lightblue: #f0f5fa;
   --color-lightblue2: #ccdded;
   --color-orange: #f3a207;
   --color-dark-orange: #e98900;
   --color-yellow: #fabf1b;
   --color-red: #ff0000;
}

html {
   font-size: 62.5%;
   word-break: break-all;
}
body {
   color: var(--color-base);
   font-size: 1.7rem;
   line-height: 1.6;
   font-weight: 400;
   /*
   font-family: YakuHanJP, "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
   */
   font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;   background: #fff;
   -webkit-text-size-adjust: 100%;
   min-width: 1250px;
   }
   body * {
      box-sizing : border-box;
   }
   .header{
      min-width: 1250px;
   }
   @media screen and (max-width: 767px) {
      body{
         font-size: 1.4rem;
         line-height: 1.5;
         min-width: initial;
      }
      .header{
         min-width: initial;
      }
   }
   @media screen and (max-width: 360px) {
      body{
         font-size: 1.3rem;
         line-height: 1.4;
      }
   }

h1,h2,h3,h4{
   line-height: 100%;
   margin: 0;
}
img{
   max-width: 100%;
   height: auto;
   vertical-align: middle;
}
@media (hover: hover) {
   a{
      transition: .5s;
   }
   a:hover{
      text-decoration: none;
   }
}

.text-blue{        color: var(--color-blue);}
.text-orange{      color: var(--color-orange);}
.text-orange-2{    color: var(--color-dark-orange);}
.text-yellow{      color: var(--color-yellow);}
/* 2025/5/31追加 */
.text-red {        color: #ff0000; }

.only-sp{
   display: none !important;
}
@media screen and (max-width: 767px){
   .only-pc{
      display: none!important;
   }
   .only-sp{
      display: block !important;
   }
}

/*=================================================================
   2. パーツのスタイル
=================================================================*/

/* layout
-------------------------------------*/
.wrap{
   max-width: 1200px;
   margin-left: auto;
   margin-right: auto;
}
.content{
   padding: 60px 0 80px;
}
@media screen and (max-width: 767px) {
   .content{
      padding: 30px 0 40px;
   }
   .error404 .content{
      padding-left: 20px;
      padding-right: 20px;
   }
}
.page_top .content{
   padding: 0;
}

/* ボタン
-------------------------------------*/
.btn{
   position: relative;
   display: flex;
   justify-content: center;
   align-items: center;
   position: relative;
   text-decoration: none;
   border-radius: 8px;
   font-weight: 600;
   width: 380px;
   height: 66px;
   margin: 0 auto;
}
.btn_orange{
   color: #fff;
   background: var(--color-orange);
}
.btn_blue{
   color: #fff;
   font-size: 1.1em;
   background: var(--color-blue);
}
.btn_blue::after{
   position: absolute;
   right: 18px;
   content: "";
   width: 14px;
   height: 14px;
   display: block;
   background-image: url("../img/common/icon_arrows_w.png");
   background-size: cover;
   transition: .5s;
}
.btn_contact::before{
   content: "";
   display: inline-block;
   width: 22px;
   height: 22px;
   margin-right: 10px;
   background: url("../img/common/icon_mail.png");
   background-size: cover;
}
.btn_line{
   font-size: 1.1em;
   color: var(--color-blue);
   background: #fff;
   border: 1px solid var(--color-blue);
}
.btn_line::after{
   position: absolute;
   right: 18px;
   content: "";
   width: 14px;
   height: 14px;
   display: block;
   background-image: url("../img/common/icon_arrows_b.png");
   background-size: cover;
   transition: .5s;
}
.btn_shadow{
   box-shadow: 0px 7px 15px 2px rgb( var(--color-blue-rgb) , 0.3 );
}
@media screen and (max-width: 767px) {
   .btn{
      width: 85%;
      height: 60px;
      border-radius: 6px;
   }
   .btn_shadow {
      box-shadow: 0px 3px 8px 1px rgb(var(--color-blue-rgb), 0.2);
   }
}
@media (hover: hover) {
   .btn_orange:hover{
      background: var(--color-dark-orange);
   }
   .btn_blue:hover{
      background: var(--color-aqua);
   }
   .btn_line:hover{
      color: #fff;
      background: var(--color-blue);
   }
   .btn_line:hover::after,
   .btn_blue:hover::after{
      right: 14px;
      background-image: url("../img/common/icon_arrows_w.png");
   }
   .btn_shadow:hover{
      box-shadow: none;
   }
}

/* 見出し
-------------------------------------*/
.sec-heading{
   text-align: center;
}
.sec-heading__title{
   font-size: 4rem;
   font-weight: 700;
}
.sec-heading__sub{
   font-weight: 700;
}
.sec-title{
   position: relative;
   font-size: 2.6rem;
   margin: 4rem 0 3rem;
   padding: 1.5rem 0 1.5rem 2rem;
}
.sec-title::before{
   position: absolute;
   left: 0;
   top: 0;
   width: 4px;
   height: 100%;
   border-radius: 10px;
   content: "";
   display: block;
   background: var(--color-blue);
}
@media screen and (max-width: 767px) {
   .sec-heading__title{
      font-size: 2.4rem;
   }
}

/* タブ（JS）
-------------------------------------*/
.js-panel-item {
   display: none;
}
.js-panel-item.is-active {
   display: block;
   animation: panel-show .9s ease-in-out forwards;
}
@keyframes panel-show {
   from {
      opacity: 0;
   }
   to {
      opacity: 1;
   }
}


/*=================================================================
   3. ヘッダー
=================================================================*/
body{
   padding-top: 100px;
}
.header{
   position: fixed;
   width: 100%;
   height: 100px;
   top: 0;
   left: 0;
   padding: 24px 40px;
   background: #fff;
   z-index: 1000;
   box-shadow: 0 5px 20px rgb(0 0 0 / 10%);
}
@media print{
   /*印刷時のヘッダー固定を解除する*/
   .header{
      position: absolute;
   }
}
.header__inner{
   height: 100%;
   display: flex;
   align-items: center;
   justify-content: space-between;
}
.header__logo{
   width: 170px;
   flex: 0 0 170px;
   margin-right: 30px;
}

/* ヘッダーボタン
-------------------------------------*/
.header__link-btn .btn{
   width: 240px;
   font-size: 1.6rem;
   line-height: 1;
}
.header__link-btn .btn{
   height: 46px;
}

@media print, screen and (min-width: 768px) {
   /* ナビゲーション
   -------------------------------------*/
   .header__nav{
      height: 100%;
      flex: auto;
   }
   .header__nav-container{
      height: 100%;
   }
   .header__nav-list{
      height: 100%;
      display: flex;
      margin: 0;
      padding: 0;
      list-style: none;
   }
   .header__nav-link{
      height: 100%;
      display: flex;
      align-items: center;
      color: var(--color-base);
      text-decoration: none;
      font-size: 1.7rem;
      font-weight: 600;
      padding: 0 15px;
      cursor: pointer;
   }
   /* サブメニュー
   -------------------------------------*/
   .header__nav-item .details{
      height: 100%;
   }
   .header__subnav-wrap{
      position: absolute;
      left: 0;
      top: 100px;
      width: 100%;
      background: var(--color-lightblue);
      overflow: hidden;
      padding: 0 1em;
   }
   .header__subnav-link{
      position: relative;
      color: var(--color-base);
      text-decoration: none;
      font-weight: 700;
   }
   .header__subnav-wrap{
      padding: 40px 0;
   }
   .header__nav-link.summary{
      position: relative;
   }
   .header__nav-link.summary::after{
      position: absolute;
      left: 0;
      right: 0;
      bottom: -5px;
      margin: auto;
      content: "";
      width: 12px;
      height: 12px;
      background: url("../img/common/icon_arrows_bk.png");
      background-size: cover;
      transform: rotate(90deg);
   }
   .header__subnav-list{
      display: flex;
      gap: 30px;
      justify-content: center;
      list-style: none;
      padding: 0;
   }
   .header__subnav-link{
      padding-left: 20px;
   }
   .header__subnav-link::before{
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      margin: auto;
      content: "";
      width: 12px;
      height: 12px;
      background: url("../img/common/icon_arrows_b.png");
      background-size: cover;
   }
}
@media screen and (max-width: 767px) {
   
   body {
      padding-top: 60px;
   }
   .header{
      height: 60px;
      padding: 0;
   }
   .header__inner{
      justify-content: flex-end;
   }
   .header__logo{
      width: 130px;
      flex: 0 0 130px;
      margin: 0 auto 0 15px;
   }
   /* ヘッダーボタン
   -------------------------------------*/
   .header-sp__contact{
      width: 60px;
      height: 100%;
   }
   .header-sp__contact .btn_orange{
      position: relative;
      display: block;
      width: 100%;
      height: 100%;
      text-align: center;
   }
   .header-sp__contact .btn_contact::before{
      position: absolute;
      top: 8px;
      left: 0;
      right: 0;
      margin: auto;
      width: 24px;
      height: 24px;
      display: block;
   }
   /* ヘッダートグルボタン
   -------------------------------------*/
   .header-sp__toggle{
      position: relative;
      width: 60px;
      height: 100%;
   }
   .header-sp__toggle .js-toggle-btn{
      color: #fff;
      background: var(--color-blue);
      width: 100%;
      height: 100%;
      border: none;
   }
   .header-sp__contact .btn_orange span,
   .header-sp__toggle .js-toggle-btn span{
      position: absolute;
      display: block;
      width: 100%;
      left: 0;
      text-align: center;
      bottom: 10px;
      line-height: 1;
      font-size: 1rem;
      font-weight: 700;
   }
   .header-sp__toggle::before,
   .header-sp__toggle .js-toggle-btn::before,
	.header-sp__toggle .js-toggle-btn::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      z-index: 1000;
      margin: auto;
      display: block;
      width: 30px;
      height: 2px;
      border-radius: 50px;
      transition: all 0.3s ease;
      background-color: #fff;
   }
   .header-sp__toggle .js-toggle-btn::before {
      top: 13px;
   }
   .header-sp__toggle::before {
      top: 21px;
   }
   .header-sp__toggle .js-toggle-btn::after {
      top: 29px;
   }
   /*メニューオープン*/
   body.is-open {
      overflow: hidden;
      height: 100%;
   }
   .is-open .header-sp__toggle .js-toggle-btn::before {
      width: 28px;
      top: 22px;
      transform: rotate(45deg);
   }
   .is-open .header-sp__toggle::before {
      opacity: 0;
   }
   .is-open .header-sp__toggle .js-toggle-btn::after {
      width: 28px;
      top: 22px;
      transform: rotate(135deg);
   }

   /* メニュー
   -------------------------------------*/
   .header__nav{
      position: absolute;
      left: 0;
      top: 60px;
      z-index: 100;
      display: block;
      width: 100%;
      height: 0;
      background: var(--color-lightblue);
      transition: all 0.5s ease;
      overflow-y: scroll;
   }
   .is-open .header__nav {
      height: calc(100svh - 60px);
   }
   .header__nav-container{
      padding-bottom: 50px;
   }
   .header__nav-list{
      margin: 0 0 30px;
      padding: 0;
      list-style: none;
      font-family: "Noto Sans JP", sans-serif;
   }
   .header__nav-item{
      border-bottom: 1px solid #ccdded;
   }
   .header__nav-link{
      position: relative;
      display: block;
      text-decoration: none;
      color: #333;
      font-weight: 600;
      padding: 16px 30px;
   }
   .header__nav-link::after{
      position: absolute;
      right: 18px;
      top: 0;
      bottom: 0;
      margin: auto;
      content: "";
      width: 14px;
      height: 14px;
      display: block;
      background: url(../img/common/icon_arrows_b.png);
      background-size: cover;
   }
   .header__nav-link::-webkit-details-marker{
      display: none;
   }
   .header__nav-link.summary::before,
   .header__nav-link.summary::after {
      position: absolute;
      content: "";
      top: 0;
      bottom: 0;
      right: 18px;
      width: 14px;
      height: 3px;
      margin: auto;
      background-color: var(--color-blue);
      border-radius: 10px;
   }
   .header__nav-link.summary::after {
      transform: rotate(90deg);
      transition: .3s;
   }
   .header__nav-details[open] .header__nav-link.summary::after {
      transform: rotate(180deg);
   }
   .header__subnav-top{
      margin: 0;
   }
   .header__subnav-top .header__nav-link{
      padding: 15px 30px;
      border-bottom: 1px solid #ccdded;
   }
   .header__subnav-wrap{
      background: #fff;
   }
   .header__subnav-title{
      padding: 15px 30px 10px;
      font-weight: 700;
   }
   .header__subnav-list{
      margin: 0;
      padding: 20px 35px;
      list-style: none;
      font-weight: 500;
   }
   .header__subnav-title+.header__subnav-list{
      padding-top: 0;
   }
   .header__subnav-link{
      position: relative;
      display: block;
      padding: 7px 10px;
      color: var(--color-blue);
      text-decoration: none;
   }
   .header__subnav-link::before{
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      margin: auto;
      content: "";
      width: 5px;
      height: 1px;
      background: var(--color-blue);
   }
   .header__nav-btn .btn{
      width: 90%;
   }
   
}
/*=================================================================
   4. フッター
=================================================================*/
/* フッター：お問い合わせ
-------------------------------------*/
.foot-contact{
   color: #fff;
   padding: 45px 0;
   background: var(--color-blue);
}
.foot-contact__title{
   text-align: center;
   font-size: 2.2rem;
   font-weight: 700;
   margin-bottom: 30px;
}
.foot-contact__wrap{
   display: flex;
   justify-content: center;
}
.foot-contact__box,
.foot-contact__info{
   max-width: 440px;
   padding: 0 40px;
   text-align: center;
}
.foot-contact__box{
   border-right: 1px solid #fff;
}
.foot-contact__btn{
   margin: 10px 0;
}
.foot-contact__btn .btn{
   box-shadow: 0px 7px 10px 2px rgb(var(--color-base-rgb), 0.1);
}
.foot-contact__btn .btn_contact{
   height: 80px;
   font-size: 1.15em;
}
.foot-contact__btn .btn_line{
   font-size: .9em;
   height: 50px;
}
@media (hover: hover) {
   .foot-contact__btn .btn_line:hover{
      color: var(--color-blue);
      background: #fff;
      box-shadow: none;
   }
   .foot-contact__btn .btn:hover{
      box-shadow: none;
   }
   .foot-contact__btn .btn_line:hover::after{
      background-image: url(../img/common/icon_arrows_b.png);
   }
}
.foot-contact__info{
   height: 100%;
   display: flex;
   flex-flow: column;
   justify-content: center;
}
.foot-contact__info > p{
   margin: 0;
}
.foot-contact__number{
   font-size: 3rem;
   font-weight: 700;
}
.foot-contact__number-link{
   color: #fff;
   text-decoration: none;
}

@media screen and (max-width: 767px) {
   .foot-contact{
      position: relative;
      padding: 40px 35px;
   }
   .foot-contact::after {
      content: '';
      position: absolute;
      bottom: 0;
      right: 0;
      border-bottom: 40vw solid rgb(255, 255, 255, 0.1);
      border-left: 60vw solid transparent;
   }
   .foot-contact__title{
      font-size: 1.4rem;
      margin-bottom: 15px;
   }
   .foot-contact__wrap{
      position: relative;
      z-index: 1;
      display: block;
   }
   .foot-contact__box, .foot-contact__info{
      width: 100%;
      max-width: 100%;
      padding: 0;
   }
   .foot-contact__box{
      border: none;
      padding-bottom: 15px;
      margin-bottom: 15px;
      border-bottom: 1px solid #fff;
   }
   .foot-contact__btn .btn_contact{
      width: 100%;
      height: 60px;
   }
   .foot-contact__btn .btn_line{
      width: 100%;
      height: 45px;
   }
   .foot-contact__number{
      font-size: 2.4rem;
   }
   .foot-contact__time{
      font-size: 1.3rem;
   }
}

/* フッター
-------------------------------------*/
.footer{
   padding: 80px 40px 0;
   background: #f3f3f3;
}
.footer__inner{
   display: flex;
   justify-content: space-between;
}
.footer__company{
   font-size: 1.5rem;
   flex: 0 0 25%;
}
.footer__company-logo{
   width: 200px;
}
.footer__company-by{
   margin: 10px 0 25px;
}
.footer__company-link{
   color: var(--color-base);
}
.footer__contents{
   order: 2;
   padding-left: 5%;
   width: 100%;
}
.footer__searchBox{
   margin-bottom: 35px;
}
.footer__searchBox-form{
   display: flex;
   height: 54px;
   background: #fff;
   margin-bottom: 10px;
   border: 1px solid #ddd;
   border-radius: 8px;
   overflow: hidden;
}
.footer__searchBox-wrap{
   position: relative;
   flex-grow: 1;
   height: 100%;
}
.footer__searchBox-text{
   width: 100%;
   height: 100%;
   border: none;
   outline: none;
   font-size: 1.8rem;
   font-weight: 700;
   padding: 8px 15px;
}
.footer__searchBox-text::placeholder{
   font-size: .9em;
   font-weight: 500;
}
.footer__searchBox-btn{
   flex: 0 0 100px;
   width: 100px;
   color: #fff;
   font-weight: 700;
   border: 0;
   background: var(--color-blue);
   cursor: pointer;
}
.footer__copyright{
   color: #666;
   text-align: right;
   font-size: 1.4rem;
   border-top: 1px solid #ccc;
   padding: 30px 0;
   margin-top: 70px;
}

.grecaptcha-badge{
   display: none;
}

@media print, screen and (min-width: 768px) {
   .footer__nav{
      display: flex;
   }
   .footer__nav-wrap{
      width: 25%;
      margin: 0;
      font-size: 1.5rem;
   }
   .footer__nav-wrap:first-child{
       flex-grow: 1;
   }
   .footer__nav-wrap:first-child .footer__nav-list{
      width: 50%;
   }
   .footer__nav-head{
      font-weight: 600;
      margin-bottom: 20px;
   }
   .footer__nav-body{
      margin: 0;
      display: flex;
   }
   .footer__nav-list{
      list-style: none;
      padding: 0;
      margin: 0;
   }
   .footer__nav-item{
      margin: 0 0 15px;
      padding: 0 0 0 10px;
   }
   .footer__nav-link{
      color: var(--color-base);
      text-decoration: none;
   }
   .footer__nav-child-list{
      list-style: none;
      padding: 0;
   }
   .footer__nav-child-item{
      margin: 10px 0 0;
      padding: 0 0 0 10px;
   }
   .footer__nav-child-link{
      font-size: .9em;
      color: #333;
      text-decoration: none;
   }
}
@media screen and (max-width: 767px) {
   .footer {
      padding: 50px 20px 0;
   }
   .footer__inner{
      flex-wrap: wrap;
   }
   .footer__company{
      order: 2;
      flex: auto;
      font-size: 1.3rem;
   }
   .footer__company-logo{
      width: 170px;
   }
   .footer__company-by{
      margin: 10px 0;
   }
   .footer__company-address{
      margin: 0;
   }
   .footer__contents{
      padding: 0;
   }
   .footer__searchBox-form{
      height: 46px;
   }
   .footer__searchBox-text{
      font-size: 1.6rem;
   }
   .footer__searchBox-btn{
      width: 70px;
      flex: 0 0 70px;
   }
   .footer__nav-wrap{
      margin: 0 0 25px;
   }
   .footer__nav-other .footer__nav-list{
      display: block;
   }
   .footer__nav-head{
      color: var(--color-blue);
      font-weight: 600;
      padding: 0 0 5px;
      margin-bottom: 12px;
      border-bottom: 1px solid var(--color-blue);
   }
   .footer__nav-body{
      margin: 0;
   }
   .footer__nav-list{
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      padding: 0;
      margin: 0;
      list-style: none;
      font-family: "Noto Sans JP", sans-serif;
   }
   .footer__nav-item{
      width: 49%;
   }
   .footer__nav-link{
      display: block;
      padding: 6px 0;
      color: var(--color-blue);
      font-size: .9em;
      text-decoration: none;
   }
   .footer__copyright {
      margin-top: 50px;
      padding: 20px 0;
      font-size: 1.2rem;
   }
}

/*=================================================================
   5. 共通ブロックエリア
=================================================================*/
/* お知らせ
-------------------------------------*/
.news__list{
   margin: 0;
   padding: 0;
   border-top: 1px solid #ddd;
}
.news__item{
   display: flex;
   align-items: center;
   padding: 18px 8px;
   border-bottom: 1px solid #ddd;
}
.news__item-head{
   font-size: 1.6rem;
   flex: 0 0 286px;
   padding-right: 20px;
   display: flex;
   align-items: center;
}
.news__item-head .date{
   font-size: 1.6rem;
   flex: 0 0 100px;
   max-width: 100px;
}
.news__item-head .category{
   flex: 1;
   color: #fff;
   font-size: 1.3rem;
   text-align: center;
   line-height: 1;
   white-space: nowrap;
   background: var(--color-blue);
   border-radius: 50px;
   padding: 6px 8px;
   display: block;
}
.news__item-title-link{
   color: var(--color-base);
   font-weight: 500;
}
@media screen and (max-width: 767px) {
   .news__item{
      display: block;
      padding: 15px 8px;
   }
   .news__item-head{
      margin-bottom: 5px;
   }
   .news__item-head .date{
      flex: 0 0 80px;
      font-size: 1.3rem;
   }
   .news__item-head .category{
      flex: 0;
      font-size: 1.1rem;
      padding: 5px 8px 4px;
   }
}

/* タグ
-------------------------------------*/
.tag-list{
   display: flex;
   list-style: none;
   margin: 0;
   padding: 0;
}
.tag-item{
   margin-right: 6px;
}
.tag-item-link{
   display: block;
   color: var(--color-blue);
   text-decoration: none;
   font-size: 1.5rem;
   line-height: 1;
   font-weight: 600;
   border-radius: 50px;
   padding: 6px 12px;
   border: 1px solid var(--color-blue);
   background: #fff;
}
.tag-item-link::before{
   content: "#";
   display: inline-block;
   margin-right: 3px;
}
@media (hover: hover) {
   .tag-item-link:hover{
      color: #fff;
      background: var(--color-blue);
   }
}
@media screen and (max-width: 767px) {
   .tag-item-link{
      font-size: 1.2rem;
   }
}

/* 導入事例タグ
-------------------------------------*/
.case_tag-list{
   display: flex;
   list-style: none;
   margin: 0;
   padding: 0;
}
.case_tag-item{
   margin-right: 6px;
}
.case_tag-link{
   display: block;
   color: #fff;
   text-decoration: none;
   font-size: 1.5rem;
   line-height: 1;
   border-radius: 50px;
   padding: 5px 12px;
   background: var(--color-blue);
}
@media screen and (max-width: 767px) {
   .case_tag-link{
      font-size: 1.2rem;
      padding: 5px 12px;
   }
}

/* 導入実績
-------------------------------------*/
.client-logo{
   padding: 90px 0;
   background: var(--color-lightblue);
}
.client-logo__heading{
   display: flex;
   align-items: center;
   justify-content: center;
   margin: 10px 0 40px;
}
.client-logo__heading-text{
   font-weight: 700;
}
.client-logo__heading-img{
   flex: 0 0 284px;
   margin-right: 30px;
}
.client-logo__list{
   list-style: none;
   margin: 0;
   padding: 50px 13%;
   display: flex;
   flex-wrap: wrap;
   border-radius: 30px;
   background: #fff;
}
.client-logo__item{
   width: 25%;
   padding: 0 2%;
   margin: 1.2% 0;
}
@media screen and (max-width: 767px) {
   .client-logo {
      padding: 50px 20px;
   }
   .client-logo__heading{
      flex-wrap: wrap;
      text-align: center;
      margin: 0 0 20px;
   }
   .client-logo__heading-img{
      order: 2;
      margin: auto;
      width: 50%;
      max-width: 200px;
   }
   .client-logo__heading-text{
      margin: 10px 0 5px;
   }
   .client-logo__list{
      padding: 25px;
      justify-content: center;
   }
   .client-logo__item{
      width: 47%;
      padding: 0 5%;
      margin: 5px 0;
   }
}


/*=================================================================
   6. プラグイン調整
=================================================================*/
/* swiper-button
-------------------------------------*/
.swiper-button-prev,
.swiper-button-next {
   height: 50px;
   width: 50px;
   cursor: pointer;
}
.swiper-button-prev::after,
.swiper-button-next::after {
   background-repeat: no-repeat;
   background-size: contain;
   content: "";
   height: 50px;
   margin: auto;
   width: 50px;
   display: block;
   background-image: url("../img/common/icon_arrows_b.png")
}
.swiper-button-prev::after {
   transform: scale(-1,1);
}
.swiper-slide img {
   height: auto;
   width: 100%;
}

/* swiper-pagination
-------------------------------------*/
.swiper-pagination {
   position: absolute;
   width: 100%;
   text-align: center;
   transition: 300ms opacity;
   transform: translate3d(0, 0, 0);
   z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
   opacity: 0;
}
.swiper-pagination-disabled > .swiper-pagination,
.swiper-pagination.swiper-pagination-disabled {
   display: none !important;
}
.swiper-pagination-bullet {
   width: 12px;
   height: 12px;
   margin: 0 5px;
   display: inline-block;
   border-radius: 50%;
   background: #000;
   opacity: 0.2;
}
.swiper-pagination-bullet-active {
   opacity: 1;
   background: var(--color-blue);
}

/*=================================================================
   7. サブページ共通
=================================================================*/
.page-head{
   position: relative;
   display: flex;
   align-items: center;
   color: #fff;
   height: 340px;
   background: var(--color-blue);
}
.page-head__none{
   padding-top: 25px;
}
.post-template-default .page-head{
   height: 220px;
}
.page-head::before{
   position: absolute;
   left: 0;
   top: 0;
   content: "";
   display: block;
   width: 100%;
   height: 100%;
   background: url("../img/common/page-head_bg.jpg") center;
   background-size: cover;
}
.page-head::after{
   content: '';
   position: absolute;
   bottom: 0;
   right: 0;
   border-bottom: 200px solid rgb(255, 255, 255, 0.1);
   border-left: 30vw solid transparent;
}
.breadcrumbs{
   font-size: 1.3rem;
}
.page-head .breadcrumbs{
   position: absolute;
   left: 0;
   right: 0;
   top: 25px;
   margin: auto;
}
.page-head .breadcrumbs a{
   color: #fff;
}
.breadcrumbs span > span{
   margin: 0 5px;
}
.page-head__contents{
   position: relative;
   z-index: 1;
   width: 100%;
}
.page-head__name{
   font-size: 5rem;
   margin: 0;
   padding-top: 20px;
}
.page-head__description{
   margin: 15px 0 0;
}
@media screen and (max-width: 767px) {
   .page-head{
      height: 120px!important;
      padding: 0 20px;
      text-align: center;
   }
   .page-head::after{
      border-bottom: 70px solid rgb(255, 255, 255, 0.1);
      border-left: 30vw solid transparent;
   }
   .page-head__name{
      font-size: 2.2rem;
      padding-top: 0;
   }
   .page-head__description{
      font-size: 1.3rem;
      margin-top: 10px;
   }
}

/*=================================================================
   8. 本文内装飾
=================================================================*/

/* ページ送り
-------------------------------------*/
.wp-pagenavi {
   margin-top: 50px;
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 1.5rem;
   overflow: hidden;
}
.wp-pagenavi a,
.wp-pagenavi span{
   position: relative;
   text-decoration: none;
   color: #2f2f2f;
   font-size: 1.8rem;
   line-height: 1;
   width: 2em;
   height: 2em;
   display: flex;
   justify-content: center;
   align-items: center;
   transition: opacity 0.3s;
   border-radius: 100px;
}
.wp-pagenavi span.current{
   color: #fff;
   background-color: var(--color-blue);
}
.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink{
   text-indent: 9999px;
}
.wp-pagenavi .previouspostslink::before,
.wp-pagenavi .nextpostslink::before {
   position: absolute;
   display: block;
   content: "";
   background-size: contain;
   background-repeat: no-repeat;
   background-position: center;
   background-image: url('../img/common/icon_arrows_b.png');
   width: 1.2em;
   height: 1.2em;
}
.wp-pagenavi .previouspostslink::before {
   transform: scale(-1, 1);
}
@media screen and (max-width: 767px) {
   .wp-pagenavi {
      margin-top: 30px;
      gap: 4px;
   }
   .wp-pagenavi a,
   .wp-pagenavi span{
      font-size: 1.5rem;
      width: 3rem;
      height: 3rem;
   }
   .wp-pagenavi .previouspostslink::before,
   .wp-pagenavi .nextpostslink::before {
      width: 1.2em;
      height: 1.2em;
   }
}

/* 見出し
-------------------------------------*/
.free-page h2{
   position: relative;
   color: var(--color-blue);
   font-size: 1.7em;
   line-height: 1.6;
   padding: 0 0 .7em;
   margin: 0 0 1em;
   border-bottom: 3px solid var(--color-blue);
}
.free-page *+h2{
   margin-top: 2em;
}
.free-page h3{
   position: relative;
   font-size: 1.3em;
   line-height: 1.5;
   margin: 1.6em 0 .9em;
   padding: .5em 0 .5em .8em;
}
.free-page h3::before{
   position: absolute;
   left: 0;
   top: 0;
   display: block;
   content: "";
   background: var(--color-blue);
   width: 4px;
   height: 100%;
   border-radius: 4px;
}
.free-page h4{
   position: relative;
   font-size: 1.15em;
   margin: 1.5em 0 1em;
   padding-bottom: 1em;
   border-bottom: 3px solid #ddd;
}
.free-page h4::before {
   display: block;
   content: "";
   width: 20%;
   border-bottom: solid 3px rgba(var(--color-blue-rgb) ,.4);
   position: absolute;
   bottom: -3px;
   left: 0;
   z-index: 1;
}
@media screen and (max-width: 767px) {
   .free-page  h2 {
      font-size: 1.4em;
      border-width: 2px;
   }
   .free-page h3::before{
      width: 3px;
   }
}
/* 画像
-------------------------------------*/
@media print, screen and (min-width: 768px) {
  .alignnone{
    margin: auto;
  }
  .alignleft{
    float: left;
    margin: 0 30px 1.5em 0;
  }
  .alignright {
    float: right;
    margin: 0 0 1.5em 30px;
  }
}
.aligncenter{
   display: block;
   margin: 1em auto;
}
.post-theme .gallery{
   display: flex;
   flex-wrap: wrap;
   justify-content: space-between;
}
.post-theme .gallery-columns-2 .gallery-item{
   width: 48.5%!important;
}
.post-theme .gallery-item img{
   border: 0!important;
}
.post-theme .wp-caption-text{
   color: #777;
   text-align: left;
   font-size: .9em;
   margin: .2em 0 0;
}
@media print, screen and (max-width: 767px) {
   
   .post-theme .wp-caption{
      width: auto!important;
   }
   .post-theme .gallery{
      flex-flow: column;
   }
   .post-theme .gallery-item{
      margin-top: 0!important;
   }
   .post-theme .gallery-columns-2 .gallery-item{
      width: 100%!important;
   }
}

/* 表
-------------------------------------*/
.post-theme table{
   background: #fff;
}
.post-theme th,
.post-theme td{
   border: 1px solid #ddd;
   padding: .6em 1em;
}
.post-theme th{
   width: 25%;
   background: #eee;
}

/* リスト
-------------------------------------*/
.post-theme ul,
.post-theme ol{
   margin: 1em 0 1em .5em;
   padding: 0;
   counter-reset: li;
}
.post-theme ul li,
.post-theme ol li{
   position: relative;
   list-style: none;
   padding-left: 1em;
   margin: .4em 0;
}
.post-theme ul li::before {
   position: absolute;
   content: "";
   background-color: var(--color-blue);
   width: 0.7rem;
   height: 0.7rem;
   border-radius: 100px;
   top: 0.4lh;
   left: 2px;
}
.post-theme ul li > ul,
.post-theme ol li > ol{
   margin: .3em 0 1em;
}
.post-theme ul li li::before {
   background-color: #999;
   width: 0.5rem;
   height: 0.5rem;
}
.post-theme ol li::before{
   position: absolute;
   left: 0;
   font-weight: 700;
   color: var(--color-blue);
   counter-increment: li;
   content: counter(li) ". ";
}
.post-theme ol li li::before{
   color: #999;
}

/* 引用ブロック
-------------------------------------*/
.post-theme blockquote {
   position: relative;
   padding: .8em 1em .8em 3.5em;
   box-sizing: border-box;
   background: #efefef;
   margin: 1em 0;
}
.post-theme blockquote:before {
   position: absolute;
   display: block;
   top: .8em;
   left: 1em;
   width: 22px;
   height: 22px;
   content: "";
   background: url("../img/common/icon_blockquote.png");
   background-size: cover;
}

/* 水平線
-------------------------------------*/
.post-theme hr{
   height: 0;
   border: 0;
   margin: 1.5em 0;
   border-bottom: 1px solid #ccc;
}

/* AddQuicktag のデザインパーツ
-------------------------------------*/
.post-theme .themeBox-blue{
   background: var(--color-lightblue);
   padding: 20px 40px;
   margin: 1em 0;
}
.post-theme .themeBox-yellow{
   background: #fbebc0;
   padding: 20px;
}
@media screen and (max-width: 767px) {
   .post-theme .themeBox-blue,
   .post-theme .themeBox-yellow{
      padding: 10px 20px;
   }
}

/* youtube
-------------------------------------*/
.youtube {
   width: 100%;
   aspect-ratio: 16 / 9;
}
.youtube iframe {
   width: 100%;
   height: 100%;
}
.post-theme .embed-responsive{
   text-align: center;
}
@media screen and (max-width: 767px) {
   
   .post-theme .wp-embedded-content{
      width: 100%;
      height: 420px;
   }
   .post-theme .embed-responsive {
      position: relative;
      display: block;
      width: 100%;
      padding: 0;
      overflow: hidden;
      padding-top: 56%;
      margin: 1.5em 0;
   }
   .post-theme .embed-responsive iframe {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 100%;
      border: 0;
      z-index: 0;
   }
}

/*=================================================================
  　9. パーツのベース
=================================================================*/
/* 事例一覧
-----------------------------------------------------------*/
.swiper-slide{
   height: auto!important;
}

.case-studies {
   margin-top: 4rem;
   display: flex;
   flex-wrap: wrap;
}

.case-study {
   width: 31.5%;
   border-radius: 12px;
   margin-bottom: 40px;
   box-shadow: 0 10px 20px rgba(10, 99, 188, 0.17);
   overflow: hidden;
   transition: .3s;
}
@media (hover: hover) {
   .case-study:hover{
      box-shadow: 0 0 2px rgba(10, 99, 188, 0.3);
   }
}
@media print, screen and (min-width: 768px) {
   .case-study:nth-child(3n-1) {
      margin-left: 2.75%;
      margin-right: 2.75%;
   }
}
.case-study__link{
   display: block;
   height: 100%;
   color: var(--color-base);
   text-decoration: none;
}
.case-study__image {
   aspect-ratio: 380/220;
   height: auto;
   object-fit: cover;
}
.case-study__conts{
   padding: 25px 25px 30px;
}
.case-study__title {
   font-size: 2rem;
   font-weight: 700;
   margin-bottom: 8px;
}
.case-study__description{
   font-size: .9em;
   font-weight: 600;
   margin: .7em 0;
}
.case-study__details {
   font-size: .9em;
   margin: 0;
}
.case-study__details span::after{
   display: inline-block;
   content: "：";
   margin: 0 .2em;
}

@media screen and (max-width: 767px) {
   .under-case{
      padding: 0 20px;
   }
   /* ターム一覧
   -------------------------------------*/
   .under-case__head {
      display: block;
   }
   .under-case__tag-title {
      text-align: center;
      font-weight: 700;
      margin-right: initial;
   }
   .under-case__tag-items {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      row-gap: 0.7rem;
      column-gap: 1rem;
      margin-top: 1.4rem;
   }
   .under-case__tag-link{
      text-align: center;
      
   }
   /* 一覧
   -------------------------------------*/
   .case-studies {
      position: relative;
      margin-top: 3.6rem;
      flex-flow: column;
   }
   .case-study {
      width: 100%;
      border-radius: 12px;
      margin-bottom: 2.2rem;
      box-shadow: 0 8px 15px rgba(10, 99, 188, 0.2);
   }
   .case-study__title {
      font-size: 1.6rem;
   }
   .case-study__description,
   .case-study__details{
      font-size: 1em;
   }
}

/* モデルケース
-----------------------------------------------------------*/
.model__list {
   display: flex;
   align-items: stretch;
   flex-wrap: wrap;
   margin: 40px 0;
}
@media print, screen and (min-width: 768px) {
   .model__list {
      justify-content: space-between;
   }
}
.model__item {
   position: relative;
   width: 32%;
   border-radius: 10px;
   border: 1px solid #1959c2;
   padding-bottom: 10px;
}
.model__item-head{
   position: relative;
   display: flex;
   align-items: center;
   justify-content: space-between;
   color: #fff;
   text-align: center;
   padding: 20px;
   border-radius: 8px 8px 0 0;
   background: var(--color-blue);
}
@media print, screen and (min-width: 768px) {
   .model__item-head {
      min-height: 160px;
   }
}
.model__item-num {
   display: inline-block;
   position: absolute;
   top: -12px;
   left: 50%;
   width: 150px;
   height: 28px;
   line-height: 28px;
   margin-left: -75px;
   color: #fff;
   font-size: 13px;
   background: #ff4081;
   border-radius: 50px;
}
.model__item-icon {
   width: 20%;
}
.model__item-icon > p{
   margin: .4em 0;
   font-size: .85em;
   line-height: 1.3;
}
.model__item-title {
   text-align: left;
   font-size: 16px;
   line-height: 1.5;
   width: 75%;
}
.model__item_body {
   font-size: 1.5rem;
   padding: 25px;
}
.model__benefits{
   min-height: 80px;
   list-style: none;
   padding: 0;
   margin: 0;
}
.model__benefits-text {
   margin: 6px 0;
   padding-left: 25px;
   line-height: 1.4;
   background: url(../img/common/icon_check.png) no-repeat left 0;
   background-size: 18px;
}
.model__plan {
   display: flex;
   background: #f3f3f3;
   border-radius: 6px;
   overflow: hidden;
   margin: 4px 0 0;
}
.model__plan-tit {
   color: #fff;
   width: 49%;
   padding: 5px 8px;
   background: #5ec6e3;
   display: flex;
   align-items: center;
}
.model__plan-conts {
   width: 70%;
   padding: 5px 8px;
   margin: 0;
}
.model__plan-conts a{
   color: var(--color-blue);
}

@media screen and (max-width: 767px) {
   .model__list {
      flex-flow: column;
   }
   .model__item{
      width: 100%;
      margin-bottom: 30px;
   }
   .model__item_body {
      padding: 20px;
      font-size: 1.4rem;
   }
}

/* アコーディオン
-----------------------------------------------------------*/
/* アイコンを消す */
.js-toggle summary {
   display: block;
   cursor: pointer;
}
.js-toggle summary::-webkit-details-marker {
   display: none;
}

/* magnificPopupのfade
-----------------------------------------------------------*/
.mfp-fade.mfp-bg {
  opacity: 0;
  -webkit-transition: all .3s ease-out;
  -moz-transition: all .3s ease-out;
  transition: all .3s ease-out;
}
.mfp-fade.mfp-bg.mfp-ready {
  opacity: .8;
}
.mfp-fade.mfp-bg.mfp-removing {
  opacity: 0;
}

.mfp-fade.mfp-wrap .mfp-content {
  opacity: 0;
  -webkit-transition: all .3s ease-out;
  -moz-transition: all .3s ease-out;
  transition: all .3s ease-out;
}
.mfp-fade.mfp-wrap.mfp-ready .mfp-content {
  opacity: 1;
}
.mfp-fade.mfp-wrap.mfp-removing .mfp-content {
  opacity: 0;
}