body {
  background-color: white;
  overflow-x: hidden;
}

h2{
  text-align: center;
  margin-bottom: 30px;
}

/* 各セクションごとの色分け */
.webp .info-bgc,.webp .about-bgc{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-image: url(/img/gray-bg.webp );
}

.info-bgc, .about-bgc{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-image: url(/img/gray-bg.jpg);
}

/* セクション背景の範囲 */
.section-bgc {
  margin: 0;
  padding: 0;
  width:100%;
  min-height: 100vh;
  position: relative;
}

/* セクションタイトル */
.page-header{
  padding-top: 0.2em;
  text-align:center;
}

/* ナビバー設定 */
.nav {
  position: absolute;
  bottom:20px;
  width: 100%;
  z-index: 2;
  display: block;
}
#list-nav {
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: hidden;
}
#list-nav li {
  float: left;
  text-align: center;
  margin: 2px 9.9%;
  opacity: 0;
  font-size: 2vw;
  animation: anime 1s linear 7s forwards;
}
.nav a {
  text-decoration: none;
  color: #2c2c2c70;
}
.nav a:hover {
  color: #000000;
}

/* topページ遷移アイコン設定 */
#page_top{
  width: 50px;
  height: 50px;
  position: fixed;
  right: -50px;
  bottom: 50%;
  background: #343a40 !important;
  opacity: 0.6;
  border-radius: 50%;
}
#page_top:hover {
  background: #1d2124 !important;
  opacity: 1;
}
#page_top a{
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  text-decoration: none;
}
#page_top a::before{
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: '\f106';
  font-size: 25px;
  color: #fff;
  position: absolute;
  width: 25px;
  height: 25px;
  top: -15px;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}

/* ジャンボトロン拡張 */
.webp .jumbotron-extend {
  position: relative;
  padding: 0rem 0rem;
  margin: 0px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-image: url(/img/titibugahama04.webp);
  height: 100vh;
  animation: anime 4s linear 0s forwards;
}
.jumbotron-extend {
  position: relative;
  padding: 0rem 0rem;
  margin: 0px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-image: url(/img/titibugahama04.png);
  height: 100vh;
  animation: anime 4s linear 0s forwards;
}
@keyframes anime { 
  0% {
      animation-timing-function: ease-in;
      opacity: 0;
  }
  100% {
      opacity: 1;
  }
}

/* 「portfolio」デザイン */
.title-text {
  position: absolute;
  font-size: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}

/* コンテナー設定 */
.container-extend {
  text-align: center;
}
.contents-item {
  margin-top: 1em;
}

/* フッター設定 */
.footer {
  bottom: 0;
  width: 100%;
  height: 60px;
  text-align: center;
  background-color: #f5f5f5;
}

/* アニメーション設定 */
.animate__animated.animate__fadeInDown {
  --animate-duration: 3s;
}
/* 背景透明化マスク設定 */
.bg-mask {
  height: 100%;
  background: rgba(255,255,255,0.5);
}

.text-center {
  line-height:2rem
}

/* ドキュメントの間の空間設定 */
.blank-space {
  padding: 260px 180px;
}
.blank-space-end {
  padding: 200px 180px 200px ;
}

/* inner設定 */
.inner {
  width:100%;
  max-width:1000px;
  position:absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}


/* スクロールダウンボタン設定 */
#scroll-buttom {
  position: absolute;
  bottom: 150px;
  left: 50%;
  width: 24px;
  height: 24px;
  margin-left: -12px;
  border-left: 3px solid #343a40;
  border-bottom: 3px solid #343a40;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  -webkit-animation: sdb 1.5s infinite;
  animation: sdb 1.5s infinite;
  animation-delay : 7s;
  box-sizing: border-box;
  opacity: 0;
}
@-webkit-keyframes sdb {
  0% {
    -webkit-transform: rotate(-45deg) translate(0, 0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    -webkit-transform: rotate(-45deg) translate(-20px, 20px);
    opacity: 0;
  }
}
@keyframes sdb {
  0% {
    transform: rotate(-45deg) translate(0, 0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: rotate(-45deg) translate(-20px, 20px);
    opacity: 0;
  }
}

/* スクロールバー設定 */
::-webkit-scrollbar{
  width: 8px;
}
::-webkit-scrollbar-track{
  background: #fff;
  border: none;
  border-radius: 10px;
  box-shadow: inset 0 0 2px #777; 
}
::-webkit-scrollbar-thumb{
  background: #343a40;
  border-radius: 10px;
  box-shadow: none;
}

/* ===================================*/
/* infoテーブル設定 */
/* ===================================*/
.table th,
.table td,
.table thead th,
.table tbody + tbody {
  border-color: #1a1818;
  text-align: center;
}
.table {
  position: relative;
}
/* テーブルヘッダーのみ */
.table th{
  width: 300px;
 }

/* ===================================*/
/* 経験スキル項目設定 */
/* 言語大枠配置設定 */
/* ===================================*/
.skill-item-clump {
  position: relative;
  width: 100%;
  height: 100%;
}

/* 言語中枠配置設定 */
.skill-items {
  height: auto;
  text-align: left;
  padding: 0.5em 3em;
  line-height: 3em;
}

/* 言語アイテム設定 */
.skill-item {
  background-color: rgba(51, 48, 48, 0.664);
  border: solid 1px #000000;
  color: #fff;
  border-radius: 10px;
  margin: 0px;
  padding: 0.5em;
}
.skill-list {
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  overflow-x: auto;
  white-space: nowrap;
  padding-left: 0px;
}
/* 横スクロール設定 */
.skill {
  /* 横スクロール用 */
  display: inline-block;
  /* 見た目調整 */
  width: 400px;
  height: 400px;
  max-width: 400px;
  max-height: 400px;
  margin: 16px;
  background-color: rgba(255, 255, 255, 0.4);
  border: medium solid #777;
}
/* スキルテキストエリアの背景枠 */
.detail_aria{
  opacity: 0;
  margin:0%;
  padding: 0%;
  height: 100%;
  position: relative;
}
/* スキルテキストエリア */
.text_aria {
  position: absolute;
  opacity: 0;
  top:0;
  right:0;
  left:0;
  bottom: 0;
  margin :auto;
  width: 70%;
  height: 70%;
  background-color: #fff;
} 
/* スキルマウスオーバー設定 */
.detail_aria:hover{
  background-color: rgba(112, 112, 112, 0.4);
  opacity: 1;
}
/* スキルテキストエリアマウスオーバー設定 */
.detail_aria:hover .text_aria {
  opacity: 1;
  animation: fadeup 1s cubic-bezier(0.33, 1, 0.68, 1) 1 forwards;
}
@keyframes fadeup {
  0% {
    transform: translateY(30px);
    opacity: 0;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/* スキルタイトルの設定 */
.skill-title {
  margin: 0%;
  padding: 0%;
  font-size: 3vw;
  font-style: bold;
  text-align: center;
}
hr {
  width: 85%;
  margin-top: 0%;
  padding: 0%;
}
/* スキル説明文 */
.skill-ditail > p{
  width: 100%;
  padding: 0% 2%;
  font-size: 1em;
  margin: 10% 0%;
}
/* skill背景画像挿入 */
.webp .html {
  background-image: url(/img/skill/html.webp);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.html {
  background-image: url(/img/skill/html.png);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.webp .css {
  background-image: url(/img/skill/css.webp);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.css {
  background-image: url(/img/skill/css.png);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.webp .js {
  background-image: url(/img/skill/javascript.webp);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.js {
  background-image: url(/img/skill/javascript.png);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.webp .php {
  background-image: url(/img/skill/php.webp);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.php {
  background-image: url(/img/skill/php.png);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.webp .java {
  background-image: url(/img/skill/java.webp);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.java {
  background-image: url(/img/skill/java.png);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.webp .react {
  background-image: url(/img/skill/react.webp);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}
.react {
  background-image: url(/img/skill/react.png);
  background-position: center;
  background-size: 250px;
  background-repeat: no-repeat;
}

/*=============== Contact ===============*/
.contact .contents-item .text-area{
  font-size: 0.9rem;
  line-height: 1.7;
  font-family: serif;
}
/* エラーメッセージの設定 */
.errorMessage {
  display: block;
  color: rgb(252, 100, 100);
  padding: 5px 0;
}
.form-group {
  padding: 50px 0;
}

form.form-horizo​​ntal {
  transition: all 1s;
}

/* inputの配置 */
.line-2 , .line-1{
  margin: 50px 15%;
}
.line-1{
  display: flex;
  justify-content: space-around;
}
.line-1 input[type = 'text'] ,
.line-1 input[type = 'email'] ,
.line-2 textarea{
  display: block;
  width: 100%;
  height: calc(1.6em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.6;
  color: #495057;
  background-color: #fff;
  background-clip: padding-box;
  border-radius: 0.25rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  border: 0;
  border-bottom: 1px solid #1b2538;
}
.line-1 input[type = 'text']:focus,
.line-1 input[type = 'email']:focus,
#discription:focus {
  transition: all 1s;
  outline:none;
  border-bottom: 1px solid #e3342f;
}

.line-1 .form-name {
  width: 30%;
}
.line-1 .form-mail {
  width: 70%;
}
.line-1 .form-name ,
.line-1 .form-mail {
  margin : 1rem 10px 0;
}
input:-webkit-autofill {
  transition: background-color 5000s ease-in-out 0s !important;
}

/* textarea設定 */
#discription{
  height: calc( 1em * 5 );
  line-height: 1;
}
/* 送信ボタン設定 */
.send-btn {
  text-align: center;
  margin: 2% 10%;
 }
.btn {
  border: 2px solid rgb(52 ,58, 64);
  background: #fff;
  color: rgb(52,58,64);
  width: 120px;
  transition: all 1s;
}
.btn:focus {
  border: 2px solid rgb(52 ,58, 64);
}

/*============ モーダル ==============*/
.modal-header {
    border-top-left-radius: none; 
    border-top-right-radius: none; 
    background-color: #343a40;
    color: #fff;
}
.modal-content {
  box-shadow: 5px 5px 10px;
  border: 1px solid #000;
}
.modal-title {
  font-weight: 600;
  font-size: 1.6em;
}
.modal-body {
  margin: 0 10px 10px;
}
.modal-footer {
  margin: 10px 10px 0;
}
h4 .close {
  font-size: 2rem;
  color: #fff;
  border-color: #fff;
  opacity: 1;
}
h4 .close:hover {
  color: #fff;
  border-color: #fff;
  opacity: 0.5;
}
/* モーダルダイアログ位置 */
.modal.fade .modal-dialog {
  transform: translate(0, 150px);
}
/* モーダルのContact欄に改行を与える */
#modalDiscription {
  white-space: pre-wrap;
}

 /* 
    送信,モーダル送信、モーダルキャンセル ホーバー
 */
#openModal:hover, 
#send:hover {
  color: #fff;
  background-color: #343a40;
  box-shadow: none;
}
#back:hover {
  color: #fff;
  background-color: rgb(250, 139, 12);
  box-shadow: none;
}
