@charset "UTF-8";

body {
  margin: 0 0;
  width: 100%;
  color: #231815;
  position: relative;
  -webkit-text-size-adjust: none;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt" 1;
  font-weight: 400;
  line-height: 1.75;
  text-align: justify;
  font-size: 100%;
  overflow-x: hidden;
  background: #fff;
  
}
a {
  user-select: none;
  transition: 0.3s ease opacity;
}
a:hover {
  opacity: 0.6;
}
img{
  width: 100%;
  height: auto;
}
main{
  width: 100%;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
}
.wrapper {
  width: 100%;
  max-width: 1024px;
  padding: 0 50px;
  margin: 0 auto;
  position: relative;
}

@media screen and (max-width:680px) {
.wrapper {
    width: 100%;
    max-width: 100%;
    padding: 0 17.5px;
    margin: 0 auto;
    position: relative;
  }
}

.gmap {
  overflow: hidden;
  aspect-ratio: 700 / 400;
  position: relative;
}

.gmap iframe {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
}

/* ページトップに戻る---------------- */
#skip {
  position: absolute;
  left: -9999em;
}
#page_top{
  position: fixed;
  bottom: -60px;
  right: 50px;
  z-index: 20;
  transition: 0.3s ease;
}
#page_top a{
  position: relative;
  display: block;
  width: 60px;
  height: 60px;
  transition: 0.3s ease opacity;
  background: url(../images/page_top.png) no-repeat center / contain;
}
#page_top a:hover{
  opacity: 0.6;
}

@media screen and (max-width:680px) {
  
  #page_top{
    position: fixed;
    bottom: -60px;
    right: 17.5px;
  }

}
/* メインビジュアル---------------- */
#main_visual{
  position: relative;
  border-bottom: 14px solid #be9b22;
}
#main_visual .tag{
  position: absolute;
  top: 24px;
  left: 24px;
  width: 65px;
  height: auto;
  z-index: 3;
}
#main_visual .header{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  z-index: 2;
}
#main_visual .image{
  position: relative;
  width: 100%;
  height: auto;
  z-index: 1;
}

#main_visual .title{
  position: absolute;
  top: 9%;
  left: 21.2%;
  width: 57.6%;
  height: auto;
  z-index: 2;
}
@media screen and (max-width:680px) {
  #main_visual{
    position: relative;
    border-bottom: 5px solid #be9b22;
  }
  #main_visual .tag{
    position: absolute;
    top: 20px;
    left: 17.5px;
  }
  #main_visual .title{
    position: absolute;
    top: 20%;
    left: 2.8%;
    width: 94.4%;
    height: auto;
    z-index: 2;
  }
}

/* アバウト---------------- */

.bg-paper{
  background: url(../images/bg-paper.jpg) repeat-y top / 100% auto;
}
.bg-calligraphy{
  background: url(../images/bg-calligraphy.jpg) repeat-y top / 100% auto;
}
.bg-rice{
  background: url(../images/bg-rice.jpg) repeat-y top / 100% auto;
}
.bg-kojima{
  background: url(../images/bg-kojima.jpg) no-repeat center / cover;
}

@media screen and (max-width:680px) {
  .bg-paper{
    background: url(../images/bg-paper-sp.jpg) repeat-y top / 100% auto;
  }
  .bg-calligraphy{
    background: url(../images/bg-calligraphy-sp.jpg) repeat-y top / 100% auto;
  }
  .bg-rice{
    background: url(../images/bg-rice-sp.jpg) repeat-y top / 100% auto;
  }
  .bg-kojima{
    background: url(../images/bg-kojima-sp.jpg) no-repeat center / cover;
  }
}

.text-wrap{
  max-width: 700px;
  margin: auto;
}
.text-box{
  border: 1px solid #231815;
  background: #fff;
}
.text-box h2{
  font-size: 1.5em;
  font-weight: 500;
  line-height: 1.2;
  color: #fff;
  text-align: center;
  background: #231815;
  padding: 6px;
}
.text-box h3{
  font-size: 1.125em;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 4px;
}
.text-box h3:not(:first-child){
  margin-top: 30px;
}
.text-box .text{
  padding: 15px 30px;
}
.text-box .text p{
  font-family: "Noto Serif JP", serif;
}
.text-wrap .learn{
  margin-top: 50px;
}
.banner-rekitabi{
  text-align: center;
  max-width: 300px;
  margin: 50px auto 0;
}
.banner-rekitabi a{
  color: #231815;
  text-decoration: none;
  display: block;
  margin: auto;
}
@media screen and (max-width:680px) {
  .text-box h2{
    font-size: 1.25em;
    padding: 8px;
  }
  .text-box .text{
    padding: 20px 15px;
  }
  .text-wrap .learn{
    margin-top: 35px;
  }

}

.information{
  display: flex;
  flex-direction: column;
  gap: 30px;
  max-width: 93.5%;
  margin: auto;
  
}
.information .items{
  display: flex;
  gap: 15px 30px;
}
.information .items .item span.inner{
  display: block;
  background: #6a3906;
  border-radius: 5px;
  color: #fff;
  font-size: 2em;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  text-align: center;
  padding: .375em 15px;
  white-space: nowrap;
}

#bus_tour .information .items .item span.inner{
  width: 4em;
  box-sizing: content-box;
}
.information .items .item.narrow{
  max-width: 310px;
}
.information .items .item.narrow .inner span.narrow {
  transform: scale(0.7,1);
  transform-origin: center left;
  display: inline-block;
}
.information .items .detail{
  font-size: 2em;
  font-weight: 400;
  line-height: 1.75;
  text-align: left;
}
.information .items .detail .small{
  font-size: 0.8em;
}
.information .items .ib{
  display: inline-block;
}
.information .items .big{
  font-size: 1.5em;
  line-height: 1;
}
.information .items .small{
  font-size: 1.5em;
  max-width: 645px;
}
.information .items .bold{
  font-weight: 700;
}
.information .items .underline{
  text-decoration: underline;
}
.information .items a{
  color: #231815;
}
.information .items .mission{
  margin-top: 24px;
}
.information .items .mission img{
  height: 43px;
  width: auto;
}
.information .items .notification{
  color: #c30d23;
  font-size: 0.75em;
}
.information .items .lunch{
  display: inline-block;
  background: #231815;
  border-radius: 9999px;
  color: #fff;
  font-size: 0.75em;
  font-weight: 600;
  padding: 0 5px;
  margin: 0 10px;
}

.detail h2{
  color: #231815;
  font-size: 1.5em;
  font-weight: 700;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  padding: 12px;
  display: block;
  max-width: 380px;
  border-top: 1.5px solid #231815;
  border-bottom: 1.5px solid #231815;
  margin: 0 auto 50px;
}

@media screen and (max-width:680px) {
  .information .items{
    flex-direction: column;
  }
  .information .items .item span.inner{
    display: inline-block;
    font-size:1.625em;
    white-space: unset;
    text-align: center;
  }
  .information .items .item.narrow{
    max-width: 260px;
  }
  .information .items .item.narrow span.inner{
  }
  .information .items .item.narrow span.narrow{
    max-width: 226px;
    white-space: nowrap;
  }
  .information .items .detail{
    font-size:1.625em;
    line-height: 1.3;
  }
  .information .items .small{
    font-size: 1.25em;
  }
  .information .items .mission img{
    height: 32px;
    width: auto;
  }
  .detail h2{
    font-size: 1.315em;
    padding: 15px;
  }
}
/* アバウト---------------- */
#about{
  padding: 50px 0;
}

#about .nav-wrap{
  max-width: 880px;
  margin: 50px auto 0;
  display: flex;
  gap: 50px 4.5%;
}
#about .nav-wrap .nav{
  border-radius: 20px;
  border: 3.5px solid #582f1d;
  background: #fff;
  overflow: hidden;
  width: 47.75%;
}
#about .nav-wrap .nav.bus_tour{
  border: 3.5px solid #dd3b23;
}

@media screen and (max-width:680px) {
  #about{
    padding: 35px 0;
  }
  #about .nav-wrap{
    flex-direction: column;
  }
  #about .nav-wrap .nav{
    width: 100%;
  }
}

/* スタンプラリー---------------- */
#stamp_rally-detail{
  padding: 50px 0 100px;
}
#stamp_rally-story{
  padding: 50px 0;
}
#stamp_rally-spot{
  margin: 100px auto 100px;
}
#stamp_rally-spot .spot-wrap{
  display: flex;
  gap: 25px 25px;
}
#stamp_rally-spot .spot-wrap .spot{
  max-width: 290px;
  border-radius: 10px;
  border: 1px solid #231815;
  background: #fff;
  padding: 10px 20px 10px;
}
#stamp_rally-spot .spot-wrap .spot .point{
  position: relative;
  color: #6a3906;
  font-weight: 500;
  margin-bottom: 10px;
}
#stamp_rally-spot .spot-wrap .spot .point span{
  background: #fff;
  position: relative;
  z-index: 3;
}
#stamp_rally-spot .spot-wrap .spot .point:after{
  content:"";
  display: block;
  width: 100%;
  height: 1px;
  background: #231815;
  position: absolute;
  left: 0;
  top: calc(50% - 0.5px);
  z-index: 2;
}
#stamp_rally-spot .spot-wrap .spot .image{
  margin-bottom: 10px;
}

#stamp_rally-spot .spot-wrap .spot .name{
  font-size: 1.125em;
  font-weight: 700;
  color: #6a3906;
}
#stamp_rally-spot .spot-wrap .spot .small{
  font-size: 0.8em;
}
#stamp_rally-spot .spot-wrap .spot .address{
  padding-left:3em;
  text-indent:-3em;
  font-feature-settings: normal;
}
#stamp_rally-spot .spot-wrap .spot .hour{
  padding-left:5em;
  text-indent:-5em;
  font-feature-settings: normal;
}
#stamp_rally-spot .spot-wrap .spot .close{
  padding-left:3em;
  text-indent:-3em;
  font-feature-settings: normal;
}
#stamp_rally-spot .spot-wrap .spot .note{
  font-size: 0.9em;
  padding-left:1em;
  text-indent:-1em;
  font-feature-settings: normal;
}
#stamp_rally-spot .spot-wrap .spot .note b{
  font-weight: 500;
}

#stamp_rally-map{
  margin: 100px auto 100px;
}
#stamp_rally-map .map-wrap{
  width: 76%;
  margin: auto;
  border: 1px solid #231815;
}
#stamp_rally-map .map-wrap .gmap{
  aspect-ratio: 700/400;
}

#stamp_rally-content{
  margin: 100px auto 0;
}
#stamp_rally-content h3.mission{
  margin-bottom: 20px;
}
#stamp_rally-content h3.mission img{
  height: 50px;
  width: auto;
}
#stamp_rally-content h4{
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 15px;
  color: #ea5514;
}

#stamp_rally-content #mission02 h4{
  color: #006934;
}

#stamp_rally-content .content-wrap{
  width: 86.6%;
  margin:0 auto;
}
#stamp_rally-content .content-wrap+.content-wrap{
  margin-top: 100px;
}
#stamp_rally-content .description{
  display: flex;
  gap: 30px;
}

#stamp_rally-content .flow{
  flex: 1;
}
#stamp_rally-content .flow li{
  margin-left: 1em;
  text-indent: -1em;
  font-weight: 500;
}
#stamp_rally-content .flow li.light{
  font-weight: 400;
}
#stamp_rally-content #mission01 .description .image img{
  width: 200px;
  height: auto;
  margin: auto;
}
#stamp_rally-content #mission02 .description .image img{
  width: 235px;
  height: auto;
  margin: auto;
}
#stamp_rally-content .description .note{
  font-size: 0.75em;
  text-align: center;
}
#stamp_rally-content .present{
  max-width: 400px;
  margin: 50px auto 0;
}
#stamp_rally-content .present h3{
  border-radius: 5px;
  background: #6a3906;
  color: #fff;
  border: 4px solid #6a3906;
  text-align: center;
  font-size: 1.31em;
  font-weight: 700;
  margin-bottom: 30px;
}
#stamp_rally-content .present h3 span{
  border-radius: 5px;
  border: 2px solid #fff;
  width: 100%;
  display: inline-block;
  padding-left: 2em;
  letter-spacing: 2em;
}
#stamp_rally-content .present .image{
  margin: 0 10px;
  border-radius: 12px;
  position: relative;
  z-index: 1;
  background: rgba(255,255,255,0.7);
}
#stamp_rally-content .present .image:before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border: 3px solid #dd3b23;
  border-radius: 12px;
  position: absolute;
  top: 0;
  left: 0;
}
#stamp_rally-content #mission02 .present .image:before{
  border: 3px solid #006934;
}
#stamp_rally-content .present .image img{
  width: calc(100% + 8px);
  max-width: unset;
  position: relative;
  left: -4px;
  z-index: 2;
}

@media screen and (max-width:880px) {
  #stamp_rally-spot{
    margin: 75px auto 75px;
  }
  #stamp_rally-spot .spot-wrap{
    flex-direction: column;
    align-items: center;
  }
}
@media screen and (max-width:680px) {
  #stamp_rally-detail{
    padding: 30px 0 50px;
  }
  #stamp_rally-story{
    padding: 35px 0;
  }

  #stamp_rally-map{
    margin: 75px auto 75px;
  }
  #stamp_rally-map .map-wrap{
    width: 100%;
    margin: auto;
  }
  #stamp_rally-map .map-wrap .gmap{
    aspect-ratio: 338/400;
  }
  #stamp_rally-content{
    margin: 75px auto 0;
  }
  #stamp_rally-content h3.mission img{
    height: 35px;
    width: auto;
  }
  #stamp_rally-content .description{
    flex-direction: column;
  }
	#stamp_rally-content .content-wrap+.content-wrap{
	  margin-top: 50px;
	}
  #stamp_rally-content .present{
    margin: 45px auto 0;
  }

  #stamp_rally-content .present .image{
    margin: 0;
  }

}
/* バスツアー---------------- */
#bus_tour-detail{
  padding: 50px 0 100px;
}
#bus_tour-detail .information .items .item span{
  background: #dd3b23;
}
#bus_tour-guest{
  padding: 90px 0 45px;
}
#bus_tour-guest .guest-wrap{
  display: flex;
  gap: 40px 00px;
}
#bus_tour-guest .guest-wrap .guest-top{
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 100%;
  padding: 0 0 0 30px;
  margin-bottom: 20px;
}
#bus_tour-guest .guest-wrap .guest {
  flex: 1;
}
#bus_tour-guest .guest-wrap .guest .photo{
  width: 200px;
  margin: 0 auto;
}
#bus_tour-guest .guest-wrap .guest .detail{
;
  width: 210px;
  margin: 0 auto;
}
#bus_tour-guest .guest-wrap .guest .detail .position{
  line-height: 1.5;
  width: 98px;
  border-bottom: 1.5px solid #231815;
  padding-bottom: 10px;
  margin-bottom: 10px;
}
#bus_tour-guest .guest-wrap .guest .detail .name{
  font-size: 1.5em;
  line-height: 1;
  white-space: nowrap;
}
#bus_tour-guest .guest-wrap .guest .detail .name span{
  font-size: 0.5em;
}
#bus_tour-guest .guest-wrap .guest .detail .career{
  margin-top: 30px;
  line-height: 1.25;
  font-size: 0.975em;
  font-family: "Noto Serif JP", serif;
}
#bus_tour-guest .guest-wrap .guest .description{
  padding: 0 30px;
  width: 100%;
}
#bus_tour-course{
  padding: 45px 0 45px;
}

#bus_tour-course .course{
  border-radius: 8px;
  border: 3px solid #dd3b23;
  overflow: hidden;
}
#bus_tour-detail2{
  padding: 30px 0 50px;
}

#bus_tour-point{
  margin: 0px auto 85px;
}
#bus_tour-point .point-wrap{
  display: flex;
  flex-wrap: wrap;
  width: 94%;
  margin: auto;
  gap: 45px 7%; 
}
#bus_tour-point .point-wrap .point{
  width: 28.6%;
}
#bus_tour-point .point-wrap .point .image{
  margin-bottom: 20px;
}
#bus_tour-point .point-wrap .point .name{
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.5;
  display: flex;
  margin-bottom: 15px;
}
#bus_tour-point .point-wrap .point .name .number{
  font-size: 1.5em;
  line-height: 1;
}
#bus_tour-point .point-wrap .point .description{
  font-weight: 300;
  line-height: 1.5;
}
#bus_tour-present{
  margin: 85px auto 95px;
}
#bus_tour-present .present{
  margin: auto;
  max-width: 370px;
  border-radius: 10px;
  border: 2px solid #dd3b23;
  background: #fff;
  overflow: hidden;
}
#bus_tour-application{
  margin: 95px auto 0;
}
#bus_tour-application .button{
  height: 50px;
  position: relative;
}
#bus_tour-application .button a{
  display: block;
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  color: #fff;
  background: #c30d23;
  border-radius: 9999px;
  text-decoration: none;
  padding: 13px;
  max-width: 400px;
  width: 100%;
  margin: auto;
}
#bus_tour-application .button .scroll{
  max-width: max-content;
  width: 100%;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
#bus_tour-application .button.active .scroll{
  position: fixed;
  bottom: 0px;
  z-index: 20;
  transition: 0.3s ease bottom;
}
#bus_tour-story{
  padding: 50px 0;
}
.application-start{ 
  display: block;
  background: rgba(255, 255, 255, 0.8);
  padding: 5px;
  margin-top: 10px;
  font-weight: 500;
  line-height: 1.2;
  font-size: 0.92em;
}
@media screen and (max-width:680px) {
  #bus_tour-detail{
    padding: 30px 0 50px;
  }
  #bus_tour-guest{
    padding: 80px 0 45px;
  }
  #bus_tour-guest .guest-wrap{
    flex-direction: column;
  }
  #bus_tour-guest .guest-wrap .guest-top{
    flex-direction: column;
  }
  #bus_tour-course{
    padding: 50px 0 35px;
  }
  #bus_tour-detail{
    padding: 30px 0 50px;
  }
  #bus_tour-detail2{
    padding: 50px 0 50px;
  }
  #bus_tour-point{
    margin: 0px auto 85px;
  }
  #bus_tour-point .point-wrap{
    width: 100%;
    align-items: center;
    justify-content: center;
  }
  #bus_tour-point .point-wrap .point{
    width: 100%;
    max-width: 250px;
  }
  #bus_tour-present{
    margin: 85px auto 50px;
  }
  #bus_tour-application{
    margin: 50px auto 0;
}

  #bus_tour-story{
    padding: 35px 0;
  }
  #bus_tour-application .button .scroll{
    max-width: 340px;
  }
  #bus_tour-application .button.active  .scroll{
    width: calc(100% - 35px);
  }
}
/* フッター---------------- */
footer {
  width: 100%;
  position: relative;
  background: #231815;
  color: #fff;
  padding: 16px 0 24px;
}
footer a {
  text-decoration: none;
  color: #fff;
}
footer .host{
  font-size: 0.875em;
  line-height: 1.71;
  text-align: left;
}

footer .contact{
  font-size: 0.875em;
  line-height: 1.71;
  text-align: left;
}
footer .contact span{
  display: inline-block;
}
footer .contact span.tel{
  margin-right: 0.5em;
}
footer .contact span.hour{
  margin-right: 1em;
}


@media screen and (max-width:1080px) {
  footer {
    padding: 16px 0 20px;
  }
}
