@charset "utf-8";
/* */

@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Klee+One:wght@400;600&family=Manrope:wght@200..800&family=Noto+Sans+JP:wght@100..900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap');

:root {
  --base-color: #FFFFFF;
  --main-color: #00205b;
  --content-color: #033b8e;
  --data-color: #accaf3;
  --accent-color: #1B85FB;
}

html {
  /*font-family: "Zen Kaku Gothic New","Noto Sans JP","游ゴシック体","Yu Gothic","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","メイリオ","Meiryo","Osaka", "MS Pゴシック","MS PGothic";*/
  font-family: "Noto Sans JP","游ゴシック体","Yu Gothic","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","メイリオ","Meiryo","Osaka", "MS Pゴシック","MS PGothic";
  font-size:min(0.694vw,62.5%);/*画面幅1440px以上で基本文字サイズ10pxに固定*/
  scroll-behavior: smooth;
}


body {
  color: var(--main-color);
  line-height: 1.5;
  font-size: 1.6rem;
  
}

a {
  color: var(--main-color);
  text-decoration: none;
}

p {
  text-align: justify;
  line-height: 1.8;
}

/*===============================

共通部品

================================*/

.margin-lv2 {
  margin: 5rem 0;
}

.margin-lv3 {
  margin: 2rem 0 5rem 0;
}

.margin-lv4 {
  margin: 1.5rem 1rem 3rem;
}



.mt10 {
  margin-top: 1rem !important;
}

.mt20 {
  margin-top: 2rem !important;
}

.mt30 {
  margin-top: 3rem !important;
}

.mt40 {
  margin-top: 4rem !important;
}

.mt50 {
  margin-top: 5rem !important;
}

.mt100 {
  margin-top: 10rem !important;
}

.mt200 {
  margin-top: 20rem !important;
}


.mb2 {
  margin-bottom: 2rem;
}

.mb10 {
  margin-bottom: 1rem !important;
}

.mb20 {
  margin-bottom: 2rem !important;
}

.mb30 {
  margin-bottom: 3rem !important;
}

.mb40 {
  margin-bottom: 4rem !important;
}

.mb50 {
  margin-bottom: 5rem !important;
}


.mb100 {
  margin-bottom: 10rem !important;
}

/* 間隔をコントロール */

hr.hr-space-1rem {
  border: 1px solid transparent;
  margin:0 0 1rem;
}
hr.hr-space-2rem {
  border: 1px solid transparent;
  margin:0 0 2rem;
}
hr.hr-space-3rem {
  border: 1px solid transparent;
  margin:0 0 3rem;
}
hr.hr-space-4rem {
  border: 1px solid transparent;
  margin:0 0 4rem;
}
hr.hr-space-5rem {
  border: 1px solid transparent;
  margin:0 0 5rem;
}
hr.hr-space-6rem {
  border: 1px solid transparent;
  margin:0 0 6rem;
}
hr.hr-space-12rem {
  border: 1px solid transparent;
  margin:0 0 12rem;
}

/* フォントサイズ */

/* テキストアレイン */

.text-center {
  text-align: center;
  p {
    text-align: center;
  }
}

/* 装飾 */

.shaddow {
  filter: drop-shadow(0px 0px 5px rgba(160, 160, 160, 0.7));
}

.shaddow-white {
  filter: drop-shadow(0px 0px 5px rgba(255, 255, 255, 0.932));
}

/* ページ内リンクの調整 */

#concept::before,
#dreamIt::before,
#workArea::before,
#itsolution::before,
#officesupport::before,
#branding::before,
#outdoor::before,
#ourway::before,
#outline::before,
#SocialContribution::before {
  content:'';
  display: block;
  padding-top: 140px;
  margin-top: -100px;
}

/*===============================

button

================================*/

/* ----- テキストリンク ----- */
.textlink__wap {
    max-width: 128rem;
    margin: 0 auto;
    display: flex;
    justify-content: end;
    margin-top: 5rem;
    a {
      display: flex;
      justify-content: center;
      align-items: center;
      position: relative;
      width: 25rem;
      height: 6rem;
      color: var(--main-color);
      font-size: 1.8rem;
      font-weight: 700;
      transition: 0.3s;
    }
    a:hover {
        color: var(--accent-color);
    }
}

.textlink a::before {
    content: '';
    position: absolute;
    top: calc(50% - 4px);
    right: 0;
    transform: rotate(30deg);
    width: 12px;
    height: 1px;
    background-color: var(--main-color);
}

.textlink a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 40px;
    height: 1px;
    background-color: var(--main-color);
}

.textlink a:hover::before {
    background-color: var(--accent-color);
}

.textlink a:hover::after {
    background-color: var(--accent-color);
}

/* ---------- TopInfo　内　お知らせ一覧 ---------- */

/* ----- テキストリンク ----- */
.topInfo .textlink__wap {
    max-width: 128rem;
    margin: 0 auto;
    display: flex;
    justify-content: end;
    margin-top: 0;
    a {
      display: flex;
      justify-content: center;
      align-items: center;
      position: relative;
      width: 25rem;
      height: auto;
      color: var(--base-color);
      font-size: 1.6rem;
      font-weight: normal;
      transition: 0.3s;
    }
    a:hover {
        color: var(--data-color);
    }
}

.topInfo .textlink a::before {
    content: '';
    position: absolute;
    top: calc(50% - 4px);
    right: 0;
    transform: rotate(30deg);
    width: 12px;
    height: 1px;
    background-color: var(--base-color);
}

.topInfo .textlink a::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 40px;
    height: 1px;
    background-color: var(--base-color);
    transition: 0.3s;
}

.topInfo .textlink a:hover::before {
    background-color: var(--data-color);
    transition: 0.3s;
}

.topInfo .textlink a:hover::after {
    background-color: var(--data-color);
    transition: 0.3s;
}
/* ---------- ブログ --------- */

.pNav {
  margin-bottom: 2rem;
}

.backORcloseBtn {
  display: flex;
  justify-content: center;
  margin-top: 10rem;
    
    a {
    background-color: var(--content-color);
    color: #fff;
    text-align: center;
    padding: 1rem 2rem;
    border-radius: 20px;
    }
}
/* ----- ホバー時に中央から下線が伸びるボタン（ヘッダー） ----- */

 .border_btn {
  position: relative;
  display: inline-block;
  text-align: center;
  outline: none;
  color: var(--main-color);
  border-bottom: 2px;
  line-height: .5;
}

.border_btn:hover{
  color: var(--accent-color);
  transition: .5s;
}

.border_btn::after {
  position: absolute;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: var(--accent-color);
  bottom: -10px;
  transform: scale(0, 1);
  transition: transform 0.5s;
  transform-origin: center top;
}

.border_btn:hover::after {
  transform: scale(1, 1)
}

/* ----- ホバー時に左から下線が伸びるボタン（フッター） ----- */

 .border_btn02 {
  position: relative;
  display: inline-block;
  text-align: center;
  outline: none;
  border-bottom: 2px;
  line-height: .5;
}

.border_btn02:hover{
  color: var(--accent-color);
  transition: .5s;
}

.border_btn02::after {
  position: absolute;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: var(--accent-color);
  bottom: -10px;
  transform: scale(0, 1);
  transition: transform 0.5s;
  transform-origin: left top;
}

.border_btn02:hover::after {
  transform: scale(1, 1)
}

/* ---------- 営業用お問い合わせボタン ---------- */

/* ボタンのスタイル */
.buttonIconText03 {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 32rem;
  height: 6.4rem;
  padding: .8rem 1.6rem .8rem .8rem;
  margin: 5rem auto 0;
  font-family: sans-serif;
  color: #fff;
  text-align: center;
  overflow-wrap: anywhere;
  background-color: var(--content-color);
  border-radius: 32px; /* (buttonの高さ / 2) の値 */
}


@media (any-hover: hover) {
  .buttonIconText03 {
    transition: background-color 0.2s;
  }

  .buttonIconText03:hover {
    background-color: var(--accent-color);
  }
}



/*===============================

header

================================*/

header.only-pc {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(5px);
  background-color: #eff1f480;
  z-index: 9999;
}

.header__inner {
  max-width: 128rem;
  height: 10rem;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header__logo {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header__logoImg {
  width: 12rem;
  padding-right: 1rem;
}

.header__logoText {
  font-family: "Gill Sans", sans-serif;
  font-size: 1.2rem;
  font-weight: bold;
  span {
    display: block;
    font-size:2.3rem;
  }
}


/* ---------- global nav ---------- */

.nav {
  padding: 1.7rem 3rem;
  border-radius: 50px;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  background-color: #eff1f480;
}

.nav__inner {
  display: flex;
  align-items: center;
  list-style: none;
  padding: 0;
  font-weight: bold;
}

.nav__item {
  padding: 0 2rem;
}

.nav__item {
  padding: 0 2rem;
}

/*===============================

index　トップページ

================================*/
/*-------------------------------
トップページ　key visual
-------------------------------*/

.kV {
  position: relative;
  top: 0;
}

.kV__catch {
  position: absolute;
  top: calc(50% + (10rem / 2));
  left: 10%;
  /*color: var(--base-color);*/
  transform: translate(0, -51%);
  width: 66.05rem;
  height: 22.7rem;
  font-size: 2rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
  h2 {
    font-family: "Caveat", cursive;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 8rem;
  }
}

/* 複数画像切り替え---------------------------------------------- */

.kV__slide {
  position: relative;/* コンテナ内でスライド位置を相対的に設定 */
  /*width: 100vw;/* コンテナ幅を100%に */
  height: 95vh;/* コンテナの高さを固定 */
  overflow: hidden;/* スライドがコンテナ外に出ないように非表示 */
  z-index: -1;
}

/* 画像の配置 */
.kV__image {
  position: absolute;/* 位置を絶対指定で重ねて配置 */
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  /*inset: 0;/*親要素内にフルサイズで配置*/
  opacity: 0;/* 初期状態で透明に */
  background-size:  cover;/* 画像をスライド全体にカバー */
  background-position: center center;
  animation: image-switch-animation 30s infinite;/* 1サイクル25秒を無限ループ */
}

/* スライド画像設定 */

.src1 {
  background-image: url(/images/network01.png);
}
.src2 {
  background-image: url(/images/works_kv.png);
}
.src3 {
  background-image: url(/images/cloud01.png);
}

/* スライド個別設定 */

.kV__image:nth-of-type(1) {
  transform: scale(1);
  animation-delay: 0s;
}

.kV__image:nth-of-type(2) {
  transform: scale(1);
  animation-delay: 10s;
}

.kV__image:nth-of-type(3) {
  transform: scale(1);
  animation-delay: 20s;
}

/*タイミング設定*/
@keyframes image-switch-animation {
  0%{ opacity: 0;transform: scale(1.3);}
  30%{ opacity: 1;}
  35%{ opacity: 1;}
  50%{ opacity: 0;}
  100%{ opacity: 0;}
}

/*-------------------------------
トップページ　新着情報　information
-------------------------------*/

.topInfo {
  position: absolute;
  bottom: -10rem;
  left: 50%;
  width: 50%;
  padding: 3rem;
  background-color: var(--content-color);
  color: var(--base-color);
  z-index: 999;
  h3 {
    margin-bottom: 1rem;
    font-size: 2rem;
  }
}

.topInfo__inner {
  max-width: 70rem;
}

.topInfo__list {
  list-style: none;
  padding: 0;
}

.topInfo__item {
    display: flex;
    align-items: start;
    padding: 2rem;
    border-bottom: .1rem solid #285292;
  a {
    color: #ffffff;
  }
  span {
    color: var(--data-color);
    font-weight: bold;
    padding-right: 1rem;
  }
}

.topInfo__item:last-child {
  border-bottom: none;
}

#newsList {
  .title-box {
  width: 60%;
}
}
/*-------------------------------
トップページ　私たちのこと　topAbout
-------------------------------*/

/* ----- 背景の回転グラデーション ----- */

.gradation01 {
  position: absolute;
  top: 20%;
  width: 80%;
  height: 100vh;
  z-index: -9999;
  margin: 0 auto;
}

.item {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20%;
  height: 20%;

  /* 回転アニメーション */
  transform-origin: 0 0;
  animation-name: rotate-item;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

.item-01 {
  z-index: 3;
  animation-duration: 15s;
}

.item-02 {
  z-index: 2;
  left: 45%;
  animation-duration: 50s;
  animation-direction: reverse;
}

.item-03 {
  z-index: 4;
  top: 50%;
  left: 40%;
  animation-duration: 15s;
}

.round {
  position: relative;
  border-radius: 50%;
}

.round-01 {
  z-index: 3;
  top: 0;
  width: 18vw;
  height: 18vw;
  background: #fcacdb54;
  filter: blur(5rem);
  animation: flash 10s linear infinite;
}

.round-02 {
  top: 50%;
  width: 18vw;
  height: 18vw;
  background-color: #81cafa60;
  filter: blur(8rem);
  animation: flash 10s linear infinite;
}

.round-03{
  top: 0;
  left: 50%;
  width: 18vw;
  height: 18vw;
  background-color: #e3f7ecf3;
  filter: blur(9rem);
  animation: flash 10s linear infinite;
}

/* 回転アニメーション */
@keyframes rotate-item {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
/* 点滅アニメーション */
@keyframes flash {
	0%,
	100% {
		opacity: 0.8;
	}
	50% {
		opacity: 0.5;
	}
}

/* ---------- あなたのitを、ITで支え、あなたの未来と、ともに進む。 ---------- */

.topAbout {
  position: relative;
}

.topAbout__inner {
  position: relative;
    max-width: 128rem;
    margin: 0 auto;
    padding: 10rem;
}

.topAbout__title {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 3.5rem;
    letter-spacing: .03em;
    margin: 8rem 0 5rem 0;

    span {
      display: block;
      font-family: "Caveat", cursive;
      font-optical-sizing: auto;
      font-weight: 500;
      font-style: normal;
      font-size: 3rem;
    }
}

.topAbout__text {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 1.8rem;
    line-height: 4rem;
    margin-bottom: 6rem;
}

/*-------------------------------
トップページ　事業領域　topWorks
-------------------------------*/

/* トップページ内　共通部品 */

.top__title {
    width: 128rem;
    font-family: "Caveat","cursive";
    font-weight:300;
    font-size: 6rem;
    margin: 0 auto ;
    span {
        font-size: 2rem;
        display: block;
        font-family: "Zen Kaku Gothic New","sans-serif";
        font-weight: 500;       
    }
}

.topWorks__inner {
    max-width: 128rem;
    margin: 0 auto;
    padding: 6rem 0;
}

.topWorks__content {
  display: flex;
  align-items:center;
  justify-content: space-between;
    img {
      width: 50rem;
      height: 55rem;
    }
    dl {
        width: 60%;
        font-family: "Zen Kaku Gothic New", sans-serif;
        font-weight: 400;
        font-style: normal;
        font-size: 1.8rem;
        line-height: 4rem;
    }
    dt {
        font-size: 2.8rem;
        font-weight: bold;
        font-family: "Zen Kaku Gothic New", sans-serif;
        font-weight: 500;
        font-style: normal;
        margin-bottom: 2rem;
    }
    dd {
      margin-bottom: 5rem;
    }

    dd:last-child {
      margin-bottom: 0;
    }

}

/* ----- 擬似要素テキストが流れる ----- */

.flowimg {
    position: relative;
    padding: 10rem;
    overflow: hidden;
    width: 100%;
}

.flowimg::before,
.flowimg::after {
    content: "Dream it,Together";
    position: absolute;
    bottom: 20%;
    width: 100%;
    height: auto;
    color: #ebebec;
    font-size: 17rem;
    /*font-family: 'Marcellus', serif;*/
    line-height: 1.0;
    text-align: center;
    z-index: -1;
}

.flowimg::before {
    left: 0;
    animation: flowimg 60s linear infinite;
}

.flowimg::after {
    left: 100%;
    animation: flowimg 60s linear infinite;
}

@keyframes flowimg {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}

@media screen and (max-width: 480px) {
  .flowimg {
      padding: 4rem 10vw;
  }
}

/*-------------------------------
トップページ　会社概要　topCompany
-------------------------------*/

.topCompany__inner {
  display: flex;
  align-items: flex-end;
    max-width: 128rem;
    margin: 0 auto;
    padding: 6rem 0;
    figure {
      width: 40%;
      height: 100%;
      img {
        width: 100%;
        height: 50rem;
        object-fit: cover;
      }
    }
}

.topCompany__title {
    font-family: "Klee One", cursive;
    font-weight: 500;
    font-style: normal;
    font-size: 4rem;
    letter-spacing: .03em;
    margin: 5rem 0;

    span {
        letter-spacing:-0.25em;
    }
}

.topCompany__text {
  p {
    font-weight: 400;
    font-style: normal;
    font-size: 1.8rem;
    line-height: 4rem;
    margin-bottom: 6rem;
    padding-right: 2rem;
  }
}

/*-------------------------------
contact
-------------------------------*/

.contact {
  padding: 0 10rem;
}

.contact__inner {
    max-width: 127rem;
    margin: 10rem auto 20rem auto;
    padding: 10rem 0 20rem 0;
    background-color: var(--content-color);
    color: var(--base-color);
    padding: 10rem;
    border-radius: 10px;
    display: flex;
    justify-content: space-between;
}

.contact__title {
    font-size: 4rem;
}

.contact__text {
    /*width: 20vw;*/
    width: 30rem;
    text-align: center;

      span {
          display: block;
          font-size: 3rem;
          font-weight: bold;
      }
}

.contact__button {
    text-align: left;
    background: var(--base-color);
    color: var(--main-color);
    font-size: 2rem;
    font-weight: bold;
    border-radius: 50px;
    margin-bottom: 1.5rem;
    
    a {
        display: block;
        padding: 1rem 2rem;
        border-radius: 50px;
        width: 100%;
    }

    a:hover {
        color: var(--accent-color);
        transition: .5s;
    }
}

/*-------------------------------
footer
-------------------------------*/

footer {
    width: 100%;
    padding: 0 10rem;
    background-color: #F5F5F7;
}

.footerInner {
  display: flex;
  justify-content: space-between;
    max-width: 128rem;
    margin: 0 auto;
    padding-top: 8rem;
    color: var(--main-color);
}

.footer_add {
  /*width: 50rem;*/
  h3 {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 1rem;
  }
    p {
        font-weight: normal;
    }
}

.footer__menu {
    /* グリッドレイアウトを指定 */
    display: grid;
    /* グリッドの列の幅を指定 */
    grid-template-columns: 20rem 20rem;
    /* グリッドの行の高さを指定 */
    grid-template-rows: 4rem 4rem 4rem 4rem;
    list-style: none;
    /*margin: 0 auto;*/
}

.menu__item {
    padding: 0 1.5rem;
    font-size: 1.8rem;
    font-weight: 500;
    color: var(--main-color);
      ul {
        list-style: none;
        font-size: 1.6rem;
        font-weight: 400;
        padding: 0;
        margin-top: 3rem;
        li {
          margin-bottom: 1.5rem;
          
        }
      }
    }
.menu__item:nth-child(1) {
    grid-column: 1 / 1;
    grid-row: 1 / 6;
}


/* ---------- SNSボタン ---------- */

.footer__sns {
  margin: 3rem auto;
}

.sns__button-white {
  width: 30rem;
  height: 6rem;
  background: var(--base-color);
  text-align: center;
  color: var(--main-color);
  font-weight: bold;
  margin: 2rem 0;
    a {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 2rem;
      transition: .5s;
    }
    img {
    width: 2rem;
    height: 2rem;
  }
}

.sns__button-white a:hover{
    color: var(--base-color);
    background: var(--main-color);
    transition: .5s;
}

.sns__button-blue {
  width: 30rem;
  height: 6rem;
  background: var(--main-color);
  text-align: center;
  color: var(--base-color);
  font-weight: bold;
  margin: 2rem 0;
  a {
    width: 100%;
    height: 100%;
    color: var(--base-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2rem;
    transition: .5s;
  }
  img {
    width: 5rem;
    height: 5rem;
}
}

.sns__button-blue a:hover {
    opacity: .6;
    transition: .5s;
}

/* ---------- copyライト ---------- */
.copyright {
  text-align: center;
  font-size: 1.3rem;
  padding: 10rem 0 5rem 0;
  background-color: #F5F5F7;
}


/*===============================

個別ページ　共通設定

================================*/

/* 個別ページキャッチ画像 */
.pageV {
    display: flex;
    justify-content: space-between;
    align-items: center;
    img {
      width: 70%;
      height: 60rem;
      object-fit: cover;
      object-position: top;
      border-radius: 0 0 0 30px;
    }
  }

.pageV__catch {
  width: 30%;
  text-align: center;
  font-size: 1.8rem;
    h2 {
    font-family: "Caveat", cursive;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 7rem;
  }
  p {
    text-align: center;
  }
}

/* 個別ページ　2カラム　レイアウト */

.page__2column {
    max-width: 128rem;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}


/* 左側サイド */
.page__sideList {
  position: sticky;
  top: 200px;
  width: 25%;
  margin-bottom: 30rem;
    ul {
        list-style: none;
        padding-left: 0;
        li {
          margin-bottom: 2rem;
          a {
            transition: .5s;
          }
          a:hover {
            color: var(--accent-color);
            transition: .5s;
          }
          span {
            font-family: "Zen Kaku Gothic New", "Noto Sans JP";
            color: var(--data-color);
            font-size: 2rem;
            margin-right: 1rem;
          }
      }
    }
}

.page__sideTitle {
    padding-bottom: 1rem;
    margin-bottom: 3rem;
    border-bottom:1px solid #00205b;
}

.side__catch {
  text-align: center;
  margin-bottom: 5rem;
    h2 {
    font-family: "Caveat", cursive;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 8rem;
  }
  p {
    text-align: center;
  }
}

.side__cat {
  margin-bottom: 2rem;
}


/* 右側コンテンツ */
.page__contents {
  width: 70%;
  position: relative;
  h3 {
    font-size: 2.2rem;
    border-bottom: 1px solid var(--main-color);
    padding: 0 0 .5rem 0;
    margin: 1rem 0;
  }
  h4 {
    font-size: 2rem;
    margin: 1rem;
  }
  p {
    color: #333;
  }
}

/*===============================

about　私たちのこと

================================*/

.about__content {
  margin: 5rem 0 10rem 0;
  p {
    font-size: 1.8rem;
  }
  figure {
    width:90%;
    margin :0 auto;
  }
}


/* ---------- Dream it,Together ---------- */

.about__concept {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    justify-content: space-between;

    dl {
      width: 100%;
      font-family: "Zen Kaku Gothic New", sans-serif;
      font-weight: 400;
      font-style: normal;
      font-size: 1.8rem;
      line-height: 3rem;
      margin-top: 10rem;
    }

    dt {
      font-size: 2.5rem;
      font-weight: bold;
      font-family: "Zen Kaku Gothic New", sans-serif;
      font-weight: 500;
      font-style: normal;
      margin-bottom: 2rem;
    }

    dd {
      margin-bottom: 5rem;
      color: #333;
    }

    dd:last-child {
      margin-bottom: 0;
    }
}

.about__conceptTitle {
  container-type: scroll-state;
  position: sticky;
  width: 25%;
  top: 40vh;
  font-size: 7rem;
  font-family: "Caveat", cursive;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;

  span {
    display: block;
  }
}

@container scroll-state(stuck: top) {
  /* about__conceptTitle span が固定されたときのスタイルを記述する */
  .about__conceptTitle span:first-child {
    color: var(--accent-color);
    transition: .5s;
  }
}

.about__conceptText {
  container-type: scroll-state;
  position: sticky;
  top: 0;
  width: 70%;

}
/* ITセキュリティ */

.about__wap-lightBlue {
  width: 90%;
  padding: 4rem 5rem;
  margin: 0 auto 5rem auto;
  background-color: #ebf6ff;
  border-top: 8px solid #4391d1;
  h4 {
    font-size: 2.2rem;
    margin-bottom: 2rem;
  }
  .about__point {
    color: #4391d1;
  }
}

/* DX化サポートとBCP */

.about__point {
  padding: 2rem 3rem;
  color: #e1979f;
  background-color: var(--base-color);
  font-weight: bold;
  font-size: 1.7rem;
  margin-top: 5rem;
}

.about__wap-lightPink {
  width: 90%;
  padding: 4rem 5rem;
  margin: 0 auto 5rem auto;
  background-color: #fcf5f5;
  border-top: 8px solid #e1979f;
  h4 {
    font-size: 2.2rem;
    margin-bottom: 2rem;
  }
  .about__point {
    color: #e1979f;
  }
}

/* オフィス環境の整備 */

.about__wap-lightGreen {
  width: 90%;
  padding: 4rem 5rem;
  margin: 0 auto 5rem auto;
  background-color: #f5fcfd;
  border-top: 8px solid #62a4b4;
  h4 {
    font-size: 2.2rem;
    margin-bottom: 2rem;
  }
  .about__point {
    color: #62a4b4;
  }
}

.about__point {
  padding: 2rem 4rem;
  background-color: var(--base-color);
  font-weight: bold;
  margin-top: 5rem;
}

/* 画像ギャラリー */
	@keyframes infinity-scroll-left {
from {
  transform: translateX(0);
}
  to {
  transform: translateX(-100%);
}
}
.scroll-infinity__wrap {
  display: flex;
  overflow: hidden;
}
.scroll-infinity__list {
  display: flex;
  list-style: none;
  padding: 0
}
.scroll-infinity__list--left {
  animation: infinity-scroll-left 80s infinite linear 0.5s both;
}
.scroll-infinity__item {
  width: calc(100vw / 5);
  margin: 0 2rem;
  img {
    object-fit: cover;
    width: 30rem;
    height: 20rem;
  }
}
.scroll-infinity__item>img {
  width: 100%;
}
/*===============================

Works　事業内容

================================*/

.card {
  display: flex;
  flex-wrap: wrap;
  justify-content:space-between;
  list-style: none;
  padding-left: 0;
  margin: 2rem 0;
  li {
    width: 30%;
    margin-top: 2rem;
    margin-bottom: 2rem;
    
    figure {
      width: 100%;
      height: 18rem;
      border-radius: 10px;
      overflow: hidden;
    }

    img {
      object-fit: cover;
    }
    h4 {
      font-size: 1.8rem;
      margin: .5rem 1rem;
    }
  }
}

.card::after{
  content:"";
  display: block;
  width:30%;
}

.cases_title {
  max-width: 128rem;
  margin: 0 auto 2rem;
  h3 {
      font-family: "Caveat", cursive;
      font-optical-sizing: auto;
      font-weight: 400;
      font-style: normal;
      font-size: 7rem;
  }
  p {
    font-size: 2rem;
  }
}


.list__catWap {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding-left: 0;
  margin: 0 1rem 0 1rem;
  li {
    width: auto;
    margin: 0 1rem 1rem 0;
    font-size: 1.2rem;
    font-weight: normal;
    white-space: nowrap;
    color :var(--base-color);
    background-color:var(--accent-color);
    padding: .2rem 1rem;
    border-radius: 5px;
  }
}

/* ----- zoomボックス ----- */

.image_link img {
  display:block;
  width:100%;
  transition:0.3s;
}

.image_link a:hover:after{
  width:100%;
}
.image_link:hover figure{
  border-radius: 10px;
  overflow: hidden;
}

.image_link:hover img{
  transform:scale(1.04);
  transition:0.3s;
}

.number {
  font-family: "Zen Kaku Gothic New","Noto Sans JP";
  font-size: 4rem;
  color: #accaf3;
  margin-right: 1rem;
}

/*===============================

Company　会社概要

================================*/

/* 会社基本情報 */
.outline {
  div {
    padding: 2rem;
    display: flex;
    flex-wrap: wrap;
    border-bottom:1px solid var(--main-color);

    dt {
    width: 20%;
    }

    dd {
      width: 80%;
      ul {
        list-style: none;
        padding: 0;
        li {
          margin-bottom: 1rem;
        }
      }
    }
  }
}

.member {
  width: 80rem;
  text-align: center;
  margin: 5rem auto;
  img {
    display: inline-block;
    margin: 3rem;
    width: 20rem;
  }
}

.map {
    iframe {
      width: 100%;
      height: 50vh;
    }
}

/*===============================

Case　導入事例

================================*/
.page__catWap {
  display: flex;
  list-style: none;
  padding-left: 0;
  /*margin-bottom: 1rem;*/
  li {
    margin-right: 1rem;
    a {
    font-size: 1.2rem;
    font-weight: normal;
    color :var(--base-color);
    background-color:var(--accent-color);
    padding: .3rem 1.2rem;
    border-radius: 5px;
  }
}
}

.card .page__catWap li {
  margin: 0 1rem 0 0;
  width: auto;
}

/* 導入事例・お知らせなどブログ形式の本文 */

.page__blog {
  color: #333;

  h2,h3,h4,h5,h6 {
    color: #00205b;
  }

    h2 {
    margin-bottom: 3rem;
  }


  p {
      margin: 2rem 0;
      /*font-size: 1.5rem;*/
      
  }

  img {
    width: 60%;
    margin: 5rem auto;
  }

  li {
    margin-bottom: 2rem;
  }
}

h3.blog__title {
  font-size: 3rem;
  margin: 2rem 0;
  span {
    display: block;
  }
}

h3.news__title {
  color: #333333;
  font-size: 1.8rem;
  font-weight: normal;
}

.case__wap-lightPink {
  width: 100%;
  padding: 4rem 5rem;
  margin: 5rem auto;
  background-color: #fcf5f5;
  
  h3 {
    /*color: #e1979f;*/
    font-size: 2.2rem;
    margin-bottom: 2rem;
    border-bottom: none;
  }

dl {
}

  dt {
    font-size: 1.8rem;
    font-weight: bold;
    margin-top: 2rem;
  }

dt:first-child {
  margin-top: 0;
}

dt::before {
  content: "●";
  font-size: 1.4rem;
  margin-right: .5rem;
  color: #e1979f;
}

  dd {
    margin-left: 1.9rem;
  }
}

 .case__wap-lightPink div {
    padding: 2rem;
    background-color: var(--base-color);
  }

/* ライトブルー */

.wap-lightBlue {
  width: 90%;
  padding: 4rem 5rem;
  margin: 0 auto 5rem auto;
  background-color: #ebf6ff;
  .about__point {
    color: #4391d1;
    font-weight: bold;
  }
}

/* ライトピンク */

.wap-lightPink {
  width: 90%;
  padding: 4rem 5rem;
  margin: 0 auto 5rem auto;
  background-color: #fcf5f5;
  p {
    color: var(--main-color);
  }
}

/* ライトグリーン */

.wap-lightGreen {
  width: 90%;
  padding: 4rem 5rem;
  margin: 0 auto 5rem auto;
  background-color: #f5fcfd;
  .point {
    color: #62a4b4;
    font-weight: bold;
  }
}


.w1000 {
  width: 100rem;
  margin: 1rem auto;
}
  /* ---------- PHP工房のブログ内容 ---------- */

  .detailText p {
    color: #333 !important;
  }


/* ---------- 新着一覧 ---------- */
.news__list {
list-style: none;
padding-left: 0;
li {
  display: flex;
  align-items: start;
  padding: 2rem;
  border-bottom: 1px solid var(--data-color);
}
}

.up_ymd {
    padding-right: 1rem;
}

.catName {
    color: var(--main-color) !important;
    background-color: var(--data-color);
    border-radius: 3px;
    padding: .2rem 1rem;
    font-size: 1.2rem;
    margin: 0 2rem 0 1rem;
    white-space: nowrap;
  }


.pager {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 8px;
    list-style-type: none;
    padding: 0;
    margin: 3rem;
}

.pager a {
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 2em;
    height: 2em;
    border-radius: 25px;
    background-color: #f2f2f2;
    color: var(--content-color);
}

.ppager a:not(:hover) {
    text-decoration: none;
}

.pager .current a {
    background-color: var(--content-color);
    color: #fff;
    pointer-events: none;
}

/*===============================

Contact　お問い合わせ

================================*/

.contact__contents {
    max-width: 128rem;
    margin: 0 auto;
    margin-top: 10rem;
    p {
      font-size: 1.8rem;
    }
}

.line {
    width: 70rem;
    margin: 0 auto;
    border: 1px solid var(--main-color);
    border-radius: 30px;
    padding: 5rem 8rem;
    text-align: center;
    font-size: 1.8rem;
    p {
        margin-bottom: 1rem;
        text-align: center;
    }
}

.line__tel {
    font-weight: bold;
      span {
          font-size: 3rem;
      }
}


.mail {
  text-align: center;
  margin: 10rem 0;
  h4 {
    margin: 3rem 0;
  }
  p {
  }
  h4 {
    font-size: 1.8rem;
  }
}

.contact_form {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
  width: 80rem;
  margin: 10rem auto 3rem;

  dt {
    width: 20rem;
    text-align: left;
    margin-bottom: 3rem;
  }
  dd {
    width: 50rem;
    margin-bottom: 3rem;
    input,textarea {
      width: 100%;
      border: none;
      background: #f3f3f3;
      padding: 2rem;
      border-radius: 10px;
    }
  }
}

dd.radioBtm {
  display: flex;
  flex-wrap: wrap;
  text-align: left;
  input {
    
    width: 15px;
  }
  label {
    width: 95%;
  }
}

.required {
  color: #ffffff;
  background: #f24646;
  border-radius: 10px;
  padding: .2rem .8rem;
  margin-left: 1rem;
  font-size: 1.2rem;
}

/* ---------- 送信ボタン ---------- */

.send__btm {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 30rem;
      height: 6rem;
      border-radius: 5px;
      background: var(--content-color);
      text-align: center;
      color: var(--base-color);
      margin: 0 auto;
  input {
    width: 100%;
    height: 100%;;
    border: none;
    background: none;
    color: var(--base-color);
  }
}

.send__btm:hover{
    color: var(--base-color);
    background: var(--accent-color);
    transition: .5s;
}

/* --------------------- */
/* PCのスタイル(1281px以上)*/

.only-pc {
	display: block;
}
.only-mobile {
	display:none;
}
.only-pc-inline {
	display: inline;
}
.only-mobile-inline {
	display:none;
}


#menu-btn-check {
    display: none;
}

/* タブレットのスタイル */
@media screen and (max-width: 1280px) {
.kV__slide {
  height: 60vh;
}
}

/* スマートフォンのスタイル */
@media screen and (max-width: 430px) {

html {
  font-size:min(2vw,62.5%);
}

.only-pc {
  display: none;
}
.only-mobile {
  display: block;
}

.only-pc-inline {
	display:none;
}
.only-mobile-inline {
	display:inline;
}


.margin-lv2 {
  margin: 5rem 0;
}

.margin-lv3 {
  margin: 1rem 0 5rem 0;
}

.margin-lv4 {
  margin: 2rem 0 4rem 0;
}


.buttonIconText03 {
  margin: 2rem auto;
}

.w1000 {
  width: 100%;
}
/* ページ内リンクの調整 */

#concept::before,
#dreamIt::before,
#workArea::before,
#itsolution::before,
#officesupport::before,
#branding::before,
#outdoor::before,
#ourway::before,
#outline::before,
#SocialContribution::before {
  display: none;
}

/*--------------------*/

.menu-btn {
    position: fixed;
    top: 10px;
    right: 10px;
    display: flex;
    height: 60px;
    width: 60px;
    justify-content: center;
    align-items: center;
    z-index: 90;
    background-color: var(--content-color);
}
.menu-btn span,
.menu-btn span:before,
.menu-btn span:after {
    content: '';
    display: block;
    height: 3px;
    width: 25px;
    border-radius: 3px;
    background-color: #ffffff;
    position: absolute;
}
.menu-btn span:before {
    bottom: 8px;
}
.menu-btn span:after {
    top: 8px;
}

/* ボタンがタップされたとき三本線を×にする */

#menu-btn-check:checked ~ .menu-btn span {
    background-color: rgba(255, 255, 255, 0);/*メニューオープン時は真ん中の線を透明にする*/
}
#menu-btn-check:checked ~ .menu-btn span::before {
    bottom: 0;
    transform: rotate(45deg);
}
#menu-btn-check:checked ~ .menu-btn span::after {
    top: 0;
    transform: rotate(-45deg);
}

/* メニューの装飾 */

.menu-content {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 80;
    background-color: var(--content-color);
}
.menu-content ul {
    padding: 70px 10px 0;
}
.menu-content ul li {
    border-bottom: solid 1px var(--data-color);
    list-style: none;
}
.menu-content ul li a {
    display: flex;
    align-items: center;
    width: 100%;
    font-size: 15px;
    box-sizing: border-box;
    color:#ffffff;
    text-decoration: none;
    padding: 9px 15px 10px 0;
    position: relative;
    img {
      margin-right:1rem;
    }
}
.menu-content ul li a::before {
    content: "";
    width: 7px;
    height: 7px;
    border-top: solid 1px var(--base-color);
    border-right: solid 1px var(--base-color);
    transform: rotate(45deg);
    position: absolute;
    right: 11px;
    top: 16px;
}

.menu-content {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 100%;/*leftの値を変更してメニューを画面外へ*/
    z-index: 80;
    background-color: var(--content-color);
    transition: all 0.5s;/*アニメーション設定*/
}

#menu-btn-check:checked ~ .menu-content {
    left: 0;/*メニューを画面内へ*/
}
/*--------------------*/

.kV__slide {
  height: 60vh;
}

.topInfo {
    position: absolute;
    bottom: auto;
    left: 0;
    width: 100%;
    padding: 2rem;
    background-color: var(--content-color);
    color: var(--base-color);
    z-index: 10;
    h3 {
      margin-bottom: 1rem;
      font-size: 2rem;
    }
}

.topInfo__item {
  display: block;
  padding: 1rem;
}

#newsList {
  padding: 0;
  .title-box {
  width: 100%;
  margin: 1rem 0;
}
}



.kV__catch {
  width: 100%;
  top: 50%;
  bottom: 0;
  left: 0;
  text-align: center;
  line-height: 1;
  h2 {
    margin-bottom: 2rem;
}
p {
    text-align: center !important;
  }
}

.header__logoImg {
  width: 8rem;
  padding-left: 1rem;
}

.header__logoText {
  font-size: 1rem;
  width: 30rem;
  span {
    font-size: 2rem;
  }
}

.kV__image.src1 {
  background-position: 70% 30%;
}

/* ---------- topAbout ---------- */
.top__title {
  width: 100%;
}

.topAbout{
  padding: 0 2rem;
  margin-top: 20rem;
}

.topAbout__inner {
  padding: 2rem 0;
}

.topAbout__text {
    margin-bottom: 3rem;
}

/* ---------- topWorks ---------- */
.topWorks {
  padding: 0 2rem;
}
.topWorks__inner {
  padding: 2rem 0;
}

.topWorks__content {
  display: block;
  dl {
  width: 100%;
  margin: 2rem 0;
  }
  dd {
    margin-bottom: 2rem;
  }
  img {
    width: 100%;
    height: auto;
  }
}

/* ---------- 流れる文字 ---------- */

.flowimg {
  padding: 6rem;
}

.flowimg::before,
.flowimg::after {
    font-size: 10rem;
}

/* ---------- topCompany ---------- */
.topCompany {
  padding: 0 2rem;
}

.topCompany__inner {
  display: block;
  padding: 2rem 0;
  figure {
    width: 100%;
  }
}

.topCompany__title {
  margin: 2rem 0;
}

.topCompany__text {
    p {
        margin-bottom: 3rem;
        padding-right: 0;
    }
}

/* ---------- topContact ---------- */
.contact {
  padding: 0 2rem;
}

.contact__inner {
  margin: 4rem auto;
  padding: 3rem;
  display: block;
}

.contact__text {
  width: 100%;
}

.contact__button {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

/* ---------- footer ---------- */
footer {
  padding: 0 2rem;
}
.footerInner {
  display: block;
  padding-top: 3rem;
}
.footer_add {
  width: 100%;
}

.footer__sns {
  width: 100%;
}

.sns__button-white,
.sns__button-blue {
  width: 100%;
  height: 8rem;
}


.footer__menu {
  padding-left: 0;
  grid-template-rows: 4rem 4rem 4rem auto;
  margin: 0 auto;
  width: 90%;
}

/* 個別ページ　2カラム　レイアウト */

.page__2column {
    display: block;
    padding: 0 2rem;
}


/* 左側サイド */
.page__sideList {
  position: relative;
  top: 0;
  width: 100%;
  margin-bottom: 2rem;
    ul {
        list-style: none;
        padding-left: 0;
        text-align: center;
        li {
          margin-bottom: 0;
          padding: 1rem 0;
          border-bottom: 1px solid #eee;
      }
    }
}

.side__cat {
  margin-bottom: 0;
  padding: 1rem 0;
  text-align: center;
  border-bottom: 1px solid #eee;
}

.page__sideTitle {
    padding-bottom: 1rem;
    margin-bottom: 1rem;
}

.side__catch {
  text-align: center;
  margin-bottom: 5rem;
    h2 {
    font-family: "Caveat", cursive;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 8rem;
  }
}


/* 右側コンテンツ */
.page__contents {
  width: 100%;
  position: relative;
  h3 {
    font-size: 2.3rem;
  }
  h4 {
    font-size: 2rem;
  }

  p {
    color: #333;
  }
}

.mt100 {
  margin-top: 3rem !important;
}

.mt200 {
  margin-top: 10rem !important;
}

.page__blog img {
  width: 100%;
}

.pageV {
  display: block;
  img {
    width: 100%;
    border-radius: 0;
  }
}

.pageV__catch {
  width: 100%;
  line-height: 1;
  margin: 2rem 0;
}
.about__concept {
  dl {
    margin-top: 5rem;
  }
}
.about__conceptTitle {
  position: static;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  span {
    display: inline-block;
  }
}

.about__conceptText {
  width: 100%;
}

.about__wap-lightBlue,
.about__wap-lightPink,
.about__wap-lightGreen {
  width: 100%;
  padding: 2rem 3rem;
}

.about__point {
  margin-top: 2rem;
}

.scroll-infinity__item {
  width: calc(100vw / 2);
}

.card > li {
    width: 48%;
    margin-bottom: 1rem;
    figure {
      height: auto;
      border-radius: 5px;
    }
}

.member {
  width: 100%;
  img {
    display: block;
    margin: 2rem auto;
  }
  p {
    margin-bottom: 2rem;
  }
}

.line {
  width: 90%;
}

.contact_form {
  width: 90%;
  display: block;
  margin: 3rem auto;
  dd {
    width: 100%;
  }
}

.contact_form {
    & dd {
        textarea {
            width: 100%;
        }
    }
}
/* ---------- 新着一覧 ---------- */
.news__list {
li {
  display: flex;
  align-items: center;
  padding: 2rem;
  border-bottom: 1px solid var(--data-color);
}
}

/* ブログ */

.blog__wap-lightPink {
  padding: 1rem;
}

.case__wap-lightPink {
  padding: 2rem 1rem;
  margin: 3rem auto;
  
  h4 {
    /*color: #e1979f;*/
    font-size: 2.2rem;
    margin-bottom: 2rem;
    /*border-bottom: 1px solid #e1979f;*/
  }

}
}