@charset "UTF-8";

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

  基本設定

  ---------------------------------*/
body {
  font-family: 'Arvo', 'Noto Sans JP', 'sans-serif';
  color: #fff;
  background: #0D0C0C;
  position: relative;
  font-weight: 400;
  overflow-wrap: break-word;
}

p {
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: 0.3em;
}

img {
  width: 100%;
}

video {
  width: 100%;
}

h2 {
  font-size: 40px;
  margin-bottom: 5px;
}

h3 {
  font-size: 16px;
  letter-spacing: 0.2em;
  margin-bottom: 30px;
}

h4 {
  font-size: 30px;
}

h5 {
  font-size: 22px;
  margin-bottom: 12px;
}

.container {
  background-color: #0d0c0ce1;
}

.sp_none {
  display: none;
}

.main_contents {
  margin-inline: auto;
}

/* ↓意図していない画面はみ出しの対処として */
main {
  overflow: hidden;
}

@media screen and (768px <=width) {
  .main_contents {
    max-width: 760px;
  }

  h2 {
    font-size: 50px;
  }

  h3 {
    font-size: 18px;
    margin-left: 50px;
  }

  p {
    font-size: 14px;
  }

  .sp_none {
    display: block;
  }
}

@media screen and (1024px <=width) {

  .main_contents {
    max-width: 1280px;
    position: relative;
  }

  h2 {
    font-size: 100px;
  }

  h3 {
    font-size: 30px;
    margin-left: 50px;
  }

  p {
    font-size: 18px;
  }
}

/*=========================
　カーソル、フォローまる
=========================*/
/*独自のマウスカーソルを作成*/
.cursor {
  position: fixed;
  top: -10px;
  left: -10px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #ec1c1c;
  z-index: 1000;
  transition: width 0.5s, height 0.5s, top 0.5s, left 0.5s;
  transform: translate(0, 0);
  pointer-events: none;
}

/*aタグにホバーした時に見た目変化*/
.cursor.cursor--hover {
  top: -50px;
  left: -50px;
  width: 110px;
  height: 110px;
  background: #ec1c1c96;
}


@media screen and (width <=1024px) {
  .cursor {
    display: none;
  }
}

/*=========================
　アンカーリンク用TOP余白
=========================*/
html {
  scroll-padding-top: 100px;
  scroll-behavior: smooth;
}

/*=========================
　invew 
=========================*/
/* 左からふわっと */
.fadeIn_left {
  opacity: 0;
  transform: translate(-50%, 0);
  transition: 2s;
}

.fadeIn_left.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

/* 右からふわっと */
.fadeIn_right {
  opacity: 0;
  transform: translate(50%, 0);
  transition: 2s;
}

.fadeIn_right.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

/* 下からふわっと */
.fadeIn_up {
  opacity: 0;
  transform: translate(0, 50%);
  /* invew発動時のTOPへ戻る時のスレ対処法、50％を↑20%に変更 */
  transition: 2s;
}

.fadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
}

/* inview調整、ここまで↑ */





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

  ヘッダー メニュー

---------------------------------*/
header {
  position: fixed;
  height: 70px;
  width: 100%;
  top: 0;
  z-index: 100;
  align-items: center;
  justify-content: space-between;
  background-color: #0d0c0c78;
}

.logo {
  width: 100px;
}

.global-nav-pc {
  /* ↓スマホではPC用のナビゲーションを消す */
  display: none;
}

.SP_header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 10px;
}

.blank {
  width: 100px;
}

.global-nav-sp-cta {
  display: table;
  width: 100px;
  height: 40px;
  background-color: #fff;
  color: #0D0C0C;
  text-align: center;
}

.inner {
  display: table-cell;
  vertical-align: middle;
  font-size: 14px;
  font-weight: 600;
}

@media screen and (1024px <=width) {

  /* ↓PCでは、SP用の空要素とCONTACTボタンを消す */
  .pc-none {
    display: none;
  }
}


/*=========================
　ドロワーのための調整CSS
=========================*/
.drawer-hamburger {
  width: 40px;
  padding: 30px 15px 25px;
}

.drawer-hamburger-icon,
.drawer-hamburger-icon::after,
.drawer-hamburger-icon::before {
  background-color: #fff;
}

.drawer-nav {
  background: #fff;
}

.drawer--left.drawer-open .drawer-hamburger {
  left: 0px;
}

.drawer--left.drawer-open .drawer-nav {
  opacity: 0.9;
  width: 100vw;
  padding-top: 150px;
}

.drawer-menu li {
  border-bottom: 1px solid #ccc;
}

.drawer-menu li a {
  position: relative;
  display: block;
  padding: 20px;
  text-decoration: none;
  color: #0D0C0C;
}

.drawer-menu li a::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 10px;
  height: 10px;
  width: 10px;
  border-top: 2px solid #ccc;
  border-right: 2px solid #ccc;
  transform: translateY(-50%) rotate(45deg);
}

/*=========================
　動画全画面表示　パララックス
=========================*/
#video-area {
  position: fixed;
  z-index: -1;
  /*最背面に設定*/
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  overflow: hidden;
}

#video {
  margin-top: 70px;
  position: absolute;
  z-index: -1;
  min-width: 100%;
}


@media screen and (1024px <=width) {
  header {
    width: 100%;
    position: relative;
    position: fixed;
    left: 50%;
    translate: -50%;
    height: 60px;
    background-color: #0d0c0ce1;
  }


  .header-wrap {
    max-width: 1280px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-inline: auto;
    border-bottom: 2px solid #fff;
  }

  .drawer-hamburger,
  .drawer-nav {
    display: none;
  }

  .global-nav-pc {
    display: block;
  }

  .pc_menu {
    display: flex;
    align-items: center;
  }

  .pc_menu li {
    position: relative;
    display: inline-block;
    margin-left: 40px;
    font-size: 18px;
  }

  .pc-cta {
    width: 150px;
    height: 35px;
    display: table;
    text-align: center;
    background-color: #fff;
    margin-left: 40px;
    font-size: 20px;
    font-weight: 400;
  }

  .buttom {
    display: table-cell;
    vertical-align: middle;
    color: #0D0C0C;
  }

  #video {
    margin-top: 0;
  }
}





/*---------------------------------
　　Strengths
---------------------------------*/
#strengths {
  margin-top: 300px;
  padding-top: 50px;
  margin-inline: auto;
}

.main_ttl_bl {
  padding: 0 10px 0 30px;
  margin-inline: auto;

}

.ttl_el {
  padding: 0 10px 0 20px;
  width: 370px;
  margin-inline: auto;
}

.ttl_bl {
  display: flex;
  align-items: center;
  margin-top: 100px;

}

.case_number {
  margin-right: 20px;
}

.case_line {
  width: 320px;
  margin-bottom: 50px;
}

.case_tile {
  width: 360px;
  margin-bottom: 130px;
  margin-inline: auto;


  & img {
    margin-bottom: 25px;
    padding: 0 10px 0 10px;
  }
}

@media screen and (768px <=width) {
  h3 {
    margin-bottom: 15px;
  }

  #strengths {
    margin-top: 500px;
  }

  .pc_ttl_bl {
    display: flex;
    align-items: flex-end;
    margin-bottom: 40px;
  }

  .case_study {
    display: flex;
    justify-content: space-between;
  }
}

@media screen and (1024px <=width) {
  #strengths {
    margin-top: 800px;
  }

  .main_ttl_bl,
  .pc_ttl_bl {
    width: 1280px;
    padding-top: 50px;
  }

  .case_study {
    width: 1000px;
  }

  .case_1,
  .case_2 {
    width: 370px;
  }

  .case_2 {
    margin-left: 90px;
  }

  .ttl_el {
    width: 550px;

    & img {
      width: 520px;
    }
  }

  .case_number {
    font-size: 60px;

    & p {
      font-size: 20px;
    }
  }

  .case_tile {
    & img {
      width: 520px;
      transition-duration: 1s;
    }
  }

  .case_tile img:hover {
    transform: scale(1.04, 1.04)rotate(0.5deg);
    transition-duration: 0.3s;
  }

}





/*---------------------------------
　　Works
---------------------------------*/
.work_el {
  width: 300px;
  margin-top: 80px;
  margin-inline: auto;

  & img {
    margin-bottom: 60px;
  }
}

@media screen and (768px <=width) {
  .work_el {
    width: 700px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;

    & img {
      width: 300px;
    }
  }
}

@media screen and (1024px <=width) {
  .work_el {
    width: 1190px;
  }
}






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

　  Staff

---------------------------------*/
.staff {
  margin-top: 100px;
}

.member {
  width: 320px;
  margin-inline: auto;
}

.member_photo {
  margin-top: 80px;
  margin-bottom: 30px;

  /* ↓マウスオーバーで名前画像入れ替え箇所 */
  position: relative;
  height: 100px;
  /* border-radius: 12px; */
  overflow: hidden;
}

.member_photo img {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 100%;
  display: block;
  -webkit-transition: .4s ease-in-out;
  transition: .4s ease-in-out;
}

.member_photo:hover img:nth-of-type(2) {
  opacity: 0;
}

/* ここまで */



/* ゆらゆら */
.yure {
  animation: yurayura 4s linear infinite;
}

@keyframes yurayura {

  0%,
  100% {
    transform: rotate(2deg);
  }

  50% {
    transform: rotate(-3deg);
  }
}

.yure2 {
  animation: yura2 3s linear infinite;
}

@keyframes yura2 {

  0%,
  100% {
    transform: rotate(3deg);
  }

  50% {
    transform: rotate(-1deg);
  }
}

.yure3 {
  animation: yura3 4s linear infinite;
}

@keyframes yura3 {

  0%,
  100% {
    transform: rotate(1deg);
  }

  50% {
    transform: rotate(-4deg);
  }
}

/* ぽよぽよ収縮 */
.anim-box {
  animation: poyopoyo 2s ease-out infinite;
  opacity: 1;
}

@keyframes poyopoyo {

  0%,
  40%,
  60%,
  80% {
    transform: scale(1.0);
  }

  50%,
  70% {
    transform: scale(0.95);
  }
}

@keyframes poyopoyo {

  0%,
  40%,
  60%,
  80% {
    transform: scale(1.0);
  }

  50%,
  70% {
    transform: scale(0.95);
  }
}

/* 調整ここまで */



.post {
  display: flex;
  align-items: center;
  margin-bottom: 24px;
}

.post_circle {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: solid 1px #fff;
}

.post_name {
  font-size: 20px;
  margin-left: 20px;
}

.pc-none-visivility {
  visibility: hidden;
}

@media screen and (768px <=width) {
  .member_el {
    display: flex;
    flex-wrap: wrap;
  }

  .member {
    width: 330px;
  }
}

@media screen and (1024px <=width) {
  .member {
    width: 340px;
  }

  .post_name {
    font-size: 20px;
    letter-spacing: 0.1em;
  }

  .member_tex {
    font-size: 14px;
    letter-spacing: 0.1em;
  }
}



.circle_1 {
  background: #0D0C0C;
}

.circle_2 {
  background: #06B6E9;
}

.circle_3 {
  background: #FA880E;
}

.circle_4 {
  background: #059B08;
}

.circle_5 {
  background: #9D04ED;
}

.circle_6 {
  background: #3C00FF;
}

.circle_7 {
  background: #797979;
}

.circle_8 {
  background: #D9C91E;
}

.circle_9 {
  background: #FC1111;
}

.circle_10 {
  background: #F8CD36;
}

.circle_11 {
  background: #ADF038;
}

.circle_12 {
  background: #275650;
}

.circle_13 {
  background: #7e1a37;
}

.circle_14 {
  background: #ef688e;
}





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

　  Company

---------------------------------*/
.message {
  margin-top: 100px;
}

.message_lead {
  font-size: 16px;
}

.message_tex {
  margin-top: 50px;
  padding-left: 30px;
  padding-right: 20px;
  margin-inline: auto;
  margin-bottom: 70px;
}

.info_detail {
  width: 370px;
  margin-top: 50px;
  padding-left: 30px;
  margin-inline: auto;
  margin-bottom: 70px;
}

.list {
  display: flex;
}

.info_ttl {
  width: 130px;
}

.info_text {
  width: fit-content;
}

.map {
  position: relative;
  width: 300px;
  height: 200px;
  margin-inline: auto;
}

.map iframe {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  height: 100%;
  width: 100%;
}

@media screen and (768px<=width) {
  .message_lead {
    font-size: 20px;
  }

  .info_detail {
    width: 700px;
  }

  .info_ttl {
    width: 180px;
  }

  .map {
    width: 600px;
    height: 400px;
  }
}

@media screen and (1024px <=width) {
  .message_lead {
    font-size: 24px;
  }

  .message_tex {
    margin: 100px 0 200px 0;
    padding-left: 30px;
  }

  .info_wrapper {
    width: 1280px;
    margin-top: 120px;
    display: flex;
    justify-content: space-around;
    align-items: center;
  }

  .info_detail p {
    margin: 10px 0;
  }

  .map {
    width: 550px;
    height: 350px;
  }
}





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

　  CONTACT

---------------------------------*/
.CONTACT {
  margin-top: 100px;
}


/*=========================
　お問合せフォーム
=========================*/
.form {
  margin-top: 30px;
  padding: 0 35px;
}

.form form {
  margin-inline: auto;
}

/* 入力フォームの1列 */
.form-row {
  margin: 0 0 20px;
}

/* 入力フォームのラベル部分 */
.form label {
  display: block;
  margin: 0 0 5px 5px;
  font-size: 14px;
}

/* 入力フォームの入力欄 */
.form input {
  box-sizing: border-box;
  padding: 10px;
  border: 1px solid #fff;
  /* border-radius: 5px; */
  /* background-color: #fff; */
  width: 100%;
}

/* 入力欄に初めから表示されているテキスト */
.form input::placeholder {
  font-size: 12px;
}

/* テキスト入力欄 */
.form textarea {
  box-sizing: border-box;
  width: 100%;
  height: 300px;
  padding: 5px;
  border: 1px solid #fff;
  /* border-radius: 5px; */
  /* background-color: #fff; */
  resize: vertical;
}

/* フォームの送信ボタン */
.form button {
  display: block;
  width: 150px;
  height: 40px;
  margin: 45px auto 0;
  padding: 7px 10px;
  background-color: #fff;
  text-decoration: none;
  text-align: center;
  transition: 0.2s;
  cursor: pointer;
  color: #0D0C0C;
}

.required {
  color: #EC1C1C;
  font-size: 10px;
  font-weight: bold;
  padding-left: 10px;
}

@media screen and (min-width:768px) {
  .form form {
    width: 550px;
  }
}

@media screen and (1024px <=width) {
  .form {
    padding: 100px 20px 0px;
  }

  .form form {
    width: 700px;
  }

  .main_box {
    margin-bottom: 100px;
  }

  .form-row {
    margin: 0 0 30px;
  }

  .form label {
    font-size: 16px;
    margin: 0 0 10px;
  }

  .form input {
    height: 50px;
  }

  .form button {
    width: 220px;
    margin: 75px auto;
  }

  .form input {
    padding: 10px;
  }

  .form input::placeholder {
    font-size: 14px;
    color: #bdb3b3;
  }

  .form textarea {
    height: 445px;
  }

  .form button {
    font-size: 20px;
    font-weight: bold;
    width: 200px;
    height: 50px;
    margin: 50px auto;
  }
}


/*=========================
　お問合せ　確認画面用CSS
=========================*/
.confirm {
  margin: 0 auto 100px;
}

.confirm_main {
  width: 320px;
  margin: 0 auto 10px;
  background-color: #fff;
  color: #0D0C0C;
}

.confirm_date {
  padding: 10px;
}

.conf_tex {
  padding-left: 20px;
  font-size: 12px;
}

.confirm_btn {
  margin: 30px auto;
  display: flex;
  width: 300px;
  justify-content: space-between;
}

.btn {
  width: 130px;
  height: 40px;
  background-color: #fff;
  color: #0D0C0C;
  text-align: center;
}

@media screen and (768px <=width) {
  .confirm_main {
    width: 700px;
  }

  .conf_ttl {
    font-size: 20px;
  }

  .conf_tex {
    font-size: 18px;
  }

  .confirm_btn {
    width: 400px;
  }

  .btn {
    width: 150px;
  }
}

@media screen and (1024px <=width) {
  .confirm_main {
    width: 1000px;
  }
}


/*=========================
　お問合せ　送信完了　CSS
=========================*/
.confirm_thanks {
  margin: 100px auto;
  text-align: center;
}

.msg {
  margin: 100px auto;
}





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

  フッター

---------------------------------*/
footer {
  background-color: #0d0c0ce1;
  padding-top: 130px;
  padding-bottom: 30px;
}

.footer_wrap {
  width: 300px;
  margin-inline: auto;
}

.Link img {
  margin-bottom: 50px;
}

.footer-nav {
  margin-top: 50px;
}

.footer-nav li {
  text-align: center;
  margin-bottom: 15px;
}

.footer-last {
  margin-top: 60px;
  text-align: center;
}

.copyright {
  font-size: 10px;
  margin: 20px auto 100px;
  letter-spacing: 0;
}


@media screen and (1024px<=width) {
  .footer_wrap {
    width: 1000px;
    margin-inline: auto;
    text-align: center;
    justify-content: center;
  }

  .Link {
    display: flex;
    justify-content: space-between;

    & img {
      width: 300px;
    }
  }

  .footer-nav {
    display: flex;
    justify-content: center;
    column-gap: 45px;

    & a {
      font-size: 18px;
    }
  }

  .copyright {
    font-size: 12px;
  }
}