@charset "UTF-8";

/*----------------------------------------共通----------------------------------------*/
body {
  /******ゴシック******/
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN W3",
    "Arial", "Yu Gothic", "Meiryo", sans-serif;
  /* font-family: "游ゴシック体", "YuGothic", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif; */
  /******明朝体******/
  /* font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN W3", "Yu Mincho", "MS PMincho", serif; */
  /* font-family: "游明朝", "YuMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "MS PMincho", serif; */
  color: var(--font-color);
  font-size: var(--font-size);
  background: var(--page-color_light);
}

main {
  overflow: hidden;
}

.container {
  min-height: 100vh;
  position: relative;
  box-sizing: border-box;
}

.inner {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

.big_inner {
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
}

section {
  padding: var(--section-margin) var(--side-padding);
}

.youtube {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
  overflow: hidden;
  margin: 3% auto;
}

.youtube img {
  width: 100%;
}

.youtube iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

@media screen and (max-width: 768px) {}

/*----------------------------------------top----------------------------------------*/
header {
  --logo-width: 30%;
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 100;
  --hamburger-top: 0px;
  --hamburger-width: 80px;
  color: #fff;
}

header .logo {
  width: 30%;
  max-width: 200px;
  padding: 2em 0 0 2em;
}

header .logo img {
  width: 100%;
}

header .info {
  width: calc(100% - var(--logo-width));
  gap: 1em;
  padding: 0 1em 0 0;
}

/* 天気情報 */
header .info .weather_box {
  --num: 4;
  --gap: 1em;
  width: 240px;
  height: fit-content;
  gap: var(--gap);
  font-size: 1.4rem;
  padding: 0.5em;
  background: rgba(69, 203, 109, 0.50);
  position: relative;
  border-radius: 0.75em;
  margin: 24px 0 0;
}

header .info .weather_box::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 0.75em;
  pointer-events: none;
  z-index: -1;
}

header .info .weather_box .box {
  display: flex;
  flex-direction: column;
  width: calc(100% / var(--num) - var(--gap) * (var(--num) - 1) / var(--num));
  text-align: center;
  line-height: 1.5;
}

header .info .weather_box .box span {}

header .info .weather_box .box p {}

@media screen and (max-width: 1280px) {
  header .info .weather_box {
    margin: 6px 0 0;
  }
}

/* 言語切り替えボタン */
header .info .language_box {
  position: relative;
  --width: 80px;
  --radius: 0.5em;
  width: var(--width);
  height: var(--width);
  border-top: 0px solid #fff;
  border-left: 2px solid #fff;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  border-radius: 0 0 var(--radius) var(--radius);
  cursor: pointer;
  z-index: 1;
}

header .info .language_box:before {
  content: '';
  position: absolute;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(69, 203, 109, 0.5);
  border-radius: 0 0 var(--radius) var(--radius);
  transition: all 0.2s ease-in;
}

header .info .language_box:hover:before {
  top: 0;
}

header .info .language_box a {
  width: 100%;
  height: 100%;
  z-index: 2;
}

header .info .language_box a svg {
  width: 80%;
  fill: #fff;
  transition: all 0.1s ease-in;
}

header .info .language_box a.active svg {}

header .info .language_box a:hover svg {}

@media screen and (max-width: 1280px) {
  header .info .language_box {
    --width: 60px;
  }
}

/* ハンバーガーボタン */
#hamburger_box {
  position: relative;
  --width: 80px;
  --radius: 0.5em;
  width: var(--width);
  height: var(--width);
  border-radius: 0 0 var(--radius) var(--radius);
  cursor: pointer;
  z-index: 75;
}

/* #hamburger_box:before {
  content: '';
  position: absolute;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(69, 203, 109, 0.5);
  border-radius: 0 0 var(--radius) var(--radius);
  transition: all 0.2s ease-in;
  z-index: 1;
}

#hamburger_box:hover:before {
  top: 0;
} */

#hamburger_box:after {
  content: '';
  position: absolute;
  top: 0%;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(69, 203, 109, 1);
  border-radius: 0 0 var(--radius) var(--radius);
  transition: all 0.2s ease-in;
}

/* #hamburger_box:hover:after {
  top: -100%;
} */

/* SVGアニメーション */
#hamburger_box svg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60%;
  height: 60%;
  z-index: 2;
}

#hamburger_box svg:first-child {
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
}

#hamburger_box svg:last-child {
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

#hamburger_box.active svg:first-child {
  opacity: 0;
}

#hamburger_box.active svg:last-child {
  opacity: 1;
}

/* SVGパスアニメーション */
#hamburger_box svg path {
  transition: d 0.3s ease-in-out;
}

/* ハンバーガーメニューの3本線からXへのアニメーション */
@keyframes hamburgerToX {
  0% {
    d: path("M43.99 9.82c-.27 0-.53-.07-.76-.21l-9.99-5.94L21.89 8.2l-10-4.55-9.26 4.28a1.499 1.499 0 0 1-1.26-2.72L11.88.35l10.08 4.59L33.5.33l11.26 6.7c.71.42.95 1.34.52 2.06-.27.45-.76.73-1.29.73ZM43.99 19.72c-.27 0-.53-.07-.76-.21l-9.99-5.94-11.35 4.53-10-4.55-9.26 4.28a1.499 1.499 0 0 1-1.26-2.72l10.51-4.86 10.08 4.59 11.53-4.61 11.26 6.7c.71.42.95 1.34.52 2.06-.27.45-.76.73-1.29.73ZM43.99 29.67c-.27 0-.53-.07-.76-.21l-9.99-5.94-11.35 4.53-10-4.55-9.26 4.28a1.499 1.499 0 0 1-1.26-2.72l10.51-4.86 10.08 4.59 11.53-4.61 11.26 6.7c.71.42.95 1.34.52 2.06-.27.45-.76.73-1.29.73Z");
  }

  100% {
    d: path("M2 20.2c.3 0 .5 0 .8.2l10 5.9 11.4-4.5 10 4.5 9.3-4.3c.8-.3 1.6 0 2 .7.3.8 0 1.6-.7 2l-10.5 4.9L24.2 25l-11.5 4.6L1.2 23c-.7-.4-1-1.3-.5-2.1.3-.4.8-.7 1.3-.7ZM2 10.3c.3 0 .5 0 .8.2l10 5.9 11.4-4.5 10 4.6 9.3-4.3c.8-.4 1.6 0 2 .7.3.8 0 1.6-.7 2l-10.5 4.9-10.1-4.6-11.5 4.6-11.5-6.7c-.7-.4-1-1.3-.5-2.1.3-.5.8-.7 1.3-.7ZM2 .3c.3 0 .5 0 .8.2l10 5.9 11.3-4.5 10 4.6 9.3-4.3c.8-.4 1.6 0 2 .7.3.8 0 1.6-.7 2L34.2 9.8 24.1 5.2 12.6 9.8 1.2 3.1C.5 2.7.2 1.8.7 1 1 .5 1.5.3 2 .3Z");
  }
}

#hamburger_box.active svg:first-child path {
  animation: hamburgerToX 0.3s ease-in-out forwards;
}

@media screen and (max-width: 1280px) {
  #hamburger_box {
    position: relative;
    --width: 60px;
  }
}

/* nav */
#nav {
  position: fixed;
  width: 320px;
  right: -320px;
  height: 100%;
  font-weight: 600;
  padding: var(--hamburger-top) 2em 0;
  background: #45CB6E;
  z-index: 50;
  transition: all 0.2s ease-in;
}

#nav.active {
  right: 0%;
}

#nav ul {
  width: 100%;
  margin: 0;
}

#nav>ul {
  margin: 70px 0 0;
}

#nav ul li:not(:last-child) {
  margin: 0 0 1.5em;
}

#nav ul li.reserve {}

#nav ul li.reserve a {
  position: relative;
  display: inline-block;
  width: auto;
  color: #957BDD;
  padding: 1em 3em 0.8em 1em;
}

#nav ul li.reserve a:before {
  content: '';
  position: absolute;
  top: 0;
  left: -2em;
  width: calc(100% + 4em);
  height: 100%;
  border-radius: 0 9em 9em 0;
  background: #fff;
  z-index: -1;
}

#nav ul li.dot {
  width: 200px;
}

#nav ul li.text {}

#nav ul li a {
  color: #fff;
  padding: 0.05em 0 0;
}

#nav ul li.text a {
  position: relative;
  display: inline-block;
  padding: 0 0.5em;
  padding: 0.2em 0.5em 0.3em;
}

#nav ul li.text a:before,
#nav ul li.text a:after {
  content: '―';
  position: absolute;
  top: 50%;
  -ms-transform: translate(0%, -50%);
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
  transition: all 0.2s ease-in;
}

#nav ul li.text a:before {
  right: 100%;
}

#nav ul li.text a:after {
  left: 100%;
}

#nav ul li.text a:hover:before {
  right: 105%;
}

#nav ul li.text a:hover:after {
  left: 105%;
}

#nav ul.dot {
  font-size: 1.5em;
  max-width: 30vh;
  gap: 1em;
}

#nav ul.dot li {
  --dot-w: 0.8em;
  --dot-p: calc(var(--dot-w) * 1.3);
  position: relative;
  width: 45%;
  margin: 0;
}

#nav ul.dot li::before,
#nav ul.dot li::after {
  content: '';
  position: absolute;
  top: 50%;
  -ms-transform: translate(0%, -50%);
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
  border-radius: 9em;
}

#nav ul.dot li::before {
  width: var(--dot-w);
  height: var(--dot-w);
  left: 0;
  background: #fff;
}

#nav ul.dot li::after {
  width: calc(var(--dot-w) / 2);
  height: calc(var(--dot-w) / 2);
  left: calc((var(--dot-w) / 4));
}

#nav ul.dot li:nth-child(1):after {
  background: var(--onsen_deep);
}

#nav ul.dot li:nth-child(2):after {
  background: var(--stay_deep);
}

#nav ul.dot li:nth-child(3):after {
  background: var(--eat_deep);
}

#nav ul.dot li:nth-child(4):after {
  background: var(--activity_deep);
}

#nav ul.dot li a {
  display: block;
  text-indent: var(--dot-p);
}

@media screen and (max-width: 768px) {
  #nav ul.dot li {
    width: 90px;
  }

  #nav>ul {
    margin: 0;
  }

  #nav ul li {
    margin: 0 0 1em;
  }

  #nav ul li.text {
    padding: 5px 0px;
  }
}

/* navボタン */
#place_btn {
  width: 60px;
  height: 100vh;
  right: 0;
  z-index: 100;
  pointer-events: none;
  transition: all 0.2s ease-in;
}

#place_btn.hide {
  right: -60px;
}

#place_btn ul {
  border-radius: 0.5em 0 0 0.5em;
  background: rgba(255, 255, 255, 0.5);
  overflow: hidden;
  pointer-events: all;
  box-shadow: 0px 0px 3px #fff;
}

#place_btn ul li {
  position: relative;
  width: 100%;
  height: 15vh;
  writing-mode: vertical-rl;
  text-orientation: upright;
  text-align: center;
  white-space: nowrap;
  font-weight: 600;
  color: var(--font-color);
  cursor: pointer;
  transition: all 0.2s ease-in;
}

#place_btn ul li:hover,
#place_btn ul li.now,
#place_btn ul li.active {
  color: #fff;
}


#place_btn ul li.active:nth-child(1),
#place_btn ul li.now:nth-child(1),
#place_btn ul li:nth-child(1):hover {
  background: var(--onsen_deep);
}

#place_btn ul li.active:nth-child(2),
#place_btn ul li.now:nth-child(2),
#place_btn ul li:nth-child(2):hover {
  background: var(--stay_deep);
}

#place_btn ul li.active:nth-child(3),
#place_btn ul li.now:nth-child(3),
#place_btn ul li:nth-child(3):hover {
  background: var(--eat_deep);
}

#place_btn ul li.active:nth-child(4),
#place_btn ul li.now:nth-child(4),
#place_btn ul li:nth-child(4):hover {
  background: var(--activity_deep);
}

#place_btn ul li span {
  position: absolute;
  top: 50%;
  left: 50%;
  -ms-transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
}

/* 施設リンクボタン */
#place_link {
  width: 100%;
  height: 100vh;
  left: 0;
  pointer-events: none;
  z-index: 75;
}

#place_link.active {
  pointer-events: all;
}

#place_link .curtain {
  bottom: 100%;
  width: calc(100% / 4);
  height: 100%;
  background: #2A2015;
  transition-duration: 0.2s;
  transition-delay: 0.8s;
  transition-timing-function: ease-in;
}

#place_link.active .curtain {
  bottom: 0;
}

#place_link .curtain1 {
  left: 0;
  transition-delay: 0.1s;
}

#place_link .curtain2 {
  left: calc(100% / 4);
  transition-delay: 0.2s;
}

#place_link .curtain3 {
  left: calc(100% / 4 * 2);
  transition-delay: 0.3s;
}

#place_link .curtain4 {
  left: calc(100% / 4 * 3);
  transition-delay: 0.4s;
}

#place_link .box {
  width: 80%;
  max-width: 700px;
  top: 48%;
  opacity: 0;
  pointer-events: none;
  z-index: 20;
  transition: all 0.2s ease-in;
}

#place_link.active .box {
  top: 50%;
}

#place_link .box.active {
  opacity: 1;
  pointer-events: all;
}

#place_link .box .place_logo {
  text-align: center;
  margin: 0 0 2em;
}

#place_link .box .single {
  --num: 2;
  --gap: 1em;
  gap: var(--gap);
}

#place_link .box .single a {
  width: calc(100% / var(--num) - var(--gap) * (var(--num) - 1) / var(--num));
  display: block;
  padding: 0.2em 0.5em 0.3em;
  color: #fff;
  font-weight: 600;
  text-align: center;
  border-radius: 0.2em;
}

#place_link .box1 .single a {
  background: var(--onsen_deep);
}

#place_link .box2 .single a {
  background: var(--stay_deep);
}

#place_link .box3 .single a {
  background: var(--eat_deep);
}

#place_link .box4 .single a {
  background: var(--activity_deep);
}

/*----------------------------------------swiper----------------------------------------*/
#topics .swiper-button-next,
#topics .swiper-button-prev {
  top: 40%;
  z-index: 5;
}

#topics .swiper-button-next,
#topics .swiper-rtl .swiper-button-prev {
  right: 0em;
  left: auto;
}

#topics .swiper-button-prev,
#topics .swiper-rtl .swiper-button-next {
  left: 0em;
  right: auto;
}

/* 前へ次への矢印カスタマイズ */
#topics .swiper-button-prev::after,
#topics .swiper-button-next::after {
  bottom: 0;
  content: "";
  height: 0;
  margin: auto;
  position: absolute;
  top: 0;
  width: 0;
}

/* 前への矢印カスタマイズ */
#topics .swiper-button-prev::after {
  border-bottom: 20px solid transparent;
  border-right: 20px solid #d3c1c1;
  border-top: 20px solid transparent;
}

/* 次への矢印カスタマイズ */
#topics .swiper-button-next::after {
  border-bottom: 20px solid transparent;
  border-left: 20px solid #d3c1c1;
  border-top: 20px solid transparent;
}

/* 画像サイズ調整 */
#topics .swiper-slide img {
  height: auto;
  width: 100%;
}

/*----------------------------------------footer----------------------------------------*/
footer {
  position: relative;
  color: #fff;
  background: var(--nav);
  text-align: center;
  padding: 3em 3%;
  box-shadow: 0px 0px 16px var(--nav);
}

footer img {
  width: 50%;
  max-width: 300px;
  margin: 0 0 3em;
}

footer .copyright {
  font-size: 1.4rem;
}
