/*========= reserve ===============*/
#reserve_btn a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #C63C00;
  border-radius: 50%;
  width: 90px;
  height: 77px;
  padding: 13px 0 0 0;
  color: #fff;
  text-align: center;
  text-transform: uppercase;
  text-decoration: none;
  font-family: mizolet, sans-serif;
  font-size: 1.2rem;
  line-height: 1.3;
  letter-spacing: 0;
  transition: all 0.3s;
}
#reserve_btn a::before {
  content: "";
  position: absolute;
  top: 4px; /* 内側にオフセット */
  left: 4px;
  right: 4px;
  bottom: 4px;
  border: 1px dashed #fff;
  border-radius: 50%;
  pointer-events: none;
  animation: rotateBorder 15s linear infinite;
}
#reserve_btn a::after {
  position: absolute;
  bottom: 7px;
  left: 50%;
  transform: translate(-50%, 0%);
  content: '\f078';
  font-family: FontAwesome;
  font-weight: 400;
  color: #fff;
}
#reserve_btn a:hover {
  background: #298600;
}
#reserve_btn a:hover img {
  opacity: 1;
}
#reserve_btn img {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translate(-50%, 0%);
  width: 18px;
}
/*リンクを右下に固定*/
#reserve_btn {
  position: fixed;
  right: 10px;
  z-index: 99;
  /*はじめは非表示*/
  opacity: 0;
  transform: translateY(100px);
}
#reserve_btn.UpMove {
  animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
#reserve_btn.DownMove {
  animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 1;
    transform: translateY(100px);
  }
}
@media all and (min-width: 768px) {
  #reserve_btn a {
    width: 120px;
    height: 103px;
    padding: 17px 0 0 0;
    font-size: 1.5rem;
    line-height: 1.3;
  }
  #reserve_btn img {
    position: absolute;
    top: 15px;
    width: 25px;
  }
  #reserve_btn a::after {
    bottom: 10px;
    font-size: 1.3rem;
  }
}
/* --------------------------------------------- */
/* ▼モバイルファースト (全環境に共通のデザイン) */
/* --------------------------------------------- */
.mv {
  position: relative;
  width: 100%;
}
.mv_slider {
  overflow: hidden;
  position: relative;
  z-index: 1;
  height: 450px;
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0em auto 0em;
  justify-content: center;
}
.mv_slider::before {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: '';
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 1)100%);
  opacity: 0.8;
  mix-blend-mode: multiply;
  z-index: 3;
}
.slider-left, .slider-center, .slider-right {
  position: relative;
  height: 450px;
  width: calc(100% / 3);
}
.slider-left::before, .slider-center::before, .slider-right::before {
  position: absolute;
  top: 90px;
  left: 0;
  color: #fff;
  font-family: mizolet, sans-serif;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  text-align: left;
  content: '体験';
  font-size: 3.5rem;
  z-index: 10;
}
.slider-center::before {
  top: 325px;
  content: '食';
  transform: scaleY(-1);
}
.slider-right::before {
  content: '人';
}
/* 真ん中のスライダーを上下反転表示 */
.slider-center {
  transform: scaleY(-1);
}
/* 画像や内容を再反転して正しく見せる */
.slider-center .slick-slide {
  transform: scaleY(-1);
}
/*　背景画像設定　*/
.slider-item01 {
  background: url("/img/tour/mv01a_sp.webp");
}
.slider-item02 {
  background: url("/img/tour/mv02a_sp.webp");
}
.slider-item03 {
  background: url("/img/tour/mv03a_sp.webp");
}
.slider-item04 {
  background: url("/img/tour/mv01b_sp.webp");
}
.slider-item05 {
  background: url("/img/tour/mv02b_sp.webp");
}
.slider-item06 {
  background: url("/img/tour/mv03b_sp.webp");
}
.slider-item07 {
  background: url("/img/tour/mv01c_sp.webp");
}
.slider-item08 {
  background: url("/img/tour/mv02c_sp.webp");
}
.slider-item09 {
  background: url("/img/tour/mv03c_sp.webp");
}
.mv_slider .slider-item {
  width: calc(100% / 3);
  height: 450px;
  background-repeat: no-repeat; /*背景画像をリピートしない*/
  background-position: center; /*背景画像の位置を中央に*/
  background-size: cover; /*背景画像が.slider-item全体を覆い表示*/
}
.mv_slider .slick-slide {
  min-height: 450px !important;
}
.mv_txt {
  z-index: 10;
  position: absolute;
  bottom: -3px;
  left: 4%;
  width: 92%;
  color: #fff;
  text-align: left;
  font-family: mizolet, sans-serif;
}
.mv_txt p {
  font-size: 1.5rem;
}
.mv_txt p span {
  font-size: 2rem;
  display: block;
}
.mv_txt div {
  margin: -0.1em auto 0;
  font-family: ivymode, sans-serif;
  color: #C63C00;
  line-height: 1.1;
  font-size: 11vw;
}
.mv_roop {
  border-top: 2px solid #298600;
  border-bottom: 2px solid #298600;
  padding: 10px 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  overflow: hidden;
}
.mv_roop_inner {
  display: flex;
  animation: loop-text 20s linear infinite;
}
.double-content {
  display: inline-block;
  font-size: 1.4rem;
  line-height: 26px;
  color: #C63C00;
  font-family: mizolet, sans-serif;
  white-space: nowrap;
  margin: 0 5px;
}
.double-content img {
  display: inline-block;
  width: 40px;
  margin: 0 5px 0 15px;
}
@keyframes loop-text {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}
/* concept */
.concept01 {
  text-align: left;
}
.concept01 > img {
  width: 90%;
  margin: 0 auto 0 0;
}
.concept01 > div {
  margin: 1em auto 0;
}
.concept01 > div h2 {
  position: relative;
  z-index: 1;
  font-family: mizolet, sans-serif;
  font-weight: 400;
  color: #C63C00;
  font-size: 4rem;
  line-height: 1.3;
  width: 80%;
  margin: auto;
}
.concept01 > div p {
  font-family: ivymode, sans-serif;
  width: 80%;
  margin: auto;
  color: #298600;
  font-size: 1.4rem;
}
.concept01 > div img {
  margin: -3em auto 0;
}
.concept02 {
  margin: 1em auto 0;
}
.concept02 img {
  width: 90%;
  margin: 0 0 0 10%;
}
.concept02 > div {
  width: 80%;
  margin: 1em auto 0;
  text-align: left;
}
.concept02 > div h3 {
  font-family: mizolet, sans-serif;
  font-weight: 400;
  margin: 0 auto 0.5em;
  font-size: 2.2rem;
}
.concept03 {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.concept03 > p {
  position: relative;
  z-index: 2;
  font-family: ivymode, sans-serif;
  color: #fff;
  font-size: 18vw;
}
.concept03 > p.fade.on {
  filter: blur(1px);
  opacity: 0.6;
}
.concept03 > picture {
  position: relative;
  z-index: 3;
  width: 80%;
  margin: -3em auto 0;
  display: block;
}
.concept03_img {
  position: absolute;
}
.concept03_img.ap01 {
  top: 110px;
  left: 5%;
  width: 16%;
  z-index: 1;
}
.concept03_img.ap02 {
  top: 70px;
  left: 15%;
  width: 13%;
}
.concept03_img.ap03 {
  top: 110px;
  right: 7%;
  width: 20%;
  z-index: 1;
}
.concept03_img.ap04 {
  top: 190px;
  right: -2%;
  width: 13%;
}
/* schedule */
.schedule_bg {
  padding: 2em 0 3em;
  background: #C63C00;
  border-radius: 30px 30px 0 0;
}
.schedule_bg h2 {
  color: #fff;
  font-weight: 400;
  font-family: ivymode, sans-serif;
  font-size: 2.5rem;
}
.schedule_bg h3 {
  color: #fff;
  font-weight: 400;
  display: inline-block;
  position: relative;
  font-size: 1.5rem;
}
.schedule_bg h3::before, .schedule_bg h3::after {
  position: absolute;
  top: 50%;
  width: 30px;
  height: 1px;
  content: '';
  background: #fff;
}
.schedule_bg h3::before {
  right: calc(100% + 10px);
}
.schedule_bg h3::after {
  left: calc(100% + 10px);
}
.schedule_bg > p {
  font-size: 1.2rem;
  color: #fff;
  margin: 1.5em auto 0;
}
.schedule {
  width: 90%;
  margin: 2em auto 0;
}
.schedule > li {
  margin: 1em auto 0;
  background: #fff;
  border-radius: 15px;
  padding: 20px;
}
.schedule > li > p {
  font-family: ivymode, sans-serif;
  font-size: 1.7rem;
  color: #C63C00;
}
.schedule > li > ul {}
.schedule > li > ul li {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  justify-content: space-between;
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 1px solid #C63C00;
  font-weight: 500;
}
.schedule > li > ul li dt {
  width: 70px;
  background: #7E7E7E;
  border-radius: 30px;
  padding: 3px 0;
  color: #fff;
  font-size: 1.2rem;
}
.schedule > li > ul li dd {
  text-align: left;
  width: calc(100% - 80px);
  padding: 3px 0 0;
}
.schedule > li > ul li dt.green {
  background: #298600;
}
.schedule > li > ul li dt.red {
  background: #C63C00;
}
/* link */
.link {
  width: 80%;
  margin: auto;
}
.link li {
  position: relative;
  margin: 3.3em auto 0;
  border-radius: 10px;
  background: #298600;
  color: #fff;
  padding: 0 0 20px;
}
.link li div {
  position: absolute;
  bottom: 98%;
  left: 0;
  font-family: mizolet, sans-serif;
  text-align: left;
  color: #298600;
  font-size: 4rem;
  line-height: 1;
}
.link li:nth-child(2) {
  background: #C63C00;
}
.link li:nth-child(3) {
  background: #008EB9;
}
.link li:nth-child(2) div {
  color: #C63C00;
}
.link li:nth-child(3) div {
  color: #008EB9;
}
.link li img {
  border-radius: 10px;
}
.link li p {
  font-family: ivymode, sans-serif;
  padding: 15px 0 5px;
  font-size: 2rem;
}
.link li a {
  display: inline-block;
  width: 220px;
  background: #fff;
  margin: auto;
  position: relative;
  border-radius: 50px;
  padding: 6px 0;
  font-weight: 500;
  color: #298600;
  transition: ease .2s;
}
.link li a:hover {
  background: #F2EEE7;
}
.link li a::before {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translate(0%, -50%);
  content: '\f078';
  font-family: FontAwesome;
  font-weight: 400;
  color: #298600;
  font-size: 1.2rem;
  transition: ease .2s;
}
.link li a:hover::before {
  top: 55%;
}
.link li:nth-child(2) a, .link li:nth-child(2) a::before {
  color: #C63C00;
}
.link li:nth-child(3) a, .link li:nth-child(3) a::before {
  color: #008EB9;
}
/* contents */
.highlights_bg {
  position: relative;
  padding: 3em 0;
  border-top: 1px solid #298600;
}
.highlights_bg::before {
  position: absolute;
  top: 0;
  left: 5%;
  content: 'Highlights';
  font-family: ivymode, sans-serif;
  background: #298600;
  border-radius: 0 0 5px 5px;
  color: #fff;
  padding: 2px 10px;
}
.cuisine_bg {
  position: relative;
  padding: 3em 0;
  border-top: 1px solid #C63C00;
}
.cuisine_bg::before {
  position: absolute;
  top: 0;
  left: 5%;
  content: 'Cuisine';
  font-family: ivymode, sans-serif;
  background: #C63C00;
  border-radius: 0 0 5px 5px;
  color: #fff;
  padding: 2px 10px;
}
.person_bg {
  position: relative;
  padding: 3em 0;
  border-top: 1px solid #008EB9;
}
.person_bg::before {
  position: absolute;
  top: 0;
  left: 5%;
  content: 'Person';
  font-family: ivymode, sans-serif;
  background: #008EB9;
  border-radius: 0 0 5px 5px;
  color: #fff;
  padding: 2px 10px;
}
.detail_ttl {
  position: relative;
  font-family: mizolet, sans-serif;
  padding: 1em 0 0;
}
.detail_ttl_img {
  position: relative;
  z-index: 1;
  width: 100px;
  margin: auto;
}
.detail_ttl_img div {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(0deg);
  width: calc(100% + 30px);
  animation: none;
}
.detail_ttl h2 {
  position: relative;
  z-index: 1;
  font-weight: 400;
  margin: 0.5em auto 0;
  color: #298600;
  font-size: 4rem;
  line-height: 1.3;
}
.detail_ttl p {
  position: relative;
  display: inline-block;
  font-size: 1.6rem;
}
.detail_ttl p::before, .detail_ttl p::after {
  position: absolute;
  bottom: 3px;
  left: -20px;
  content: '';
  display: block;
  width: 20px;
  height: 20px;
  background-image: url("/img/tour/highlights_fukidashi.webp");
  background-size: contain;
  background-repeat: no-repeat;
}
.detail_ttl p::after {
  left: auto;
  right: -20px;
  transform: scale(-1, 1);
}
.detail_ttl_bg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  font-family: ivymode, sans-serif;
  color: #fff;
  font-size: 12vw;
}
.detail_ttl_bg.fade.on {
  opacity: 0.6;
  filter: blur(1px);
}
.detail_ttl.cuisine h2 {
  color: #C63C00;
}
.detail_ttl.cuisine p::before, .detail_ttl.cuisine p::after {
  background-image: url("/img/tour/cuisine_fukidashi.webp");
}
.detail_ttl.person h2 {
  color: #008EB9;
}
.detail_ttl.person p::before, .detail_ttl.person p::after {
  background-image: url("/img/tour/person_fukidashi.webp");
}
.detail_list {}
.detail_list > li {
  margin: 4em auto 0;
}
.detail_list_ttl {
  width: 90%;
  margin: auto;
  position: relative;
  font-family: mizolet, sans-serif;
}
.detail_list_ttl::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 40%;
  content: '';
  border-radius: 10px 10px 0 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1)100%);
  opacity: 0.6;
  mix-blend-mode: multiply;
}
.detail_list_ttl img {
  border-radius: 10px;
  height: 260px;
  object-fit: cover;
}
.detail_list_ttl_tag {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 10px;
  display: inline-block;
  background: #298600;
  color: #fff;
  width: 40px;
  padding: 8px 0;
  border-radius: 0 0 5px 5px;
}
.detail_list_ttl_tag span {
  display: block;
  font-family: ivymode, sans-serif;
  font-size: 2.8rem;
  line-height: 1;
}
.detail_list_ttl h3 {
  font-weight: 400;
  position: absolute;
  text-align: left;
  top: 15px;
  left: 60px;
  color: #fff;
  font-size: 3rem;
  line-height: 1.2;
}
.detail_list_ttl h3 span {
  display: inline-block;
}
.detail_list_ttl_in {
  position: absolute;
  bottom: 0;
  right: 10px;
  width: 160px;
  padding: 10px 15px;
  background: #298600;
  color: #fff;
  border-radius: 10px 10px 0 0;
  text-align: left;
}
.detail_list_ttl_in div {
  border-bottom: 1px solid #fff;
  line-height: 1.4;
  padding: 0 0 5px;
  margin: 0 auto 8px;
}
.detail_list_ttl_in div span {
  display: block;
  font-size: 2rem;
}
.detail_list_ttl_in p {}
.detail_list_ttl_in p span {
  display: inline-block;
  background: #fff;
  color: #298600;
  padding: 1px 8px;
  margin: 0 8px 0 0;
  border-radius: 20px;
  font-size: 1.2rem;
}
.detail_list_ttl.cuisine .detail_list_ttl_tag {
  background: #C63C00;
}
.detail_list_ttl.cuisine .detail_list_ttl_in {
  background: #C63C00;
}
.detail_list_ttl.cuisine .detail_list_ttl_in p {
  font-family: ivymode, sans-serif;
}
.detail_list_ttl_tag.person {
  background: #008EB9;
}
.detail_txt {
  margin: 1.5em auto 0;
}
.detail_txt > img {
  width: 90%;
  margin: 0 10% 0 0;
  border-radius: 0 10px 10px 0;
}
.detail_txt > div {
  width: 80%;
  margin: 1em auto 0;
  text-align: left;
}
.detail_txt > div div {
  font-family: mizolet, sans-serif;
  color: #298600;
  font-size: 2rem;
  line-height: 1.4;
  margin: 0 auto 0.3em;
}
.detail_txt > div div span {
  display: block;
  font-size: 1.5rem;
  margin: 0 auto 0.2em;
}
.detail_txt > div p {}
.detail_txt.cuisine > div div {
  color: #C63C00;
}
.detail_guide_wrap {
  width: 80%;
  margin: 2em auto 0;
}
.detail_guide_circle {
  position: relative;
  display: inline-block;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: #008EB9;
  color: #fff;
}
.detail_guide_circle span {
  font-family: ivymode, sans-serif;
  line-height: 1.3;
  font-size: 1.4rem;
  position: absolute;
  display: inline-block;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 90px;
  text-align: center;
}
.detail_guide_circle::before {
  content: "";
  position: absolute;
  top: 4px; /* 内側にオフセット */
  left: 4px;
  right: 4px;
  bottom: 4px;
  border: 1px dashed #fff;
  border-radius: 50%;
  pointer-events: none;
  animation: rotateBorder 15s linear infinite;
}
/* 回転アニメーション */
@keyframes rotateBorder {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.detail_guide {
  position: relative;
  margin: 0.5em auto 0;
}
.detail_guide::before {
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 100%;
  background: #fff;
  border-radius: 10px;
  content: '';
}
.detail_guide a {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  justify-content: space-between;
  align-items: center;
}
.detail_guide a > img {
  border-radius: 10px;
  width: 50%;
  height: 200px;
  object-fit: cover;
}
.detail_guide a > div {
  position: relative;
  width: 50%;
  text-align: left;
  box-sizing: border-box;
  padding: 0 15px;
  font-family: mizolet, sans-serif;
}
.detail_guide a > div::before {
  position: absolute;
  z-index: 1;
  text-align: center;
  bottom: -40px;
  left: 50%;
  transform: translate(-50%, 0%);
  width: 30px;
  height: 30px;
  line-height: 30px;
  border-radius: 50%;
  content: '\f063';
  font-family: FontAwesome;
  font-weight: 400;
  background: #008EB9;
  color: #fff;
  transition: all .3s;
}
.detail_guide a:hover > div::before {
  bottom: -45px;
}
.detail_guide.nolink a > div::before {
  display: none;
}
.detail_guide a > div div {
  position: relative;
  line-height: 1.3;
  padding: 0 0 10px;
  margin: 0 auto 10px;
}
.detail_guide a > div div::before {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 30px;
  height: 1px;
  background: #008EB9;
  content: '';
}
.detail_guide a > div p {
  font-size: 1.7rem;
}
.detail_guide a > div p span {
  display: block;
  font-family: ivymode, sans-serif;
  color: #008EB9;
  font-size: 1.2rem;
}
.detail_guide:hover img {
  opacity: 1 !important;
}
.detail_hukidashi {
  position: relative;
  display: block;
  margin: 1.5em auto 1.5rem;
  padding: 15px;
  width: calc(90% - 30px);
  color: #298600;
  font-family: mizolet, sans-serif;
  background: #fff;
  border: 1px solid #298600;
  border-radius: 100px;
}
.detail_hukidashi::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -15px;
  border: 15px solid transparent;
  border-top: 15px solid #fff;
  z-index: 1;
}
.detail_hukidashi::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -16px;
  border: 16px solid transparent;
  border-top: 16px solid #298600;
}
.detail_hukidashi > div {
  line-height: 1.4;
}
.detail_hukidashi > div p {
  font-size: 1.5rem;
  margin: 0 auto 0.2em;
}
.detail_hukidashi > div p span {
  display: inline-block;
}
.detail_hukidashi > div div {
  font-size: 1.8rem;
  letter-spacing: 2px;
}
.detail_hukidashi > div div span {
  display: inline-block;
}
.detail_pc {
  display: none;
}
.cuisine_note {
  width: 90%;
  margin: 1.5em auto 0;
  font-size: 1.2rem;
}
.cuisine_note span {
  display: inline-block;
}
/* sp_slider */
.sp_slider {
  margin: 2em auto 0;
}
.sp_slider .slick-slide {
  width: 280px;
  margin: 0 10px;
}
/*戻る、次へ矢印の位置*/
.sp_slider .slick-prev, .sp_slider .slick-next {
  position: absolute;
  cursor: pointer;
  outline: none;
  content: '';
  top: calc(100% - 30px);
  display: block;
  width: 35px;
  height: 35px;
  background-image: url("/img/common/arrow_slide_green.webp");
  background-size: contain;
  background-repeat: no-repeat;
}
.sp_slider .slick-prev {
  left: calc(50% - 100px);
  transform: scale(-1, 1)
}
.sp_slider .slick-next {
  right: calc(50% - 100px);
  ;
}
.sp_slider.cuisine .slick-prev, .sp_slider.cuisine .slick-next {
  background-image: url("/img/common/arrow_slide_red.webp");
}
/*ドットナビゲーションの設定*/
.sp_slider .slick-dots {
  text-align: center;
  margin: 20px 0 0 0;
}
.sp_slider .slick-dots li {
  display: inline-block;
  margin: 0 3px;
}
.sp_slider .slick-dots button {
  color: transparent;
  outline: none;
  width: 8px;
  height: 8px;
  display: block;
  border-radius: 50%;
  border: 1px solid #000;
  background: #F2EEE7;
}
.sp_slider .slick-dots .slick-active button {
  background: #298600;
}
.sp_slider.cuisine .slick-dots .slick-active button {
  background: #C63C00;
}
.sp_slider_in {
  text-align: left;
}
.sp_slider_in img {
  border-radius: 10px;
}
.sp_slider_in div {
  margin: 1em auto 0.5em;
  font-size: 1.5rem;
}
.sp_slider_in div span {
  display: inline-block;
  background: #298600;
  color: #fff;
  padding: 1px 5px;
  border-radius: 3px;
  margin: 0 auto 3px;
}
.sp_slider_in p {
  font-size: 1.2rem;
}
.sp_slider.cuisine .sp_slider_in div span {
  background: #C63C00;
}
/* person */
.person_list {}
.person_list > li {
  margin: 3em auto 0;
}
.person_top {
  position: relative;
  width: 90%;
  margin: auto;
}
.person_top > img {
  border-radius: 10px;
}
.person_top_in {
  position: relative;
  background: #008EB9;
  color: #fff;
  border-radius: 10px;
  padding: 20px;
  text-align: left;
}
.person_top_in h3 {
  font-family: mizolet, sans-serif;
  font-weight: 400;
  font-size: 3rem;
  line-height: 1;
  border-bottom: 0.5px solid #fff;
  padding: 0 0 10px;
  margin: 0 auto 10px;
}
.person_top_in h3 span {
  display: block;
  font-family: ivymode, sans-serif;
  font-size: 1.5rem;
  margin: 0.3em auto 0;
}
.person_top_in p {}
.person_top_in p span {
  display: block;
  font-size: 2.2rem;
}
.person_top_in div {
  position: absolute;
  bottom: 24px;
  right: 20px;
  font-family: ivymode, sans-serif;
  text-align: right;
  font-size: 1.5rem;
  line-height: 1.3;
}
.person_contents {
  width: 80%;
  margin: 2.5em auto 0;
}
.person_img {
  position: relative;
}
.person_img img {
  border-radius: 10px;
  height: 250px;
  object-fit: cover;
}
.person_img div {
  position: absolute;
  top: -30px;
  left: -30px;
  display: inline-block;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: #F2EEE7;
  color: #008EB9;
}
.person_img div span {
  font-family: ivymode, sans-serif;
  line-height: 1.3;
  font-size: 1.4rem;
  position: absolute;
  display: inline-block;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 90px;
  text-align: center;
}
.person_img div::before {
  content: "";
  position: absolute;
  top: 4px; /* 内側にオフセット */
  left: 4px;
  right: 4px;
  bottom: 4px;
  border: 1px dashed #008EB9;
  border-radius: 50%;
  pointer-events: none;
  animation: rotateBorder 15s linear infinite;
}
.person_txt {
  margin: 1em auto 0;
  text-align: left;
}
.person_txt p {
  margin: 0 auto 1em;
}
.person_txt p span {
  display: block;
  color: #008EB9;
  margin: 0 auto 0.3em;
  font-size: 2rem;
  font-family: mizolet, sans-serif;
}
.person_txt img {}
.person_txt div {
  margin: -2em auto 0;
}
.person_txt div span {
  display: inline-block;
  background: #008EB9;
  color: #fff;
  padding: 1px 5px;
  border-radius: 3px;
  margin: 0 auto 3px;
  font-size: 1.5rem;
}
.reservation {
  padding: 0 0 4em;
}
.reservation > div {
  font-family: ivymode, sans-serif;
  color: #fff;
  font-size: 15vw;
  line-height: 1;
}
.reservation > div.fade.on {
  opacity: 0.6;
  filter: blur(1px);
}
.reservation h2 {
  position: relative;
  z-index: 1;
  margin: -1em auto 0;
  font-weight: 400;
  color: #C63C00;
  font-size: 1.8rem;
  font-family: mizolet, sans-serif;
}
.reservation ul {
  width: 320px;
  margin: auto;
}
.reservation ul li {
  margin: 1em auto 0;
}
.reservation ul li a {
  position: relative;
  border-radius: 10px;
  background: #C63C00;
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0em auto 0em;
  justify-content: flex-start;
  align-items: center;
  text-align: left;
  padding: 15px;
}
.reservation ul li a img {
  width: 70px;
  margin: 0 10px 0 0;
}
.reservation ul li a p {
  font-family: mizolet, sans-serif;
  line-height: 1.4;
}
.reservation ul li a p span {
  display: block;
  font-size: 1.6rem;
  margin: 0 auto 0.2em;
}
.reservation ul li a::after {
  position: absolute;
  top: 50%;
  right: 15px;
  transform: translate(0%, -50%);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  line-height: 30px;
  text-align: center;
  content: '\f061';
  font-family: FontAwesome;
  font-weight: 400;
  color: #C63C00;
  background: #F2EEE7;
  font-size: 1.3rem;
  transition: all .3s;
}
.reservation ul li a:hover::after {
  right: 10px;
}
.hotel_bg {
  width: 90%;
  margin: 0 auto 4em;
  box-sizing: border-box;
  padding: 20px 20px 30px;
  background: #fff;
  border-radius: 10px;
}
.hotel_bg h2 {
  font-family: mizolet, sans-serif;
  font-weight: 400;
  font-size: 2.5rem;
  color: #C63C00;
  line-height: 1.2;
}
.hotel_bg h2 span {
  display: block;
  font-family: ivymode, sans-serif;
  font-size: 1.8rem;
}
.hotel_bg > p {
  margin: 0.8em auto 0;
  padding: 5px 0;
  border-top: 1px solid #C63C00;
  border-bottom: 1px solid #C63C00;
  font-weight: 500;
}
.hotel_bg > p span {
  display: inline-block;
}
.hotel {}
.hotel > li {
  margin: 2em auto 0;
}
.hotel_ttl {}
.hotel_ttl div {
  font-family: mizolet, sans-serif;
  font-weight: 400;
  font-size: 1.7rem;
  color: #C63C00;
}
.hotel_ttl div span {
  display: inline-block;
}
.hotel_ttl p {
  font-size: 1.2rem;
}
.hotel_ttl p span {
  display: inline-block;
}
.gallery {
  margin: 1em 0 5px 0;
}
.gallery img {
  border-radius: 10px;
}
.gallery li {
  list-style: none;
}
/*矢印の設定*/
/*戻る、次へ矢印の位置*/
.gallery .slick-prev, .gallery .slick-next {
  position: absolute;
  z-index: 3;
  cursor: pointer;
  outline: none;
  height: 25px;
  width: 25px;
  content: '';
  top: calc(50% - 12px);
  display: block;
  background-image: url("/img/common/arrow.webp");
  background-size: contain;
  background-repeat: no-repeat;
}
.gallery .slick-prev { /*戻る矢印の位置と形状*/
  left: -12px;
  transform: scale(-1, 1);
}
.gallery .slick-next { /*次へ矢印の位置と形状*/
  right: -12px;
}
/*選択するサムネイル画像の設定*/
.choice-btn li {
  cursor: pointer;
  outline: none;
  background: #fff;
  width: 25% !important;
  list-style: none;
}
.choice-btn li img {
  border-radius: 10px;
  width: 95%;
}
.choice-btn li.slick-current {
  display: none;
}
.choice-btn .slick-track {
  transform: unset !important; /*画面幅サイズ変更に伴うサムネイル固定*/
}
/* ------------------------------------ */
/* ▼PC用デザイン */
/* ------------------------------------ */
@media all and (min-width: 768px) {
  .mv_slider {
    height: 800px;
  }
  .slider-left, .slider-center, .slider-right {
    height: 800px;
  }
  .slider-left::before, .slider-center::before, .slider-right::before {
    top: 110px;
    font-size: 8rem;
  }
  .slider-center::before {
    top: 610px;
  }
  .slider-item01 {
    background: url("/img/tour/mv01a.webp");
  }
  .slider-item02 {
    background: url("/img/tour/mv02a.webp");
  }
  .slider-item03 {
    background: url("/img/tour/mv03a.webp");
  }
  .slider-item04 {
    background: url("/img/tour/mv01b.webp");
  }
  .slider-item05 {
    background: url("/img/tour/mv02b.webp");
  }
  .slider-item06 {
    background: url("/img/tour/mv03b.webp");
  }
  .slider-item07 {
    background: url("/img/tour/mv01c.webp");
  }
  .slider-item08 {
    background: url("/img/tour/mv02c.webp");
  }
  .slider-item09 {
    background: url("/img/tour/mv03c.webp");
  }
  .mv_slider .slider-item {
    height: 800px;
  }
  .mv_slider .slick-slide {
    min-height: 800px !important;
  }
  .mv_txt {
    bottom: 0px;
  }
  .mv_txt p {
    font-size: 2.3rem;
  }
  .mv_txt p span {
    font-size: 3.5rem;
    display: inline-block;
    margin: 0 0 0 10px;
  }
  .mv_txt div {
    margin: -0.2em auto 0;
    font-size: 11.5vw;
  }
  .mv_roop {
    padding: 15px 0;
  }
  .mv_roop_inner {
    animation: loop-text 25s linear infinite;
  }
  .double-content {
    font-size: 1.8rem;
    line-height: 40px;
    margin: 0 5px;
  }
  .double-content img {
    width: 60px;
    margin: 0 10px 0 25px;
  }
  /* concept */
  .concept01 {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0em auto 0em;
    justify-content: center;
    align-items: flex-start;
  }
  .concept01::before {
    position: absolute;
    content: '';
    bottom: -250px;
    left: 0px;
    display: block;
    width: 100px;
    height: 127px;
    background-image: url("/img/tour/concept03.webp");
    background-size: contain;
    background-repeat: no-repeat;
  }
  .concept01 > img {
    width: 50%;
    height: auto;
    margin: 0;
  }
  .concept01 > div {
    width: 50%;
    margin: 0;
  }
  .concept01 > div h2 {
    font-size: 6vw;
    width: 80%;
    margin: auto;
  }
  .concept01 > div p {
    font-size: 1.8rem;
  }
  .concept01 > div img {
    display: block;
    width: 80%;
    margin: -7em auto 0;
  }
  .concept02 {
    position: relative;
    width: 90%;
    max-width: 1200px;
    margin: -2em auto 0;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    justify-content: space-between;
    flex-direction: row-reverse;
  }
  .concept02 picture {
    width: 50%;
  }
  .concept02 img {
    width: 100%;
    margin: 0;
    padding: 5em 0 0;
  }
  .concept02 > div {
    width: 50%;
    margin: 0;
  }
  .concept02 > div h3 {
    width: 90%;
    margin: 0 auto 0.5em 10%;
    font-size: 3.5rem;
  }
  .concept02 > div p {
    line-height: 2;
    width: 75%;
    margin: 0 auto 0 10%;
  }
  .concept03 {
    position: relative;
  }
  .concept03 > p {
    font-size: 15vw;
  }
  .concept03 > p.fade.on {
    filter: blur(3px);
  }
  .concept03 > picture {
    width: 80%;
    max-width: 850px;
    margin: -8em auto 0;
  }
  .concept03_img.ap01 {
    top: 230px;
    left: calc(50% - 49%);
    width: 10%;
  }
  .concept03_img.ap02 {
    top: 115px;
    left: calc(50% - 43%);
    width: 8%;
  }
  .concept03_img.ap03 {
    top: 160px;
    right: calc(50% - 46%);
    width: 10%;
  }
  .concept03_img.ap04 {
    top: 290px;
    right: calc(50% - 52%);
    width: 8%;
  }
  /* schedule */
  .schedule_bg {
    padding: 4em 0 5em;
    border-radius: 50px 50px 0 0;
  }
  .schedule_bg h2 {
    font-size: 3.5rem;
  }
  .schedule_bg h3 {
    font-size: 2.2rem;
  }
  .schedule_bg h3::before, .schedule_bg h3::after {
    width: 60px;
  }
  .schedule_bg h3::before {
    right: calc(100% + 20px);
  }
  .schedule_bg h3::after {
    left: calc(100% + 20px);
  }
  .schedule_bg > p {
    font-size: 1.4rem;
    margin: 2em auto 0;
  }
  .schedule {
    max-width: 1200px;
    margin: 2em auto 0;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    justify-content: space-between;
  }
  .schedule > li {
    margin: 0 8px 0em;
    width: calc(100% / 2 - 16px);
    border-radius: 20px;
    padding: 30px 0 40px;
  }
  .schedule > li > p {
    font-size: 2.5rem;
  }
  .schedule > li > ul {
    width: 85%;
    margin: auto;
  }
  .schedule > li > ul li {
    padding: 14px 0;
  }
  .schedule > li > ul li dt {
    width: 80px;
    padding: 4px 0;
    font-size: 1.4rem;
  }
  .schedule > li > ul li dd {
    width: calc(100% - 95px);
    padding: 4px 0 0;
  }
  /* link */
  .link {
    width: 90%;
    max-width: 1200px;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 3em auto 2em;
    justify-content: space-between;
  }
  .link li {
    margin: 0 8px 0em;
    width: calc(100% / 3 - 16px);
    border-radius: 20px;
    padding: 0 0 25px;
  }
  .link li div {
    bottom: 98%;
    font-size: 6rem;
  }
  .link li img {
    border-radius: 20px;
  }
  .link li p {
    padding: 15px 0 10px;
    font-size: 3rem;
  }
  .link li a {
    width: 250px;
    padding: 8px 0;
  }
  .link li a::before {
    right: 15px;
  }
  /* contents */
  .highlights_bg {
    padding: 5em 0;
  }
  .highlights_bg::before {
    left: 3%;
    border-radius: 0 0 10px 10px;
    padding: 2px 15px;
    letter-spacing: 2px;
  }
  .cuisine_bg {
    padding: 5em 0;
  }
  .cuisine_bg::before {
    left: 3%;
    border-radius: 0 0 10px 10px;
    padding: 2px 15px;
    letter-spacing: 2px;
  }
  .person_bg {
    padding: 5em 0;
  }
  .person_bg::before {
    left: 3%;
    border-radius: 0 0 10px 10px;
    padding: 2px 15px;
    letter-spacing: 2px;
  }
  .detail_ttl {
    padding: 0;
  }
  .detail_ttl_img {
    width: 170px;
  }
  .detail_ttl_img div {
    width: calc(100% + 50px);
  }
  .detail_ttl h2 {
    margin: 0.3em auto 0;
    font-size: 9rem;
  }
  .detail_ttl p {
    font-size: 3.5rem;
    line-height: 1.2;
  }
  .detail_ttl p::before, .detail_ttl p::after {
    bottom: 5px;
    left: -30px;
    width: 30px;
    height: 30px;
  }
  .detail_ttl p::after {
    left: auto;
    right: -30px;
  }
  .detail_ttl_bg {
    font-size: 13vw;
  }
  .detail_ttl_bg.fade.on {
    filter: blur(3px);
  }
  .detail_list {}
  .detail_list > li {
    margin: 6em auto 0;
  }
  .detail_list_ttl {
    width: 90%;
  }
  .detail_list_ttl::before {
    height: 30%;
    border-radius: 20px 20px 0 0;
  }
  .detail_list_ttl img {
    border-radius: 20px;
    height: 500px;
  }
  .detail_list_ttl_tag {
    left: 40px;
    width: 80px;
    padding: 15px 0 10px;
    font-size: 2rem;
    line-height: 1.3;
  }
  .detail_list_ttl_tag span {
    font-size: 5rem;
  }
  .detail_list_ttl h3 {
    top: 20px;
    left: 140px;
    font-size: 6rem;
  }
  .detail_list_ttl_in {
    right: 40px;
    width: 280px;
    padding: 15px 25px;
    border-radius: 20px 20px 0 0;
  }
  .detail_list_ttl_in div {
    padding: 0 0 8px;
    margin: 0 auto 10px;
    font-size: 2.3rem;
  }
  .detail_list_ttl_in div span {
    font-size: 3.5rem;
  }
  .detail_list_ttl_in p {
    letter-spacing: 2px;
    font-size: 1.7rem;
  }
  .detail_list_ttl_in p span {
    padding: 1px 8px;
    font-size: 1.3rem;
  }
  .detail_txt {
    margin: 4em auto 0;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    justify-content: space-between;
    align-items: center;
  }
  .detail_txt > img {
    width: 50%;
    margin: 0;
    border-radius: 0 20px 20px 0;
    height: 500px;
    object-fit: cover;
  }
  .detail_txt > div {
    width: 36%;
    margin: 0;
    padding: 0 10% 0 4%;
  }
  .detail_txt > div div {
    font-size: 3.5rem;
    margin: 0 auto 0.3em;
    line-height: 1.3;
  }
  .detail_txt > div div span {
    font-size: 2.5rem;
  }
  .detail_txt > div p {
    line-height: 2;
  }
  .detail_guide_wrap {
    width: 90%;
    margin: 3em auto 0;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    justify-content: center;
    align-items: center;
  }
  .detail_guide_circle {
    width: 200px;
    height: 200px;
    margin: 0 30px 0 0;
  }
  .detail_guide_circle span {
    font-size: 2.5rem;
    letter-spacing: 2px;
    width: 200px;
  }
  .detail_guide_circle::before {
    top: 8px;
    left: 8px;
    right: 8px;
    bottom: 8px;
    animation: rotateBorder 30s linear infinite;
  }
  .detail_guide {
    width: 700px;
    margin: 0;
  }
  .detail_guide::before {
    width: 55%;
    border-radius: 20px;
  }
  .detail_guide a > img {
    border-radius: 20px;
    width: 45%;
    height: 240px;
  }
  .detail_guide a > div {
    width: 55%;
    padding: 0 30px;
  }
  .detail_guide a > div::before {
    bottom: auto;
    left: auto;
    top: 50%;
    right: 30px;
    transform: translate(0%, -50%);
    width: 50px;
    height: 50px;
    line-height: 50px;
  }
  .detail_guide a:hover > div::before {
    bottom: auto;
    top: 53%;
  }
  .detail_guide a > div div {
    font-size: 2rem;
    padding: 0 0 15px;
    margin: 0 auto 15px;
  }
  .detail_guide a > div div::before {
    width: 40px;
  }
  .detail_guide a > div p {
    font-size: 3rem;
    line-height: 1.3;
  }
  .detail_guide a > div p span {
    font-size: 1.6rem;
  }
  .detail_hukidashi {
    margin: 3em auto 5rem;
    padding: 45px 0px;
    max-width: 900px;
    border-radius: 100px;
  }
  .detail_hukidashi > div p {
    font-size: 2.5rem;
  }
  .detail_hukidashi > div div {
    font-size: 4.0rem;
  }
  .detail_pc {
    display: block;
    margin: 3em auto 0;
    width: 90%;
    max-width: 1200px;
  }
  .cuisine_note {
    width: 90%;
    margin: 3em auto 0;
    font-size: 1.4rem;
  }
  .sp_slider {
    display: none !important;
  }
  /* person */
  .person_list {}
  .person_list > li {
    margin: 6em auto 0;
  }
  .person_top {
    width: 90%;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0em auto 0em;
    justify-content: space-between;
  }
  .person_top > img {
    width: calc(100% - 400px);
    border-radius: 20px;
  }
  .person_top_in {
    position: relative;
    width: 400px;
    box-sizing: border-box;
    padding: 40px;
    background: none;
  }
  .person_top_in::before {
    position: absolute;
    top: 0;
    right: 0;
    width: 400px;
    height: 100%;
    border-radius: 20px;
    background: #008EB9;
    content: '';
  }
  .person_top_in h3 {
    position: relative;
    z-index: 1;
    font-size: 8rem;
    padding: 0 0 20px;
    margin: 0 auto 20px;
  }
  .person_top_in h3 span {
    font-size: 2rem;
    margin: 0.5em auto 0;
  }
  .person_top_in p {
    position: relative;
    z-index: 1;
    font-size: 1.8rem;
  }
  .person_top_in p span {
    display: block;
    font-size: 3rem;
  }
  .person_top_in div {
    bottom: 30px;
    right: 30px;
    font-size: 2.5rem;
  }
  .person_contents {
    width: 90%;
    max-width: 1100px;
    margin: 4em auto 0;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    justify-content: space-between;
  }
  .person_img {
    width: 50%;
  }
  .person_img img {
    border-radius: 20px;
    height: auto;
  }
  .person_img div {
    position: absolute;
    top: -30px;
    left: -30px;
    width: 140px;
    height: 140px;
    margin: 0 30px 0 0;
  }
  .person_img div span {
    font-size: 2rem;
    letter-spacing: 2px;
    width: 140px;
  }
  .person_img div::before {
    top: 8px;
    left: 8px;
    right: 8px;
    bottom: 8px;
    animation: rotateBorder 30s linear infinite;
  }
  .person_txt {
    margin: 0;
    width: 45%;
  }
  .person_txt p {
    margin: 0 auto 3em;
    line-height: 2;
  }
  .person_txt p span {
    font-size: 3rem;
    line-height: 1.5;
  }
  .person_txt img {
    width: 90%;
    margin: 0 auto 0 0;
  }
  .person_txt div {
    margin: -2em auto 0;
  }
  .person_txt div span {
    margin: 0 auto 5px;
    font-size: 2rem;
  }
  .reservation {
    padding: 3em 0 6em;
  }
  .reservation > div {
    font-size: 13vw;
  }
  .reservation h2 {
    margin: -1.5em auto 0;
    font-size: 3rem;
  }
  .reservation ul {
    width: 90%;
    max-width: 1200px;
    margin: 2em auto 0;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    justify-content: space-between;
  }
  .reservation ul li {
    margin: 0;
    width: 49%;
  }
  .reservation ul li a {
    border-radius: 20px;
    padding: 20px 30px;
  }
  .reservation ul li a img {
    width: 100px;
    margin: 0 20px 0 0;
  }
  .reservation ul li a p {
    font-size: 1.8rem;
  }
  .reservation ul li a p span {
    font-size: 2.5rem;
  }
  .reservation ul li a::after {
    right: 30px;
    width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 1.5rem;
  }
  .reservation ul li a:hover::after {
    right: 25px;
  }
	 .hotel_bg {
    max-width: 1300px;
    margin: 2em auto 5em;
    padding: 50px 30px;
    border-radius: 20px;
  }
  .hotel_bg h2 {
    font-size: 6rem;
  }
  .hotel_bg h2 span {
    font-size: 3rem;
  }
  .hotel_bg > p {
    display: inline-block;
    margin: 0.8em auto 0;
    padding: 5px 100px;
    font-size: 1.8rem;
    letter-spacing: 2px;
  }
  .hotel {
    max-width: 1200px;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 2em auto 0em;
    justify-content: space-between;
  }
  .hotel > li {
    margin: 0 30px 0em;
    width: calc(100% / 2 - 60px);
  }
  .hotel_ttl {}
  .hotel_ttl div {
    font-size: 2.2rem;
  }
  .hotel_ttl p {
    font-size: 1.6rem;
  }
  .gallery {
    margin: 1em 0 10px 0;
  }
  .gallery img {
    border-radius: 20px;
  }
  /*矢印の設定*/
  /*戻る、次へ矢印の位置*/
  .gallery .slick-prev, .gallery .slick-next {
    height: 30px;
    width: 30px;
    top: calc(50% - 15px);
  }
  .gallery .slick-prev {
    left: -15px;
  }
  .gallery .slick-next {
    right: -15px;
  }
  .choice-btn li img {
    border-radius: 15px;
  }
}