/* Reset */
*{
  margin: 0;
  padding: 0;
}
body{
  line-height: 1;
  font-family: sans-serif;
  background: #900;
}
ul{
  list-style: none;
}
a{
  text-decoration: none;
  color:inherit;
  display: block;
}
img{
  max-width:100%;
  height: auto;
  vertical-align: bottom;
}
.spnav, .menu{
  display: none;
}
     
/* 共通css */
.container{
  max-width:1020px;
  margin-inline: auto;
  display: flex;
  justify-content: 
  space-between;
  padding-inline: 10px;
}
.service, .smap{
  background: #fff;
}
     
/* Header */
header{
  color: #fff;
  height: 100vh;
  background: url(../img/keyvis.jpg) no-repeat center bottom/cover;
  position: relative;
  z-index: 10;
  /* animation */
  opacity: 0;
  animation:
  fadeIn 2s linear 1.5s forwards;
}
@keyframes fadeIn{
  100%{opacity:1;}
} 
     
.service{
  position: relative;
  z-index: 1;
}
.header-top{
  position: fixed;
  width:100%; 
  z-index: 100;
  transform:translateZ(1px);
  background:#900;
  padding: 15px 0;
  box-shadow: 0 5px 15px #333;
  /* animation */
  opacity: 0;
  animation:
  f-top 2s linear 1.5s forwards;
}
 @keyframes f-top{
  100%{opacity:1;}
} 
     
.header-top div{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

/* Title */
h1{
  font-size: 2.5em;
  font-family: 'Great Vibes', cursive;
  color: #fff;
  text-shadow: 1px 1px 1px #000;
  animation: rotate 5s infinite;
}
@keyframes rotate {
  100%{rotate:y 1turn;}
}
     
/* pc navigation */
.pcnav ul{
  display: flex;
  gap: 15px;
}
.pcnav li{
  font-size: 14px;
}
.pcnav a{
  color:#fff;
  /* display: block; */
  transition: 300ms;
}
.pcnav a:hover{
  color: #fc0;
}
.pcnav a::after{
  content: "";
  display:block;
  height:3px;
  background:#fc0; 
  margin-top:3px;
  scale:0 1;
  transition: 300ms;
}
.pcnav a:hover::after{
  scale:1 1;
}
     
/* SNS icons */
aside{
  position: fixed;
  top: 100px; 
  width:100%; 
  z-index: 999;
}
.sns .container{
  justify-content: flex-end;
  gap: 15px;
}
.sns a{
  display: block;
}
.sns i{
  font-size:50px;
  color: #ccc;
  transition: 300ms;
  line-height: 44px;
}
.sns a:hover i{
  rotate:1turn;
  scale:1.5;
  background:#fff ;
  border-radius: 10px;
}
.sns .container a:nth-child(1):hover i{
  color: #2e3192;
}
.sns .container a:nth-child(2):hover i{
  color: #29abe2;
}
.sns .container a:nth-child(3):hover i{
  color: #06c755;
}
.sns .container a:nth-child(4):hover i{
  background: 
  radial-gradient(circle at 30% 107%,
    #fdf497 0%,
    #fdf497 5%,
    #fd5949 45%,
    #d6249f 60%,
    #285AEB 90%);
  background-clip: text;
  /* ベンダープレフィックス */
  -webkit-background-clip: text;
  color:transparent;
}
     
/* メインコピー */
.copy{
  font-family: 'Great Vibes', cursive;
  text-align: center;
  line-height: 1.5;
  width: fit-content;
  padding: 0.6em 2em;
  position: absolute;
  z-index: 20;
  top: 25vh;
  right: 0;
  left: 0;
  margin: auto;
  font-size: 3em;
  /* background: rgba(0, 0, 0, 0.3); */
  color: #fff;
  /* animation */
  opacity: 0;
  scale: 0;
  animation: copy 1s forwards;
}
@keyframes copy{
  100%{
    opacity: 1;
    rotate: 1turn;
    scale:1 ;
  }
}
     
.copy span{
  font-size: 1.5em;
}
     
/* スタートボタン */
.start{
  width:300px;
  text-align: center;
  line-height: 50px;
  font-size: 22px;
  font-weight: bold;
  position: absolute;
  left:0;
  right: 0;
  bottom: 20vh;
  margin: auto;
}
.start a{
  background:#f50;
  border-radius: 5px;
  transition: 300ms;
}
.start a:hover{
  background:#fc0;
  color: #f50;
}
.start i{
  margin-right: 10px;
  transition: 300ms;
}
.start a:hover i{
  scale:1.5;
  rotate:360deg;
}
     
/*矢印*/
.arrow{
  display: block;
  height: 50px;
  width:50px;
  position: absolute;
  right: 0;
  left: 0;
  bottom:5vh;
  margin: auto;
  font-size: 50px;
  color:#fc0;
  animation:bounce 2s infinite;
}
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    translate:0 0;
  }
  40% {translate:0 -30px;}
  60% {translate:0 -15px;}
}
     
/* Service/Info共通 */
.service,.info,.smap{
  padding-block: 100px;
  text-align: center;
}
.service h2, 
.info h2, 
.smap h2{
  font-size: 3em;
  color:	#03b3f9;
  font-family: 'Great Vibes', cursive;
}
.service h2 i,
.info h2 i,
.smap h2 i{
  font-size: 0.8em;
  margin-right: 10px;
}
/* 疑似クラス共通 */
h2::after{
  display: block;
  margin: 5px 0 50px;
  font-size: 0.3em;
}
/* Service copy */
.service h2::after{
  content: "信頼できるサービスをご提供します";
}
/* Tour copy */
.info h2::after{
  content: "最新ツアー情報、話題の観光地をいち早くお届けします。";
}
/* Sitemap copy */
.smap h2::after{
  content: "ご希望の項目をクリックして閲覧してください。";
}
     
/* Our Service */
.service section{
  width:calc(100% / 3);
}
.service .container i{
  display: block;
  width:200px;
  line-height:200px;
  border-radius: 50%;
  margin:0 auto 30px;
  color:#03b3f9;
  background:#fff;
  font-size:40px;
  border:1px solid #03b3f9;
  transition: 300ms;
}
.service a:hover i{
  background:#03b3f9;
  color:#fff;
  rotate:1turn;
  scale:1.2;
}
.service h3{
  margin-bottom:20px;	
}
.service a:hover h3{
  color:#03b3f9;
}
.service p{
  width:80%;
  margin:0 auto;
  line-height:1.4;
  text-align-last: left;
}
     
/* Tour Info */
.info{
  background:#def;
}
.info .container{
  justify-content: space-between;
}
.info section{
  width:24%;
  background: #fff;
}
/* 画像枠 */
.info a>p{
  overflow: hidden;
}
.info img{
  height: 150px;
  width:100% ;
  object-fit: cover;
  opacity: 0.6;
  transition: 300ms;
}
.info a:hover img{
  opacity: 1;
  scale:1.2;
}
.info a:hover{
/* background: #dff; */
  box-shadow: 
  0 0 20px #03b3f9;
}
.txt{
  padding: 20px;
}
.txt h3{
  font-size: 0.8em;
  margin-bottom: 20px;
}
.txt p:first-of-type{
  text-align: left;
  line-height: 1.4;
  height: 11em;
}
.more{
  color: #fff;
  background: #03b3f9;
  padding: 5px;
  border-radius: 5px;
  transition: 300ms;
}
.info a:hover .more{
  background: #f50;
}

/*資料請求*/    
.document{
  padding-block: 150px;
  background: url(../img/kostenko.jpg)
   no-repeat center/cover fixed;
}
.document a{
  margin: 150px 0;
  margin-inline: auto;
  width: 11em;
  line-height: 1.8;
  text-align: center;
  border: 1px solid #fff;
  border-radius: 5px;
  color: #fff;
  font-size: 1.4em;
  font-weight: bold;
  letter-spacing: 0.1em;
}
.document i{
 transition: 300ms;
}
.document a:hover{
  background: rgba(121, 121, 164, 0.6);
}
.document a:hover i{
  rotate: 1turn;
  color: #f95;
}

.smap section{
  text-align: left;
  padding-inline: 10px;
}
.smap h3{
  color: #03b3f9;
}
.smap ul{
  margin-top: 20px;
}
.smap li{
  width: fit-content;
  height: 2.3em;
}

.smap a{
  transition: 300ms;
}
.smap a:hover{
  color: #03b3f9;
  scale: 1.1;
}
.smap a::after{
  content: "";
  display:block;
  height:3px;
  background:#03b3f9; 
  margin-top:3px;
  scale: 0;
  transition: 300ms
}
.smap a:hover::after{
  scale: 1;
}

footer{
  padding-block: 40px;
  background: #def;
  text-align: center;
}


/*ブレイクポイント９００ｐｘ*/
@media (max-width:900px){
  
  h1{
    font-size: 2.3em;
  }

  .pcnav li{
    font-size: 10px;
  }

  .copy{
    font-size: 2.5em;
  }

  .info .container{
    flex-wrap: wrap;
  }
  .info section{
    width: 48%;
  }
  .info section:nth-child(3),
  .info section:nth-child(4){
    margin-top: 20px;
  }

}

/*ブレイクポイント７４３ｐｘ*/
@media (max-width:743px){
  .pcnav{
    display: none;
  }
  aside{
    position: absolute;
    width: 245px;
    margin: auto;
    inset: 0;
    top: 85px;
  }
  .copy{
    font-size: 1.8em;
  }
  
  /*ハンバーガーメニュー*/
  .menu{
    display: block;
    width: 50px;
    height: 46px;
    border: 2px solid #fff;
    border-radius: 5px;
    position: fixed;
    top: 6px;
    right: 8px;
    z-index: 99999;
  }
  .menu span::before,
  .menu span::after{
    content: "";
  }
  .menu span,
  .menu span::before,
  .menu span::after{
    display: block;
    width: 36px;
    height: 4px;
    background: #fff;
    border-radius: 10px;
    position: absolute;
    margin: auto;
    inset: 0;
    z-index: 99999;
    transition: 300ms;
  }
  .menu span::before{
    translate: 0 12px;
  }
  .menu span::after{
    translate: 0 -12px;
  }
  .spin span{
    background: transparent;
  }
  .spin span::before{
    width: 40px;
    rotate: 315deg;
    translate: -2px 0;
  }
  .spin span::after{
    width: 40px;
    rotate: -315deg;
    translate: -2px 0;
  }

  /*スマホナビゲーション*/
  .spnav{
    display: block;
    color: #fff;
    background: #fd5849b9; 

    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    z-index: 9999;

    scale: 0;
    transition: 300ms;
    transform-origin: 92% 4%; 
  }
  .open{
    scale: 1;
  }

  .spnav ul{
    height: 80vh;
  }
  .spnav li{
    text-align: center;
    line-height: calc(80vh/5);
    font-size: 18px;
    border-bottom: 1px solid #fff;
  }

  /*servis/Tour/smap共通*/
  .service,.Tour,.smap{
    padding-block: 30px;
  }

  /*service*/
  .service .container{
    display: block;
  }
  .service section{
    width: auto;
    padding: 20px;         
    background: #03b3f9; 
    border-radius: 10px;
  }
  .service .container section+section{
    margin-top: 20px;
  }
  .service a:hover i{
    background: #fff;
    color: #03b3f9;
    scale: 1.1;
  }
  .service h3, .service p{
    color: #fff;
  }
  .service p{
    max-width: 400px;
  }
  
  /*資料請求*/
  .document{
    padding-block: 50px;
  }
  .document a i{
    color: #f90;
  }

  /*サイトマップ*/
  .smap .container{
    flex-wrap: wrap;
    padding-inline: 20px;
  }
  .smap section{
    width: 43%;
    padding-top: 20px;
    text-align: center;
    background: #eee;
  }
  .smap section:nth-child(3),
  .smap section:nth-child(4){
    margin-top: 30px;
  }
  .smap li{
    width: auto;
    font-size: 0.9em;
  }
  .smap a::after{
    display: none;
  }
}

/*ブレイクポイント５００ｐｘ*/
@media (max-width:500px){
  
  .info .container{
    display: block;
  }
  .info section{
    width: auto;
    margin-top: 20px;
  }
  .txt h3{
    font-size: 1.2em;    
  }
  .info .txt p:first-of-type{
    height: auto;
    padding-inline: 10px;
    margin-bottom: 20px;
  }
}