@charset "UTF-8";

/*--- 共通部分 ---*/
* {
  margin: 0;
  padding: 0;
}

html {
  font-size: 100%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

/*--- フォント ---*/
body {
  font-family: "Zen Maru Gothic", "Yu Gothic Medium", "游ゴシック Medium", "YuGothic", "游ゴシック体", "ヒラギノ丸ゴ Pro W3", sans-serif;

  .zen-maru-gothic-medium {
    font-family: "Zen Maru Gothic", serif;
    font-weight: 500;
    font-style: normal;
  }
  
  .zen-maru-gothic-bold {
    font-family: "Zen Maru Gothic", serif;
    font-weight: 700;
    font-style: normal;
  }
  
  .zen-maru-gothic-black {
    font-family: "Zen Maru Gothic", serif;
    font-weight: 900;
    font-style: normal;
  }
  
  .zen-maru-gothic-regular {
    font-family: "Zen Maru Gothic", serif;
    font-weight: 400;
    font-style: normal;
  }
  
  .zen-maru-gothic-light {
    font-family: "Zen Maru Gothic", serif;
    font-weight: 300;
    font-style: normal;
  }
  
}

/*--- ヘッダーposition: fixed;のための調整 ---*/
body {
  padding-top: 90px;
}

a {
  text-decoration: none;
}

li {
  list-style: none;
}

/*--- header ---*/
.header {
  display: flex;
  padding: 25px 60px;
  height: 80px;
  width: 100%;
  background-color: #ffffff;
  opacity: 0.8;
  position: fixed;
  top: 0;
  z-index: 30;
}

.logo {
  display: flex;
  width: 300px;
  height: 38px;
}

.logo:hover {
  opacity: 0.7;
}

.headermenu {
  display: flex;
  width: auto;
  text-align: center;
  margin: 0 0 90px auto;
  padding-bottom: 60px;
}

.headermenu nav {
  display: flex;
}

.headermenu ul {
  display: flex;
}

.headermenu li {
  display: flex;
  padding-left: 30px;
}

.headermenu a {
  font-size: 16px;
  font-weight: bold;
  color: #446B40;
}

.header a:hover {
  opacity: 0.7;
}

/*--- mainvisual ---*/
.mainmv {
  margin: auto;
  padding: auto;
  position: relative;
}

.mainvisual {
  margin-top: 80px;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  width: 100%;
  height: 500px;
}

.mainvisual .mainimg {
  position: absolute;
  z-index: 5;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

.mainvisual .mainimg:nth-of-type(1){
  background-image: url( ../images/mainpicture.jpg );
}
.mainvisual .mainimg:nth-of-type(2){
  animation-delay: 5s;
  background-image: url(../images/main2.jpg );
}
.mainvisual .mainimg:nth-of-type(3){
  animation-delay: 10s;
  background-image: url( ../images/main3.jpg );
}
.mainvisual .mainimg:nth-of-type(4){
  animation-delay: 15s;
  background-image: url( ../images/main4.jpg );
}
.mainvisual .mainimg:nth-of-type(5){
  animation-delay: 20s;
  background-image: url( ../images/main5.jpg );
}
.mainvisual .mainimg:nth-of-type(6){
  animation-delay: 25s;
  background-image: url( ../images/mainpicture.jpg );
}

/* アニメーション */
.mainvisual .mainimg {
  animation-name: anime;
  animation-delay: 0;
  animation-iteration-count: infinite;
  animation-duration: 30s;
}

@keyframes anime {
  0% {
    opacity: 1;
  }
  25% {
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  75% {
    opacity: 1;
  }
  100% { 
    opacity: 1;
    transform: scale(1.15);
  }
}


.maintxt {
  position: absolute;
  top: 180px;
  left: 270px;
  text-align: center;
  width: 880px;
  z-index: 8;
} 

.maintxt p {
  text-align: center;
  font-size: 56px;
  color: #ffffff;
  font-weight: 700;
  margin-top: 15px;
  text-shadow: 7px 7px #3B3A3A;
  opacity: 0.9;
}

/*--- お知らせ 2件だけ表示してスクロールで続きを表示---*/
.info {
  margin: 600px 200px 0 200px;
}

.info h2 {
  text-align: center;
  font-weight: bold;
  margin-bottom: 40px;
}

.infobox {
  overflow-y: auto;
  height: 115px;
  width:400px;
  -webkit-overflow-scrolling: touch;
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
  background-color: #fdfcee;
}

.sticky {
  position: sticky;
  top: 0;
  left: 0;
  border-top: none;
}
.sticky::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

.info dl {
  display: flex;
  flex-wrap: wrap;
  border-top: solid 1px #c8c8c8;
  margin-bottom: 20px;
  font-weight: medium;
}

.info dt {
  width: 20%;
  border-bottom: solid 1px #c8c8c8;
  padding: 15px 15px 15px 60px;
}

.info dd {
  width: 80%;
  border-bottom: solid 1px #c8c8c8;
  padding: 15px 15px 15px 80px;
}

/*--- mainstory ---*/
.story {
  margin: auto;
  padding: auto;
}
.story2 {
  width: 100%;
  height: 560px;
  margin-top: 130px;
  text-align: center;
  background-image: url( ../images/aozora.jpg );
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0.9;
}

.container {
  text-align: center;
  width: 880px;
  padding-top: 100px;
  margin-left: 270px;
}

.container h2 {
  text-align: center;
  font-size: 40px;
  color: #3B3A3A;
  margin-bottom: 45px;
  text-shadow: 1px 1px 0 #ffffff, -1px -1px 0 #ffffff,
              -1px 1px 0 #ffffff, 1px -1px 0 #ffffff,
              0px 1px 0 #ffffff,  0-1px 0 #ffffff,
              -1px 0 0 #ffffff, 1px 0 0 #ffffff;
} 

.container p {
  text-align: left;
  font-size: 28px;
  color: #3B3A3A;
  font-weight: bold;
  margin-top: 15px;
  text-shadow:1px 1px 0 #ffffff, -1px -1px 0 #ffffff,
              -1px 1px 0 #ffffff, 1px -1px 0 #ffffff,
              0px 1px 0 #ffffff,  0 -1px 0 #ffffff,
              -1px 0 0 #ffffff, 1px 0 0 #ffffff;
}


/*--- 特徴 ---*/
.feature {
  padding: 60px 0;
  margin-top: 60px;
}

.feature h2 {
  text-align: center;
  font-size: 36px;
  color: #3b3b3b;
  letter-spacing: 7px;
  margin-bottom: 80px;
}

.feature .text{
  animation: fadeIn linear both;
  animation-timeline: view();
  animation-range: entry 25% cover 50%;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    clip-path: inset(45% 20% 45% 20%);
  }

  to {
    opacity: 1;
    clip-path: inset(0% 0% 0% 0%);
  }
}

.fea1 {
  margin-bottom: 70px;
}

.fea1 img {
  position: relative;
  margin-left: 120px;
}

.fea1 .text {
  width: 580px;
  height: 265px;
  background-color: #ffffff;
  opacity: 0.8;
  position: absolute;
  right: 120px;
  margin-top: -250px;
  box-shadow: 18px 20px 30px #908f8f;
}

.fea1 h3 {
  font-size: 28px;
  color: #3B3A3A;
  padding-top: 20px;
  padding-left: 30px;
} 

.fea1 p {
  font-size: 20px;
  font-weight: 400;
  color: #3B3A3A;
  padding-top: 5px;
  padding-left: 30px;
  padding-right: 30px;
  line-height: 40px;
}

.fea2 {
  margin-bottom: 70px;
}

.fea2 img {
  position: relative;
  left: 570px;
  margin-top: 60px;
}

.fea2 .text {
  width: 580px;
  height: 300px;
  background-color: #ffffff;
  opacity: 0.8;
  position: absolute;
  margin-left: 140px;
  margin-top: -250px;
  box-shadow: -18px 20px 30px #908f8f;
}

.fea2 h3 {
  font-size: 30px;
  color: #3B3A3A;
  padding-top: 20px;
  padding-left: 30px;
} 

.fea2 p {
  font-size: 20px;
  font-weight: 400;
  color: #3B3A3A;
  padding-top: 5px;
  padding-left: 30px;
  padding-right: 30px;
  padding-bottom: 15px;
  line-height: 40px;
}

.fea3 {
  margin-bottom: 70px;
}

.fea3 img {
  position: relative;
  margin-left: 120px;
  padding-top: 100px;
}

.fea3 .text {
  width: 580px;
  height: 250px;
  background-color: #ffffff;
  opacity: 0.8;
  position: absolute;
  right: 120px;
  margin-top: -250px;
  box-shadow: 18px 20px 30px #908f8f;
}

.fea3 h3 {
  font-size: 28px;
  color: #3B3A3A;
  padding-top: 20px;
  padding-left: 30px;
} 

.fea3 p {
  font-size: 20px;
  font-weight: 400;
  color: #3B3A3A;
  padding-top: 5px;
  padding-left: 30px;
  padding-right: 30px;
  line-height: 40px;
}

.fea4 {
  margin-bottom: 90px;
}

.fea4 img {
  position: relative;
  left: 570px;
  margin-top: 60px;
}

.fea4 .text {
  width: 580px;
  height: 260px;
  background-color: #ffffff;
  opacity: 0.8;
  position: absolute;
  left: 0;
  margin-left: 140px;
  margin-top: -250px;
  box-shadow: -18px 20px 30px #908f8f;
}

.fea4 h3 {
  font-size: 28px;
  color: #3B3A3A;
  padding-top: 20px;
  padding-left: 30px;
} 

.fea4 p {
  font-size: 20px;
  font-weight: 400;
  color: #3B3A3A;
  padding-top: 5px;
  padding-left: 30px;
  padding-right: 30px;
  line-height: 40px;
}

.fea5 {
  margin-bottom: 50px;
}

.fea5 img {
  position: relative;
  margin-left: 120px;
  padding-top: 50px;
}

.fea5 .text {
  width: 650px;
  height: 230px;
  background-color: #ffffff;
  opacity: 0.8;
  position: absolute;
  right: 0;
  margin-right: 120px;
  margin-top: -250px;
  box-shadow: 18px 20px 30px #908f8f;
}

.fea5 h3 {
  font-size: 28px;
  color: #3B3A3A;
  padding-top: 20px;
  padding-left: 30px;
} 

.fea5 p {
  font-size: 20px;
  font-weight: 400;
  color: #3B3A3A;
  padding-top: 5px;
  padding-left: 30px;
  padding-right: 30px;
  line-height: 40px;
}

/*--- 部屋 ---*/
.roominfo {
  margin-top: 60px;
  margin-bottom: 30px;
}

.roomset {
  height: 160vh;
  position: relative;
  background-image: url( ../images/backgoung1.png );
  background-repeat: no-repeat;
  background-size: 78%;
  background-position: 120px -50px;
}

.roomset h2 {
  text-align: center;
  font-size: 36px;
  font-weight: bold;
  padding: 100px 0 80px 0;
  margin: 0 120px 0 120px;
  border-top: solid 0.5px #929191;
}

.roomset2 {
  display: flex;
  align-items: center;
  justify-content: center;
  top: 80px;
  left: 170px;
}

.roomset2 p {
  display: flex;
  text-align: left;
  font-size: 16px;
  font-weight: 500;
  width: 510px;
  padding: 25px 40px;
  line-height: 36px; 
}

.room1 .room2 {
  display: flex;
}

.room2 {
  padding-left: 50px;
}

.room2 p {
  margin-left: 20px;
}

/* ボタン1 */
.roominfo .btn1 {
  flex: none;
  text-align: center;
  position: absolute;
  text-decoration: none;
  font-size: 20px;
  color: #3B3A3A;
  font-weight: 500;
  padding-top: 11px;
  top: 830px;
  left: 585px;
  border: 0;
  border-radius: 23px;
  background-color: #6fa974;
  height: 50px;
  width: 280px
}

.btn1:hover {
  opacity: 0.7;
}

.btn1:active {
  box-shadow:
    inset -2px -2px 3px #669925,
    inset 2px 2px 3px #446B40;
}

/*--- 食事 ---*/
.mealinfo {
  margin: auto;
}

.mealset {
  height: auto;
  position: relative;
}

.mealset h2 {
  text-align: center;
  font-size: 36px;
  font-weight: 700;
  padding: 60px 0 30px 0;
  margin: 0 120px 0 120px;
  border-top: solid 0.5px #929191;
}

.mealset2 {
  display: flex;
  justify-content: center;
  flex-flow: row wrap;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(1, 1fr);
  height: auto;
  padding: 60px 230px 180px;
  background-image: url( ../images/backgound2.png );
  background-repeat: no-repeat;
  background-size: 120%;
  background-position: -130px -130px;
}

.mealset2 p {
  display: flex;
  text-align: left;
  font-size: 16px;
  font-weight: 500;
  width: 430px;
  margin: 30px 20px 65px;
  line-height: 36px; 
}

/* ボタン2 */
.mealinfo .btn2 {
  flex: none;
  position: absolute;
  top: 1230px;
  left: 585px;
  text-align: center;
  font-size: 20px;
  color: #3B3A3A;
  font-weight: 500;
  margin-top: 30px;
  border: 0;
  line-height: 2.5;
  padding: 0 20px;
  border-radius: 10px;
  background-size: 60px 280px;
  border-radius: 23px;
  background-color: #eec1b9;
  height: 50px;
  width: 280px
} 

.mealinfo .btn2:hover {
  opacity: 0.7;
}

.mealinfo .btn2:active {
  box-shadow:
    inset -2px -2px 3px #edc9c4,
    inset 2px 2px 3px #906c67;
}

/*--- 温泉 ---*/
.onseninfo {
  margin: auto;
}

.onsenset {
  margin-top: 80px;
  position: relative;
}

.onsenset h2 {
  text-align: center;
  font-size: 36px;
  font-weight: 700;
  padding: 60px 0 30px 0;
  margin: 0 80px 0 80px;
  border-top: solid 0.5px #929191;
}

.onsenset2 {
  display: flex;
  align-items: center;
  position: absolute;
  top: 100px;
  left: 185px;
  margin-top: 90px;
  background-image: url( ../images/backgoung1.png );
  background-repeat: no-repeat;
  background-size: 80%;
  background-position: 50px -100px;
  padding-bottom: 200px;
}

.oyu .musu {
  display: flex;
}

.musu img {
  padding-left: 10px;
}

.onsenset2 .oyu p {
  display: flex;
  text-align: left;
  font-size: 16px;
  font-weight: 500;
  width: 580px;
  padding: 25px 0 100px 0;
  line-height: 36px; 
}

.onsenset2 .musu p {
  display: flex;
  text-align: left;
  font-size: 16px;
  font-weight: 500;
  width: 520px;
  padding: 25px 0 100px 15px;
  line-height: 36px; 
}


.onseninfo .btn1 {
  flex: none;
  text-align: center;
  position: absolute;
  text-decoration: none;
  font-size: 20px;
  color: #3B3A3A;
  font-weight: 500;
  padding-top: 11px;
  top: 785px;
  left: 585px;
  border: 0;
  border-radius: 23px;
  background-color: #6fa974;
  height: 50px;
  width: 280px 
}

.btn1:hover {
  opacity: 0.7;
}

.btn1:active {
  box-shadow:
    inset -2px -2px 3px #669925,
    inset 2px 2px 3px #446B40;
}

/*--- サービス ---*/
.serviceinfo {
  margin: auto;
}

.serinfo {
  margin-top: 800px;
}

.serinfo h2 {
  text-align: center;
  font-size: 36px;
  font-weight: 700;
  padding: 60px 0 30px 0;
  margin: 0 80px 0 80px;
  border-top: solid 0.5px #929191;
}

.serset {
  margin: 0 60px;
  background-image: url( ../images/serviceimg.png );
  background-repeat: no-repeat;
  background-size: 93%;
  background-position: 30px -20px;
}

.serset p {
  animation: fadeIn linear both;
  animation-timeline: view();
  animation-range: entry 25% cover 50%;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    clip-path: inset(45% 20% 45% 20%);
  }

  to {
    opacity: 1;
    clip-path: inset(0% 0% 0% 0%);
  }
}

.ser1 img {
  display: flex;
  width: 350px;
  padding-top: 90px;
  padding-left: 120px;
}

.ser1 {
  position: relative;
}

.ser1 .pic1 {
  position: absolute;
  left: 0;
  margin-left: 30px;
  margin-top: 80px;
}

.ser1 .pic2 {
  position: absolute;
  left: 0;
  margin-left: 290px;
  margin-top: -60px;
}

.ser1 .pic3 {
  position: absolute;
  left: 0;
  margin-left: 580px;
  margin-top: -60px;
}

.ser1 .pic4 {
  position: absolute;
  left: 0;
  margin-left: 860px;
  margin-top: 80px;
}

.sertxt1 {
  text-align: center;
  padding-top: 270px;
}

.sertxt1 p {
  font-size: 16px;
  font-weight: 500;
  line-height: 48px;
}


.ser2 img {
  display: flex;
  width: 350px;
  padding-top: 150px;
  padding-left: 120px;
}

.ser2 {
  position: relative;
}

.ser2 .pic5 {
  position: absolute;
  top: -60px;
  left: 0;
  margin-left: 30px;
  margin-top: 80px;
}

.ser2 .pic6 {
  position: absolute;
  top: -60px;
  left: 0;
  margin-left: 290px;
  margin-top: -60px;
}

.ser2 .pic7 {
  position: absolute;
  top: -60px;
  left: 0;
  margin-left: 580px;
  margin-top: -60px;
}

.ser2 .pic8 {
  position: absolute;
  top: -60px;
  left: 0;
  margin-left: 860px;
  margin-top: 80px;
}

.sertxt2 {
  text-align: center;
  padding-top: 280px;
  padding-left: 400px;
  padding-bottom: 130px;
  margin-bottom: 20px;
}

.sertxt2 p {
  width: 550px;
  font-size: 16px;
  font-weight: 500;
  line-height: 48px;
}


/*--- 周辺施設 ---*/
.subser {
  margin: auto;
}

.ser-subset {
  padding: 0 120px;
  background-image: url( ../images/ser2backimg.png );
  background-repeat: no-repeat;
  background-size: contain;
}

.subser h3 {
  text-align: center;
  font-size: 28px;
  padding: 80px 0 30px 0;
  margin: 0 400px;
  border-top: 3px solid #fbf7c8;
}

.stxt {
  margin-bottom: 35px;
  padding-top: 50px;
}

.subser p {
  text-align: center;
  font-size: 18px;
  font-weight: 500;
  line-height: 36px;
}

.sub1 {
  padding-top: 30px;
  padding-left: 85px;
}

.sub1 img {
  padding-left: 30px;
  padding-bottom: 15px;
}

.sub2 {
  padding-left: 110px;
}
  
.sub2 img {
  padding: 50px 30px 15px 0;
}

.sub2 p {
  padding-bottom: 50px;
}


/*--- アクセス ---*/
.accessinfo {
  margin: auto;
}

.reservationtel {
  font-size: 20px;
  text-align: center;
  font-weight: 500;
  color: #4a7610;
  margin-bottom: 30px;
}

.map {
  padding: 0 80px;
}

.map h2 {
  text-align: center;
  font-size: 36px;
  font-weight: 700;
  margin: 80px 0 20px 0;
  padding: 70px 0 15px 0;
  border-top: solid 0.5px #929191;
}

.map img {
  width: 80%;
  padding-left: 250px;
}

.map nav {
  display: flex;
  padding-top: 30px;
  padding-left: 200px;
  font-size: 20px;
  font-weight: 700;
}

.map .address {
  padding-left: 50px;
}

.map .address li {
  padding-bottom: 8px;
}

.address .litxt {
  font-size: 20px;
  font-weight: 400;
}

.map .tel {
  padding-left: 110px;
  margin-bottom: 60px;
}

.map .tel p {
  line-height: 40px;
}

.tel span {
  font-size: 20px;
  font-weight: 400;
}

.map1 {
  border-bottom: 1px solid #CBE5CD;
  margin: 0 60px;
}

.map2 {
  text-align: left;
  font-size: 20px;
  font-weight: bold;
  margin: 40px auto 100px auto;
  line-height: 36px; 
  padding-left: 160px;
}

.map2 h3 {
  padding: 5px 80px 5px 20px;
  margin-right: 168px;
  background: linear-gradient(to top, #6fa974 0%, #daf0dc 80%);
}

.map2 p {
  font-size: 18px;
  font-weight: 400;
  padding: 8px 0 16px 15px;
}

/*--- FAQ ---*/
.faqinfo {
  margin: auto;
  position: relative;
}

.faqset {
  text-align: center;
}

.faqset img {
  position: absolute;
  top: 130px;
  left: 465px;
  z-index: -2;
  opacity: 0.3;
  width: 500px;
  height: 100%;
}

.faq1 h2 {
  text-align: center;
  font-size: 36px;
  font-weight: 700;
  margin: 30px 80px;
  padding: 70px 0 15px 0;
  border-top: solid 0.5px #929191;
}

.faq2 p {
  font-size: 24px;
  font-weight: 500;
  padding-left: 28px;
  margin-top: 120px;
}

.btn3 {
  position: absolute;
  text-align: center;
  text-decoration: none;
  font-size: 20px;
  color: #3B3A3A;
  font-weight: 500;
  padding-top: 11px;
  margin-top: 130px;
  top: 300px;
  left: 585px;
  border: 0;
  border-radius: 23px;
  background-color: #fcf9d1;
  height: 50px;
  width: 280px  
}

.btn3:hover {
  opacity: 0.7;
}

.btn3:active {
  box-shadow:
    inset -2px -2px 3px #f7ea89,
    inset 2px 2px 3px #ccc014;
}

/*--- 総合情報 ---*/
.generalinfo {
  margin: auto;
}

.generalset {
  margin-top: 280px;
  width: auto;
  height: auto;
  background-color: #c7c6c6;
  padding: 30px 120px 30px 180px;
}

.general1 {
  column-count: 4;
  justify-content: center;
  padding-top: 5px;
}

.general1 li {
  padding-left: 25px;
  padding-bottom: 15px;
}

.general1 li a {
  color: #3B3A3A;
  font-size: 14px;
}

.general1 a:hover {
  opacity: 0.7;
}

/*-- 予約ボタン --*/
.reservebtn {
  position: fixed;
  z-index: 50;
  bottom: 0px;
  right: 0px;
  transition: 0.3s;
}

.reservation img {
  height: 150px;
}

.reservation:hover {
  opacity: 0.5;
}

/*--- footer ---*/
.footer {
  text-align: center;
  height: 60px;
  width: 100%;
  background-color: #659560;
  padding-top: 20px;
  opacity: 0.8;
}


