@charset "utf-8";

/* reset */
html{box-sizing:border-box;-webkit-text-size-adjust:100%}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]{-webkit-appearance:textfield}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:transparent;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{border-style:none;vertical-align: bottom}progress{vertical-align:baseline}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::-moz-selection{background-color:#b3d4fc;color:#000;text-shadow:none}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}ul,ol{list-style:none;}a{text-decoration:none;}.wrapper{overflow:hidden;}body{overflow-y:scroll;}

img {
    max-width: 100%;
    vertical-align: bottom;
}

body,a {
    color: #333;
}

/* header */
.page-header {
    width: 100%;
    position: sticky;/* 幅高さは指定すること */
    top: 0;
    left: 0;
    flex-grow: 1;
    z-index: 100;
    background-color: #fff;
}


.g-nav {
    background-color: #fff;
    border-bottom: 1px solid #fe7500;
    flex-grow: 1;
}

.nav-menu {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 60px;
}

h1 {
    font-size: 20px;
    position: absolute;
    top:16px;
    left: 10px;
    font-family: 'Montserrat', sans-serif;
}

.g-nav li {
    padding: 0 20px;
}

.g-nav a {
    font-family: 'Limelight', cursive;
    font-weight: bold;
    position: relative;
    z-index: 1;
}

.g-nav a::after {
    position: absolute;
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    background-color: #FBDA32;
    border-radius: 50%;
    top: -14px;
    left: calc(50% - 5px);
    /*不透明度0で非表示*/
    opacity: 0;
    /*下方向へ50%移動*/
    -webkit-transform: translateY(50%);
    transform: translateY(50%);
    /*アニメーションの速度設定*/
    -webkit-transition: all 0.6s ease;
    transition: all 0.6s ease;
}

.g-nav a:hover::after {
  /*不透明度1で表示*/
  opacity: 1;
  /*0位置に移動*/
  -webkit-transform: translateY(0);
  transform: translateY(0);
}

.g-nav li:last-of-type>a {
    background-color: #ffb16c;
    padding: 6px;
    color: #fff;
    border-radius: 6px;
}

.nav-wrapper {
    visibility: hidden;
    opacity: 0;
    display: none;
}

.burger-btn {
    display: none;
}

@media screen and (max-width: 767px) {

    h1 {
        width: 300px;
        top: 10px;
        font-size: 20px;
        font-family: 'Montserrat', sans-serif;
    }

    .nav-menu {
        flex-wrap: wrap;
        height: 80px;
    }

    /* デフォルトのbuttonスタイルをリセット */
	button {
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		background: transparent;
		border: 0;
		border-radius: 0;
		color: inherit;
		cursor: pointer;
		font: inherit;
		margin: 0;
		outline: none;
		padding: 0;
		vertical-align: middle;
	}

    .burger-btn{
        display: block;      
        width: 39px;      
        height: 39px;      
        position: relative;      
        z-index: 3;
        border:none;
        left: 320px;
        
      }    
      .bar{      
        width: 20px;      
        height: 1px;        
        display: block;      
        position: absolute;      
        left: 50%;      
        transform: translateX(-50%);      
        background-color: rgb(255, 102, 0);    
      }    
      .bar_top{   
        top: 10px;
      }
      .bar_mid{    
        top: 50%;
        transform: translate(-50%,-50%);
      }
      .bar_bottom{
        bottom: 10px;
      }

      .burger-btn.close .bar_top{      
        transform: translate(-50%,10px) rotate(45deg);      
        transition: transform .3s;    
      }    
      .burger-btn.close .bar_mid{      
        opacity: 0;       
        transition: opacity .3s;    
      }    
      .burger-btn.close .bar_bottom{      
      transform: translate(-50%,-8px) rotate(-45deg);      
      transition: transform .3s;    
      }

      .nav-wrapper{      
        /* visibility: hidden; */     
        /* opacity: 0; */ 
        width: 100%;      
        height: 100vh;      
        position: fixed;      
        top: 0;      
        right: 0;
        transition: all .5s;       
        z-index: 2;     
      }     
      .header-nav{        
        width: 100%;        
        height: 100%;        
        background-image: url('../img/sp-nav-bk.jpg');
        background-position:bottom;
        background-repeat:no-repeat;  
        z-index: 2;
        opacity:0.9;
      }     
      .nav-list{        
        display: block;        
        position: absolute;        
        top: 50%;        
        left: 50%;        
        transform: translate(-50%,-50%);        
        text-align: center;     
        font-family:'Montserrat', sans-serif;
        font-weight: 700;
      }      
      .nav-item{        
        margin-right: 0;        
        margin-bottom: 40px;      
      }
      
      /* メニューオープン時 */
      .nav-wrapper.fade {
          visibility: visible;
          opacity: 1;
          display: block;
      }

      .noscroll{
        overflow: hidden;
      }


      .nav-menu {
        display: none;
      }

      .g-nav {
          border-bottom: none;
      }

}

/* main */

.pic-sp {
    display: none;
}

@media only screen and (max-width: 768px) {
    .pic-pc {
        display: none;
    }

    .pic-sp {
        display: block;
    }
}

.wrapper {
    padding-top: 20px;
}

/* 中心から外に線が伸びる*/
.sort-btn{
	display: flex;
	justify-content: center;
	margin:50px 0 10px;
	list-style: none;
    text-transform: uppercase;
}

.sort-btn li{
	position: relative;
    cursor: pointer;
    margin: 0 20px;
}

.sort-btn li::after {
    content: '';
    /*絶対配置で線の位置を決める*/
    position: absolute;
    bottom:-5px;
    left: 25%;
    /*線の形状*/
    width: 50%;
    height: 2px;
    background:#a0a0a0;
    /*アニメーションの指定*/
    transition: all .3s;
    transform: scale(0, 1);/*X方向0、Y方向1*/
    transform-origin: center top;/*上部中央基点*/
}

/*現在地とhoverの設定*/
.sort-btn li.active::after,
.sort-btn li:hover::after{
    transform: scale(1, 1);/*X方向にスケール拡大*/
}

/*横幅が375px以下になった際の指定*/
@media only screen and (max-width: 375px) {
.sort-btn{
    flex-wrap: wrap;
	justify-content: space-between;
}
	
.sort-btn li{
	width:48%;
	margin:0 0 10px 0;
	text-align:center;
	}
}

/*カテゴリ別に画像を並び替える*/

/*＝＝＝Muuriのレイアウトのための調整 */
.grid {
    position: relative;/*並び替えの基準点を指定*/
  }
  
  /*各画像の横幅などの設定*/
  .item {
    display: block;
    position: absolute;
    width: 33%;/*横並びで3つ表示*/
    z-index: 1;
  }
  
  /*内側のボックスの高さが崩れないように維持*/
  .item-content {
    position: relative;
    width: 100%;
    height: 100%;
      padding: 30px;
  }
  
  .item-content a{
      text-decoration: none;
  }
  
  .item-content span{
      display: block;
      text-align: center;
      letter-spacing: 0.05em;
      padding: 10px 0 0 0;
  }
  
  /*画像の横幅を100%にしてレスポンシブ化*/
  .grid img{
      width:100%;
      height:auto;
      vertical-align: bottom;/*画像の下にできる余白を削除*/
  }
  
  /*横幅が768px以下になった際の指定*/
  @media only screen and (max-width: 768px) {
  .item {
    width: 49.5%;/*横並びで2つ表示*/
  }
      .item-content {
          padding: 10px;
      }
  }
  
  /*＝＝＝fancyboxサムネイル背景と画像選択時の枠線の指定*/
  .fancybox-thumbs {
      background: transparent!important;
  }
  
  .fancybox-thumbs__list a:before {
      border: 6px solid #FA999B;
  }
  
  .fancybox-caption__body{
        letter-spacing: 0.1em;  
  }

/*画像が拡大*/
figure.hover-parent {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    }

/* main works */

.hover-mask {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    background:linear-gradient(#e66465, #9198e5);
    opacity: 0;
    color: #fff;
    text-align: center;
    line-height: 28;
    font-size: 1rem;
}

.item:nth-child(3) .hover-mask {
    line-height: 11;
}

.item:nth-child(4) .hover-mask {
    line-height: 11;
}

.hover-mask:hover {
    opacity: 0.9;
    transition:all 0.6s ease;
}
    

h2 {
    text-align: center;
    font-family: 'Limelight', cursive;
    font-size: 30px;
}

.bold {
    font-weight: 700;
}

.box-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 30px;
}

.subtitle {
    font-size: 80px;
    margin: 0 auto;
    padding: 7.5rem 0.5rem 2rem 0.5rem;
    color: #fff;
    border-radius: 10px;
    background-image: -webkit-gradient(linear, left top, right top, from(#f83600), to(#f9d423));
    background-image: -webkit-linear-gradient(left, #f83600 0%, #f9d423 100%);
    background-image: linear-gradient(to right, #f83600 0%, #f9d423 100%);
    -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  }
 

/* profile */
.profile-pic {
    width: 50%;
}

.profile-txt {
    width: 50%;
    margin: 36px 0 0 30px;
    line-height: 1.8;
    letter-spacing: 0.03em;
}

.name {
    font-size: 32px;
    font-weight: 700;
    font-family: 'Montserrat', sans-serif;
}

.box-container {
    max-width: 980px;
    margin: 0 auto;
}

@media screen and (max-width: 767px) {
#profile .box-wrapper {
    display: block;
    padding: 16px;
}

.subtitle {
    font-size: 40px;
}

.profile-pic {
    width: 100%;
    text-align: center;
}

.profile-txt {
    width: 100%;
    margin: 0;
}

.name{
    text-align: center;
    margin-top: 20px;
}

.box-container{
    padding: 10px;
}

.skills-txt {
    padding: 10px;
}
}


/* skills */
.content-wrapper {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.content-inner {
    padding: 20px;
    box-sizing: border-box;
}

.skills {
  font-size: 80px;
  text-align: center;
  font-family: 'Limelight', cursive;
  padding: 7.5rem 0.5rem 0 0.5rem;
  background: linear-gradient(180deg, #0072b4 0%, #7bc0be 72%, #afebea 100%);
  background: -webkit-linear-gradient(-90deg, #0072b4 0%, #7bc0be 72%, #afebea 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}


@media screen and (max-width:767px) {

    .content-inner {
        padding: 0;
    }

    .description{
    margin: 20px 0;
    }

    .content-wrapper {
        grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    }

    .skills {
        font-size: 40px;
    }
}

.content>h3 {
    margin-top: 30px;
    text-align: center;
    font-size: 24px;
}

.item-title {
    display: flex;
    flex-direction: column-reverse;
}

.icon {
   text-align: center;
   padding-bottom: 10px;
}

.p-item {
    font-size: 22px;
    font-weight: 700;
    line-height: 80px;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
}

.skills-list {
    list-style: disc;
}

/* websites */
.mockup{
    width: 300px;
    height: 300px;
    margin-top: 80px;
}

.box-inner {
    margin-top: 60px;
    margin-left: 40px;
    line-height: 60px;
}



/* .txt-title {
    font-size: 24px;
    font-family: serif;
    font-weight: 900;
}

.capture {
    width: 80%;
    
} */


/* works部分 */
.works-wrapper {
    max-width: 1366px;
    margin: 50px 0 auto;
    display: flex;
    flex-wrap: wrap;
}

.works-box {
    padding: 20px;
    width: 320px;
    box-sizing: border-box;
}

.works-box>h3 {
    margin-bottom: 20px;
    /* text-align: center; */
}

.works-box>.thumb {
    margin-bottom: 20px;
    width: 290px;
}

.works-box:hover {
    background-color: #c5eeec;
}

.works-txt {
    line-height: 1.8;
    letter-spacing: 0.03em;
}

@media screen and (max-width: 767px) {
    .works-box {
        margin: 0 auto;
    }
}


/* animation */
.fadeUpTrigger{
    opacity: 0;
    }
.fadeUp {
        animation-name: fadeUpAnime;
        animation-duration:2s;
        animation-fill-mode:forwards;
        opacity: 0;
    }
    @keyframes fadeUpAnime{
    from {
        opacity: 0;
        transform: translateY(100px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
    }


/* contact */
form {
    width: 90%;
    max-width: 500px;
    height: auto;
    margin: 0 auto 40px;
    padding-top: 50px;
}

label span {
    width: 60px;
    margin-left: 8px;
    text-align: center;
    padding: 1px;
    background-color: #f83600;
    color: #fff;
    border-style: none;
    font-size: 0.8rem;
}

.contact__item {
    margin-bottom: 20px;
}

.contact__item input {
    width: 100%;
    margin: 0;
    padding: 10px 5px;
    background-color: #fff;
    border-style: none;
    border: 1px solid #333;
    border-radius: 4px;
    text-align: left;
    outline: none;
}

textarea {
    width: 100%;
    margin: 0;
    padding: 10px 5px;
    background-color: #fff;
    border-style: none;
    border-radius: 4px;
    font-size: 1rem;
    text-align: left;
    outline: none;
    border: 1px solid #333;
}

.submit-btn {
    width: 100px;
    text-align: center;
    padding: 15px;
    background-color: #ffb16c;
    border-style: none;
    border-radius: 4px;
    font-size: 1rem;
    color: #fff;
    filter: drop-shadow(1px 1px 2px rgba(0,0,0,.3));
    outline: none;
}

.submit-btn:hover {
    opacity: .8;
	transform: translateY(-3px);
	opacity: .7;
}

/* footer */
footer {
    margin: 0 auto;
    padding: 40px 20px 40px;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
}

/* thanks page */
.thx-header {
    height: 60px;
    font-family: 'Montserrat', sans-serif;
}

.thx-box {
    max-width: 500px;
    margin: 40px auto;
}

.thx-txt {
    font-size: 1.5rem;
    margin-bottom: 30px;
    text-align: center;
}

.des-txt {
    text-align: center;
    line-height: 1.8;
}

.top-btn {
margin-top: 40px;
text-align: center;
padding: 10px;
background-color: #ffb16c;
border-style: none;
border-radius: 4px;
font-size: 1.2rem;
color: #fff;
filter: drop-shadow(1px 1px 2px rgba(0,0,0,.3));
outline: none;
}

@media screen and (max-width: 767px) {
    .thx-box {
        padding: 20px;        
    }

}

/* more button */

.more {
    margin: 30px auto 0;
    max-width: 200px;
}

a.btn_10 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 36px;
    box-sizing: border-box;
    background: #fff;
    position: relative;
  }
  a.btn_10 span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 36px;
    background: #fff;
    box-sizing: border-box;
    color: #333;
    font-size: 14px;
    letter-spacing: 0.1em;
    text-decoration: none;
    box-shadow: 0px 5px 12px #CAD4E2, -6px -6px 12px #FFF;
    border-radius: 10px;
    position: absolute;
    top: -5px;
    left: 0;
    transition-duration: 0.2s;
  }
  a.btn_10:hover span {
    left: 0;
    top: 0;
    box-shadow: 0 0 4px #CAD4E2, -2px -2px 4px #FFF;
  }




