@charset "UTF-8";
:root {
  --text: #2e2e2e;
  --main: #FF8000;
  --sub: #004A9D;
  --fsz: 13px;
  --en: "Jost", "Noto Sans JP", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  --ls: 0;
  --lh: 1.4;
  --headerHeight: 70px;
}
@media screen and (min-width: 375px) {
  :root {
    --fsz: 14px;
  }
}
@media screen and (min-width: 768px) {
  :root {
    --headerHeight: 80px;
    --fsz: 16px;
  }
}
@media screen and (min-width: 1200px) {
  :root {
    --headerHeight: 100px;
  }
}
:root {
  --speed: 0.3s;
  --txtColor: transparent;
  --boxColor: transparent;
  --bgColor: transparent;
  --tailColor: transparent;
}

* {
  letter-spacing: var(--ls);
  line-height: var(--lh);
}

html {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: #fff;
  color: var(--text);
  font-size: var(--fsz);
  font-family: "Noto Sans JP", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 400;
  overflow-x: hidden;
  -ms-overflow-style: none;
  scrollbar-width: none;
  position: relative;
}
body::-webkit-scrollbar {
  display: none;
}

section {
  width: 100%;
  margin: 0 auto;
  position: relative;
}

img {
  max-width: 100%;
  height: auto;
  border-style: none;
  object-fit: contain;
  vertical-align: bottom;
}

a {
  transition: var(--speed);
}

a.block, img.block {
  width: 100%;
  display: block;
}

strong {
  font-weight: 700;
}

.disp_none {
  display: none;
}
@media screen and (min-width: 576px) {
  .disp_xs {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .disp_tab, .disp_pc, .disp_notsp {
    display: none !important;
  }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .disp_sp, .disp_pc {
    display: none !important;
  }
}
@media screen and (max-width: 1023px) {
  .disp_lg {
    display: none !important;
  }
}
@media screen and (min-width: 1024px) {
  .disp_sp, .disp_tab, .disp_notpc {
    display: none !important;
  }
}
@media screen and (min-width: 1200px) {
  .disp_lg {
    display: none !important;
  }
}

.txt--main {
  color: var(--main);
}
.txt--sub {
  color: var(--sub);
}

.disabled {
  pointer-events: none;
}

.en {
  font-family: var(--en);
}

.fit {
  position: relative;
  overflow: hidden;
}
.fit__item {
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

.js-collapse {
  cursor: pointer;
}

.inner {
  width: calc(100% - 30px);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
@media screen and (min-width: 375px) {
  .inner {
    width: calc(100% - 40px);
  }
}
@media screen and (min-width: 768px) {
  .inner {
    max-width: 1200px;
  }
}

.ctaBtn {
  --speed: 0.5s;
  width: 100%;
  height: 3.0556em;
  padding: 0 1.6667em;
  color: #fff;
  font-size: 128.57%;
  font-weight: 700;
  --lh: 1;
  border-radius: 60px;
  border: 2px solid #FFF;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  grid-gap: 1.1111em;
  position: relative;
  overflow: hidden;
}
.ctaBtn::before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  transform: scale(0, 1);
  transform-origin: left;
  transition: var(--speed);
}
.ctaBtn::after {
  content: "";
  width: 1.3889em;
  height: 1.3889em;
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.ctaBtn:hover::before {
  transform: scale(1, 1);
}
@media screen and (min-width: 768px) {
  .ctaBtn {
    font-size: 112.5%;
  }
}
.ctaBtn > span {
  width: 100%;
  text-align: center;
  white-space: nowrap;
  display: block;
  position: relative;
  z-index: 1;
}
.ctaBtn--reserve {
  --boxColor: #FF8000;
  background: linear-gradient(90deg, #F25200 0%, #F2BE00 100%);
}
.ctaBtn--reserve::before {
  background-color: #C84400;
}
.ctaBtn--reserve::after {
  background: #FFF url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25" fill="none"><path d="M13.1963 7.19623C13.4892 6.90334 13.9649 6.90334 14.2578 7.19623L19.0303 11.9697C19.3232 12.2626 19.3232 12.7373 19.0303 13.0302L14.2578 17.8037C13.9649 18.0965 13.4892 18.0965 13.1963 17.8037C12.9034 17.5108 12.9034 17.035 13.1963 16.7421L16.6895 13.2499L6.5 13.2499C6.08579 13.2499 5.75 12.9142 5.75 12.4999C5.75 12.0857 6.08579 11.7499 6.5 11.7499L16.6895 11.7499L13.1963 8.25776C12.9034 7.96486 12.9034 7.48913 13.1963 7.19623Z" fill="%23F25200"/></svg>') center/contain no-repeat;
}
.ctaBtn--freepass {
  --boxColor: #0355A3;
  background: linear-gradient(90deg, #004BA0 0%, #1398B9 100%);
}
.ctaBtn--freepass::before {
  background-color: #003A7B;
}
.ctaBtn--freepass::after {
  background: #FFF url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25" fill="none"><path d="M13.1963 7.19623C13.4892 6.90334 13.9649 6.90334 14.2578 7.19623L19.0303 11.9697C19.3232 12.2626 19.3232 12.7373 19.0303 13.0302L14.2578 17.8037C13.9649 18.0965 13.4892 18.0965 13.1963 17.8037C12.9034 17.5108 12.9034 17.035 13.1963 16.7421L16.6895 13.2499L6.5 13.2499C6.08579 13.2499 5.75 12.9142 5.75 12.4999C5.75 12.0857 6.08579 11.7499 6.5 11.7499L16.6895 11.7499L13.1963 8.25776C12.9034 7.96486 12.9034 7.48913 13.1963 7.19623Z" fill="%23014EA1"/></svg>') center/contain no-repeat;
}
.ctaBtn--tour {
  --boxColor: #3C8F3A;
  background: linear-gradient(90deg, #388D39 0%, #93B44B 100%);
}
.ctaBtn--tour::before {
  background-color: #3C8F3A;
}
.ctaBtn--tour::after {
  background: #FFF url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25" fill="none"><path d="M13.1963 7.19623C13.4892 6.90334 13.9649 6.90334 14.2578 7.19623L19.0303 11.9697C19.3232 12.2626 19.3232 12.7373 19.0303 13.0302L14.2578 17.8037C13.9649 18.0965 13.4892 18.0965 13.1963 17.8037C12.9034 17.5108 12.9034 17.035 13.1963 16.7421L16.6895 13.2499L6.5 13.2499C6.08579 13.2499 5.75 12.9142 5.75 12.4999C5.75 12.0857 6.08579 11.7499 6.5 11.7499L16.6895 11.7499L13.1963 8.25776C12.9034 7.96486 12.9034 7.48913 13.1963 7.19623Z" fill="%23146812"/></svg>') center/contain no-repeat;
}

.snsLink {
  display: flex;
  align-items: center;
  grid-gap: 18px;
}
.snsLink a:hover {
  opacity: 0.5;
}
.snsLink img {
  width: 30px;
}

/*------------------------------------------------------
  header
-------------------------------------------------------*/
.header {
  width: 100%;
  height: var(--headerHeight);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1024;
}
.header__inner {
  height: 100%;
  max-width: 100%;
  padding: 0.7143em 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media screen and (min-width: 768px) {
  .header__inner {
    max-width: 1380px;
    padding-top: 0;
  }
}
.header__logo {
  width: 9.8571em;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .header__logo {
    width: 14em;
  }
}
@media screen and (min-width: 1024px) {
  .header__logo {
    width: 12.5em;
  }
}
@media screen and (min-width: 1200px) {
  .header__logo {
    width: 14em;
  }
}
.header__navWrap {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 1023px) {
  .header__navWrap {
    width: 100%;
    max-height: 0;
    padding: 92px 0 44px;
    background: linear-gradient(180deg, #FCF0C3 0%, #FEE6C5 100%);
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.09);
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transform-origin: center top;
    transition: var(--speed);
  }
  .header__navWrap.visible {
    max-height: 10000px;
    opacity: 1;
    pointer-events: auto;
  }
}
.header__gnav {
  margin-bottom: 50px;
  font-size: 16px;
  font-weight: 500;
  --lh: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  grid-gap: 2.5em;
}
@media screen and (min-width: 1024px) {
  .header__gnav {
    margin-bottom: 0;
    flex-direction: row;
    grid-gap: 1.25em;
  }
}
@media screen and (min-width: 1200px) {
  .header__gnav {
    grid-gap: 1.875em;
  }
}
.header__gnav a:hover {
  color: var(--main);
}
.header__btnsWrap {
  display: grid;
  grid-gap: 10px;
}
@media screen and (min-width: 1024px) {
  .header__btnsWrap {
    margin-left: 20px;
    display: flex;
    align-items: center;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1199px) {
  .header__btnsWrap .ctaBtn {
    padding: 0 1em;
    font-size: 16px;
  }
}
@media screen and (min-width: 1200px) {
  .header__btnsWrap {
    margin-left: 30px;
  }
}
.header__snsLink {
  margin-top: 50px;
  justify-content: center;
}
.header__toggler {
  width: 42px;
  height: 42px;
  padding: 0;
  background-color: #fff;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  grid-gap: 4px;
  flex-shrink: 0;
  position: relative;
}
.header__toggler:focus {
  outline: 0;
  box-shadow: none;
}
.header__toggler span {
  width: 23px;
  height: 2px;
  margin: 0 auto;
  background-color: var(--text);
  border-radius: 2px;
  display: block;
  transition: var(--speed);
}
.header__toggler.open span {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: rotate(45deg);
}
.header__toggler.open span + span {
  transform: rotate(-45deg);
}
.header__toggler.open span + span + span {
  transform: scale(0);
}

/*------------------------------------------------------
  footer
-------------------------------------------------------*/
.footer {
  padding: 60px 0 50px;
  margin-top: 20px;
  background: linear-gradient(180deg, #FCF0C3 0%, #FEE6C5 100%);
}
@media screen and (min-width: 768px) {
  .footer {
    padding: 86px 0 58px;
  }
}
.footer__inner {
  max-width: 355px;
  display: flex;
  flex-direction: column;
  align-items: center;
  grid-gap: 40px;
}
@media screen and (min-width: 768px) {
  .footer__inner {
    max-width: 1073px;
    grid-gap: 60px;
  }
}
.footer__logo {
  width: 227px;
  align-self: flex-start;
}
@media screen and (min-width: 768px) {
  .footer__logo {
    width: 370px;
    margin-bottom: 18px;
    align-self: center;
  }
}
.footer__navBlk {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  grid-gap: 45px;
}
.footer__navBlk_navList {
  width: 100%;
  max-width: 215px;
  display: grid;
  grid-gap: 20px;
}
.footer__navBlk_navList li {
  border-bottom: 1px solid var(--main);
}
.footer__navBlk_navList a {
  padding-bottom: 0.3571em;
  font-weight: 700;
  --lh: 1.6;
  display: block;
}
.footer__navBlk_navList a:hover {
  color: var(--main);
}
.footer__navBlk_btnsWrap {
  width: 100%;
  max-width: 280px;
  display: grid;
  grid-gap: 10px;
}
@media screen and (min-width: 768px) {
  .footer__navBlk {
    flex-direction: row;
    grid-gap: 40px;
    justify-content: space-between;
  }
  .footer__navBlk_navList {
    max-width: 100%;
    font-size: 81.25%;
    grid-template-columns: repeat(2, 15.3571em);
    grid-auto-flow: column;
    grid-template-rows: repeat(6, auto);
    grid-gap: 20px 0;
    justify-content: space-between;
  }
  .footer__navBlk_btnsWrap {
    max-width: 17.5em;
    font-size: 87.5%;
    flex-shrink: 0;
  }
}
@media screen and (min-width: 1024px) {
  .footer__navBlk {
    grid-gap: 20px;
  }
  .footer__navBlk_navList {
    font-size: 87.5%;
    grid-template-columns: repeat(3, 15.3571em);
    grid-template-rows: repeat(5, auto);
  }
  .footer__navBlk_btnsWrap {
    font-size: 100%;
  }
}
@media screen and (min-width: 1200px) {
  .footer__navBlk {
    grid-gap: 94px;
  }
}
.footer__infoBlk {
  width: 100%;
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  grid-gap: 30px;
}
.footer__infoBlk_leftCol {
  display: contents;
}
.footer__infoBlk_snsLink {
  padding: 0 4px;
}
.footer__infoBlk_subNav {
  width: 100%;
  max-width: 254px;
  font-size: 85.71%;
  --lh: 1.16666667;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  grid-gap: 15px 20px;
}
@media screen and (min-width: 768px) {
  .footer__infoBlk {
    margin-top: 0;
    flex-direction: row;
    justify-content: space-between;
  }
  .footer__infoBlk_leftCol {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    grid-gap: 35px;
  }
  .footer__infoBlk_snsLink {
    padding: 0;
  }
  .footer__infoBlk_snsLink img {
    width: 37px;
  }
  .footer__infoBlk_subNav {
    max-width: 100%;
    font-size: 87.5%;
  }
  .footer__infoBlk_subNav a:hover {
    color: var(--main);
  }
}
.footer__copyright {
  margin-top: 5em;
  font-size: 64.29%;
}
@media screen and (min-width: 768px) {
  .footer__copyright {
    margin-top: 4em;
    font-size: 56.25%;
  }
}

.ctaFloatBlk {
  width: 100%;
  padding: 0.9286em 0;
  background: linear-gradient(180deg, #FCF0C3 0%, #FEE6C5 100%);
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 1000;
  transition: var(--speed);
}
.ctaFloatBlk__list {
  display: flex;
  align-items: center;
  justify-content: center;
  grid-gap: 5px;
}
.ctaFloatBlk__ctaBtn {
  height: 3.3077em;
  padding: 0 1.1538em;
  font-size: 92.86%;
  grid-gap: 0.3846em;
}
@media screen and (min-width: 1024px) {
  .ctaFloatBlk {
    opacity: 0;
    pointer-events: none;
  }
}

.js-ctaEnd.on + .ctaFloatBlk {
  transform: translateY(100%);
  opacity: 0;
}

/*------------------------------------------------------
  animation
-------------------------------------------------------*/
.js-animation-delay1s {
  transition-delay: 1s;
}

.js-slideIn {
  opacity: 0;
  transform: translateX(-20px);
  transition-duration: var(--speed);
}
.js-slideIn.on {
  opacity: 1;
  transform: translateX(0);
}

.js-fadeIn {
  opacity: 0;
  transform: translateY(30px);
  transition-duration: var(--speed);
}
.js-fadeIn.on {
  opacity: 1;
  transform: translateY(0);
}

.js-mask {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 20%, #000 100%);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 0% 100%;
  -webkit-mask-position: right center;
  mask-image: linear-gradient(to right, transparent 0%, #000 20%, #000 100%);
  mask-repeat: no-repeat;
  mask-size: 0% 100%;
  mask-position: right center;
}
.js-mask.on {
  animation: reveal 0.5s ease-out forwards;
}
@keyframes reveal {
  to {
    mask-size: 100% 100%;
  }
}