@charset "UTF-8";

/* 共通部分
------------------------------- */
html {
    font-size: 100%;
}
body{
    font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", sans-serif;
    line-height: 1.7;
    color: rgb(101, 57, 222);
}
a {
    text-decoration: none;
}
img {
    max-width: 100%;
}
.wrapper {
    margin: 15px auto;
    padding: 0 4%;
}

/* 大きな背景画像 */
.big-bg {
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-size: cover;
    text-align: center;
    position: relative;
}
.big-home {
   background-position: center center; /*top縮尺した場合の画像の中心*/
}
.big-Works {
    background-position: 30% 60%; /*Works縮尺した場合の画像の中心*/
 }
 .big-About {
    background-position: center center; /*About縮尺した場合の画像の中心*/
 }
.big-Contact{
    background-position: 68% 50%; /*Contact縮尺した場合の画像の中心*/
 }
/* 見出し */
.home-content{
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);  
}
.page-title {
    font-size: 7rem;
    font-family: 'Philosopher', serif;
    text-transform: uppercase;
    font-weight: bold;
    color: rgb(253, 252, 251);
    text-shadow: 2px 3px 3px #6210fa;          
}

.sub-title {    
    font-weight: bold;
    font-size: 1.5rem;
    color: rgb(253, 252, 251);
    text-shadow: 1px 2px 2px #6210fa;     
}

/* ボタン */
.button {
    display: block;  /*文字をブロック化*/
    margin: auto;    /*ブロックの中央寄せ*/
    font-size: 1.125rem;
    background: #164986;
    color: #fff;
    border-radius: 8px;
    text-align: center;
    width: 148px;
    height: 32px;
    transition: .5s;        
}
.button:hover {
    background: #0090aa;
    transform: scale(1.1,1.1);
}

/* iframe */
iframe {
    width: 100%;
}

/*フェードインする*/
.fadeIn-first {
    animation-name: fadeInAnime;  /*アニメーションの定義名*/
    animation-duration:2s;        /*アニメーション変化時間 ※デフォルト*/
    animation-fill-mode:forwards; /*アニメーションの開始と終了時の状態を指定*/
    opacity: 0;
    }
.fadeIn-third {
    animation-name: fadeInAnime;
    animation-delay: 0.5s;  /*アニメーション変化のスタート時間を0.5秒遅らせる*/
    animation-duration:2s; 
    animation-fill-mode:forwards;
    opacity: 0;
    }
.fadeIn-fifth {
    animation-name: fadeInAnime;
    animation-delay: 1s;  /*アニメーション変化のスタート時間を1秒遅らせる*/
    animation-duration:2s; 
    animation-fill-mode:forwards;
    opacity: 0;
    }            
    @keyframes fadeInAnime{      /*アニメーションの開始から終了までを指定する*/
      0% {
        opacity: 0;
        transform: translateY(100px);
      }
    
      100% {
        opacity: 1;
        transform: translateY(0);
      }
    }

/*scroll_up ｜下から上へ出現する*/
.scroll_up {
    transition: 1.2s ease-in-out;
    transform: translateY(30px);
    opacity: 0;
}
  .scroll_up.on {
    transform: translateY(0);
    opacity: 1.0;
}
      

/* HEADER
------------------------------- */
.page-header {
    display: flex; /*ロゴ画像<h1>ブロックとナビメニュー<nav>ブロックを横並びにする*/
    justify-content: space-between; /*両端から均等に配置する*/
    align-items: center;
    position: absolute;
    position: fixed; /*固定する*/
    width: 100%;
    top: 0;
    left: 0;
    z-index: 1000;
}
.logo {
    width: 90px;
    background-color: #ffffff;
    /*border-radius: 25%;*/
    vertical-align: bottom
}
.main-nav {
    display: flex;
    font-size: 1.5rem;
    text-transform: uppercase; /*文字を大文字にする*/
    list-style: none;
}
.hover-line {
    display: block;  /*aの範囲をliに広げる常套手段！*/
    padding: 10px 30px; /*この分、クリック範囲が広がる*/
    color: rgb(253, 252, 251);
    text-shadow: 1px 2px 2px #6210fa;    
    position: relative; /*アンダーラインの位置を決めるための基準 */
}
.hover-line:hover{
    color: #0bd;
}
.hover-line::after {    /*左右に伸びるアンダーラインの位置を決めるための基準 */
    position: absolute;
    left: 0;
    content: '';
    width: 100%;
    height: 2px;
    background: #164986;
    bottom: -1px;
    transform: scale(0, 1);
    transform-origin: center top; /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の右端*/
    transition: transform 0.3s;   /*変形の時間*/
    }  
.hover-line:hover::after  {  /*リンクがホバーされたらアンダーラインが左右に伸びる */
    transform: scale(1, 1); /*ホバー後、x軸方向に1（相対値）伸長*/
    }

/* HOME
------------------------------- */
.big-bg {
    background-image: url(../images/main-bg.jpg);
}
.mv-text {
    text-align: center;
    font-weight: bold;
    font-size: 1.125rem;
    margin: 15px 0;
}
.pc-only {     /*class＝mv-textを2行で表示*/ 
    display: block;
  }
.sp-only {      
    display: none;
  }

/*HOMEのabout部分*/
.homeabout{
    display: flex;
    line-height: 1.8;
}
.profile-text, .main-visual, .explanation-text{
    flex: 1;
}
#about h2, #works h2 {
    text-align: center;
    margin: 45px 0 45px 0;
    padding: 30px 0 20px 0;      
}
/*画像をホバー時に白黒からカラーにする*/
.main-visual{
    margin: 16px 36px 16px 16px;
    display:block;
}
.main-visual img{
    width:100%;
    filter: saturate(0%);
    transition:0.3s;
}
.main-visual:hover img{
    filter: saturate(100%);
}

.main-visual p{     /*画像上の文字を見えなくする*/
    opacity: 0;
    font-size: 0.875rem;
}

.profile-text{
    margin: 0 16px 30px 16px;
}
.profile-text ul{
    list-style: none;
    padding-left: 1em;
}
.possible-businness{
    padding: 20px 0;
}

/*HOMEのworks部分*/
.homeworks{
    display: flex;
    line-height: 1.8;
}
.homeworks img{
    margin: 16px 16px;
}
.homeworks a:hover{
    color: #0bd;    
}

.explanation-text{
    margin: 0 16px 50px 16px;
}
.explanation-text ul{
    list-style: none;
    padding-left: 1em;
}
.vision{
    padding: 20px 0;
}

/* About
------------------------------- */
#About {
    background-image: url(../images/About-bg.jpg);   
}
.About-contents {
    display: flex;
    justify-content: space-between;
    margin-bottom: 50px;
}

.kanousei{
    display:block;
  }
.kanousei img{
    width:100%;
    filter: saturate(0%);
    transition:0.3s;
  }
  .kanousei:hover img{
    filter: saturate(100%);
  }

/* 記事部分 */
article {
    width: 74%;
}
.post-info {
    position: relative;
    padding-top: 43px;
    margin-bottom: 40px;
}
.post-date {
    background: rgb(153, 220, 234);
    border-radius: 10% 25%;
    text-shadow: 1px 1px #e5e7fa;
    width: 70px;
    height: 70px;
    font-size: 1.125rem;
    text-align: center;
    position: absolute;
    top: 45px;
    padding-top: 5px;
}
.post-date span {
    font-size: 1rem;
    border-top: 1px rgba(255,255,255,.7) solid;
    padding-top: 4px;
    display: block;
    width: 60%;
    margin: 0 auto;
}
.post-title {
    font-family: "Yu Mincho", "YuMincho", serif;
    font-size: 2rem;
    font-weight: normal;    
}
.post-title,.post-cat {
    margin-left: 100px;
}

article img {
    margin-bottom: 20px;
}
article p {
    margin-bottom: 1rem;
}
article table{
    border-collapse: collapse;
    margin-bottom: 1rem;
}
article table td{
    border:1px solid #333;
}

/* サイドバー */
aside {
    width: 22%;
    margin-top: 45px;
}
.sub-menu {
    margin-bottom: 60px;
    list-style: none;
}
.sub-menu li {
    font-size: 1.235rem;
    border-bottom: 1px #ddd solid;
}
.sub-menu a {
    padding: 10px;
    display: block;
}
.sub-menu a:hover {
    color: #0bd;
}
aside p {
    padding: 12px 10px;
}

/* Works
------------------------------- */
#Works {
    background-image: url(../images/Works-bg.jpg);   
}
.grid {
  display: grid;
  gap: 26px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  margin-top: 4%;
  margin-bottom: 50px;
  text-align: center;
}
/*ホバー時に画像テキストの色を変える*/
.grid a:hover {   
    color: #0bd;
}
/*ホバー時に画像を半透明にする*/
.grid a:hover img{
    opacity:0.8;
  }
.another-site{
    padding: 2rem 0 0 0;
    text-align: center;
}

/* CONTACT
------------------------------- */
#Contact {
    background-image: url(../images/Contact-bg.jpg);
}

/* フォーム */
form div {
    margin-bottom: 14px;
}
label {
    font-size: 1.125rem;
    margin-bottom: 10px;
    display: block;
}
input[type="text"],
input[type="email"],
textarea {
    background: rgba(255,255,255,.5);
    border: 1px #fff solid;
    border-radius: 5px;
    padding: 10px;
    font-size: 1rem;
}
input[type="text"],
input[type="email"] {
    width: 100%;
    max-width: 240px;
}
textarea {
    width: 100%;
    max-width: 480px;
    height: 6rem;
}
input[type="submit"] {
    border: none;
    cursor: pointer;
    line-height: 1;
}

/* SNS */
#sns {
    background: #FAF7F0;
    padding: 4% 0;
}
#sns .wrapper {
    display: flex;
    justify-content: space-between;
}
#sns .sub-title {
    margin-bottom: 30px;
}
.sns-box {
    width: 30%;
}

/* フッター
------------------------------- */
footer {
    background: #fbf8a3;
    text-align: center;
    padding: 26px 0;
}
footer p {
    color: #164986;
    font-size: 0.875rem;
}

/*TOPへ戻るボタン*/
.pagetop {
    height: 40px;
    width: 40px;
    position: fixed;
    right: 30px;
    bottom: 30px;
    background: #fff;
    border: solid 2px #000;
    border-radius: 50%;
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 2;
    cursor: pointer;
  }
  .pagetop__arrow {
    display: block;
    height: 10px;
    width: 10px;
    border-top: 3px solid #000;
    border-right: 3px solid #000;
    transform: translateY(20%) 
    rotate(-45deg);
  }

@media (hover: hover) and (pointer: fine) {    /* マウスオーバーでデザインを変える */
    .pagetop:hover, .pagetop:hover .pagetop__arrow {
        border-color: #3293e7;
    }
}
/*TOPへ戻るボタン*/

/* モバイル版
------------------------------- */
@media (max-width: 1000px){
    .main-nav {
        font-size: 1.375rem;
        /*margin: 15px 0;*/
    }
    .hover-line {
        padding: 10px 20px; /*この分、クリック範囲が広がる*/
    }    
}

@media (max-width: 760px) {
    /* 共通　*/
    .logo {
        width: 80px;
        /*margin-top: 15px;*/
    }
   /* .home-content {
        margin-top: 20px;
        line-height: 1.3;                
    }*/
    .page-title {
        font-size: 5rem;             
    }
   
    /* HEADER */
    .main-nav {
        font-size: 1.1875rem;
    }
    .hover-line {
        padding: 10px 10px; /*この分、クリック範囲が広がる*/
    }
    
    /* HOME */         
    .homeabout {
        flex-direction: column;
    }
    .homeworks {
        flex-direction: column-reverse;
    }
    /*画像上に文字を表示させホバーすると消える*/
    .main-visual{
        position: relative;
    }
    .main-visual p{
        opacity: 1;
        position: absolute;/*絶対配置*/
        color: rgb(255, 255, 255);/*文字は白に*/
        bottom: 10%;
        left: 10%;
    }
    .main-visual:hover p{
        opacity: 0;        
    }
    /*class＝mv-textを４行で表示*/ 
    .pc-only {
        display: none;
      }    
    .sp-only {
        display: block;
      }
    
        #works h2{
        margin: 30px 0 25px 0;
        padding: 30px 0 20px 0;    
    }
    
    /* About */
    .About-contents {
        flex-direction: column;        
        flex-direction: column-reverse;
    }
    article,  aside {
        width: 100%;
    }
    aside {
        margin-top: 60px;
    }
    .post-info {
        margin-bottom: 30px;
    }
    .post-date {
        width: 70px;
        height: 70px;
        font-size: 1rem;
    }
    .post-date span {
        font-size: 0.875rem;
        padding-top: 2px;
    }
    .post-title {
        font-size: 1.375rem;
    }
    .post-cat {
        font-size: 0.875rem;
        margin-top: 7px;
    }
    .post-title,
    .post-cat {
        margin-left: 80px;
    }

    /* Works */  

    /* Contact */    

    /* フォーム */
    input[type="text"],
    input[type="email"],
    textarea {
        max-width: 100%;
    }

    /*  SNS */
   
    #sns .wrapper {
        flex-direction: column;
    }
   
    .sns-box {
        width: 100%;
    }
    .sns-box {
        margin-bottom: 30px;
    }
}
