@charset "utf-8";
/* 「至極の逸品／心躍る旅」全国共通CSS（PCSP共通） */
@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@700;900&display=swap');
/*★ リセット ★*/
.main div:not([class])::after {
  content: none;
}
.main a {
  text-decoration: none;
}
.main .is-em {
  font-weight: bold;
}
#footer, #topbuttonApp, #searchArea {
  position: relative;
  z-index: 1;
}
#footer {
  background: #fff;
  padding-top: 40px;
}
#footer .footer {
  margin-top: 0 !important;
}
.breadcrumb__inner {
  width: min(100%, 1024px);
  margin: auto;
  letter-spacing: 0 !important;
}
.is-device-pc :is(#breadcrumbArea, .breadcrumb__contents) {
  height: auto;
  min-height: 28px;
  overflow: auto;
}
.is-device-pc .breadcrumb {
  width: auto;
  margin: 0;
  overflow: hidden;
}
.goTop__link {
  display: none;
}
/*------------------------------------------------*/
/*★ ページスタイル設定 ★*/
#hisApp {
  position: relative;
  font-family: "Noto Sans JP", sans-serif;
}
:root {
  --font-family-min: 'Zen Old Mincho', serif;
  --color-main: #bca600;
  --icon-arrow-right-white: url("/cmn/icon/icon_arrow_right_white.svg");
  --icon-blank-white: url("/cmn/icon/icon_launch_white.svg");
  --icon-arrow-right-black: url("/cmn/icon/icon_arrow_right_black.svg");
  --icon-blank-black: url("/cmn/icon/icon_launch_black.svg");
  --default-max-height: 100lvh;
  --default-color-black: #000;
  --default-color-gray: #939dad;
  --default-color-red: #e90000;
  --default-color-kaigai: #007cdd;
  --default-color-kokunai: #2ea307;
  --default-font-size-pc-val: 14;
  --default-font-size-pc: 14px;
  --default-font-size-sp: calc(22vw / 7.5);
  --default-font-size: min(var(--default-font-size-sp), var(--default-font-size-pc));
  --default-width-sp-val: 670;
  --default-width-pc-val: 992;
  --default-width-sp: (700vw / 7.5);
  --default-width-pc: 992px;
  --default-width: min(var(--default-width-sp), var(--default-width-pc));
  --default-width2: min(100%, var(--default-width-pc));
  --default-bg-width-pc: max(100%, 1920px);
  --default-bg-setting: no-repeat center center / cover;
  --default-icon-arrow-right-white: var(--icon-arrow-right-white) var(--default-bg-setting);
  --default-icon-arrow-right-black: var(--icon-arrow-right-black) var(--default-bg-setting);
  --default-icon-blank-white: var(--icon-blank-white) var(--default-bg-setting);
  --default-icon-blank-black: var(--icon-blank-black) var(--default-bg-setting);
  --default-hover-speed: .3s;
  --default-hover-opacity: .8;
  --default-hover-transition: opacity var(--default-hover-speed);
  --default-hover-transition2: background var(--default-hover-speed);
  --default-hover-transition3: color var(--default-hover-speed);
  --default-hover-transition4: transform var(--default-hover-speed);
}
.is-pc .js-accordion-button-pc, .is-sp .js-accordion-button-sp, .js-toggleControl:not([class*="active"]) {
  cursor: pointer;
}
:is(.is-pc .js-accordion-button-pc, .is-sp .js-accordion-button-sp) + * {
  display: none;
}
body.is-lock {
  overflow: hidden;
}
.main {
  font-size: var(--default-font-size);
  color: var(--default-color-black);
  line-height: calc(24 / var(--default-font-size-pc-val));
  overflow: hidden;
  padding-bottom: 0 !important;
  position: relative;
  background: #f5f1d3 url("../images/main_bg.webp") repeat center top / 100%;
}
.is-pc .is-dsp-sp, .is-sp .is-dsp-pc {
  display: none !important;
}
.is-font-small, .is-sp .is-font-small-sp, .is-pc .is-font-small-pc {
  font-size: .8em;
}
.is-font-big {
  font-size: 1.5em;
  line-height: 1;
}
.is-inline-block {
  display: inline-block;
}
.is-indent-1, .section [class*="notes--item"] {
  text-indent: -1em;
  padding-left: 1em;
}
.js-open-trigger {
  cursor: pointer;
  position: relative;
}
.js-open-target {
  display: none;
}
.js-accordion-button {
  cursor: pointer;
}
.js-accordion-button + * {
  display: none;
}
.section__inner, .contents__wrapper {
  width: var(--default-width);
  margin: auto;
  position: relative;
}
:is([class*="__link"], [class*="--link"]) {
  color: inherit;
}
.banner {
  display: grid;
  justify-items: center;
}
.banner__item {
  width: var(--bnr-w, min((710vw / 7.5), 710px));
  background: #fff;
  .is-pc & {
    --bnr-w: min(var(--default-width-sp), 960px);
  }
}
.banner__image--item {
  width: 100%;
  height: auto;
}
/*------------------------------------------------*/
/*★ headerArea ★*/
#headerArea {
  background: #fff;
}
/*portal-navi*/
.portal-navi {
  font-weight: bold;
  --portal-button-bg: var(--color-main);
  border-top: 1px solid;
}
.is-pc :is(.portal-navi__list--title, .js-area-open-trigger), .is-sp .js-area-open-target {
  display: none;
}
.js-area-open-trigger {
  cursor: pointer;
}
.portal-navi__title--text {
  display: flex;
  gap: .75em;
  align-items: center;
}
.portal-navi__title--arrows {
  display: grid;
  --size: .5em;
  grid-template-columns: repeat(3, var(--size));
  gap: .25em;
}
.portal-navi__title--arrow {
  width: var(--size);
  height: var(--size);
  background: currentColor;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
/*発地ナビSP完全別レイアウトスタイル*/
.is-sp .portal-navi {
  --portal-button-radius: min((6vw / 7.5), 8px);
  .portal-navi__title {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: min((60vw / 7.5), 30px);
    padding: min((15vw / 7.5), 15px);
  }
  .portal-navi__button {
    display: grid;
    justify-items: center;
    align-items: center;
    width: min((330vw / 7.5), 330px);
    height: min((70vw / 7.5), 40px);
    background: var(--portal-button-bg);
    border-radius: var(--portal-button-radius);
    color: #fff;
  }
  .portal-navi__list--wrapper {
    position: fixed;
    width: 100%;
    height: 100vh;
    top: 0;
    left: 0;
    z-index: 100;
    background: url(/cmn/icon/icon_close_black.svg) no-repeat right top #fff;
    padding: min((50vw / 7.5), 50px) min((40vw / 7.5), 40px);
  }
  .portal-navi__list--title {
    font-size: min((40vw / 7.5), 20px);
    text-align: center;
    margin-bottom: 1.5em;
  }
  .portal-navi__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: min((30vw / 7.5), 20px);
  }
  .portal-navi__list--link {
    width: 100%;
    height: min((100vw / 7.5), 40px);
    padding: .2em .5em .3em;
    border: 1px solid;
    text-align: center;
    background: #fff;
    border-radius: var(--portal-button-radius);
    font-size: min((34vw / 7.5), 16px);
    display: grid;
    justify-items: center;
    align-items: center;
    cursor: pointer;
    &.is-active {
      background: var(--portal-button-bg);
      border-color: var(--portal-button-bg);
      color: #fff;
    }
  }
}
/*発地ナビPC完全別レイアウトスタイル*/
.is-pc .portal-navi {
  .portal-navi__inner {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: calc((20 / 992) * 100%);
    width: min(98%, var(--default-width-pc));
    margin: auto;
    font-size: min((13vw / 7.5), 14px);
    align-items: center;
    padding: 10px 0;
  }
  .portal-navi__list {
    display: grid;
    gap: .6em;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
  }
  .portal-navi__list--link {
    display: block;
    text-align: center;
    padding: .2em .6em .3em;
    border-radius: 8px;
    &.is-active {
      background: var(--portal-button-bg);
      color: #fff;
    }
  }
  .portal-navi__list--wrapper {
    display: block !important;
  }
}
/*mv*/
.mv {
  position: relative;
}
.mv__inner {
  width: min(calc(718vw / 7.5), var(--default-width-pc));
  margin: auto;
  position: relative;
  z-index: 1;
  padding: calc(155vw / 7.5) 0 calc(130vw / 7.5);
  color: #fff;
  font-family: var(--font-family-min);
  .is-pc & {
    padding: 67px 0 110px
  }
}
.mv__texts {
  text-align: center;
}
.mv__title {
  font-size: calc(120vw / 7.5);
  line-height: 1;
  .is-pc & {
    font-size: 90px;
  }
}
.mv__title:not(:last-child) {
  margin-bottom: calc(70em / 90);
}
.mv__title .is-font-small {
  font-size: calc(54em / 90);
  font-style: inherit;
  display: inline-block;
  line-height: 1.5;
  vertical-align: bottom;
}
.mv__title--maintext, .mv__title--subtext {
  font-style: italic;
  display: block;
  letter-spacing: .2em;
}
.mv__title--subtext {
  font-size: calc(24vw / 7.5);
  margin-top: .75em;
}
.is-pc .mv__title--subtext {
  font-size: 17px;
  margin-top: .5em;
}
.mv__lead {
  --font: inherit;
  font-size: var(--font);
  line-height: calc(33 / 14);
  letter-spacing: .15em;
}
.mv__lead:is(.is-first, .is-last) {
  --yohaku: 2em;
  --font: calc(30vw / 7.5);
  font-weight: 900;
  line-height: 1;
}
.mv__lead.is-first {
  --font: calc(34vw / 7.5);
  line-height: calc(56 / 34);
  letter-spacing: 1px;
  margin-bottom: var(--yohaku);
}
.mv__lead.is-last {
  margin-top: var(--yohaku);
}
.is-pc .mv__lead:is(.is-first, .is-last) {
  --font: 24px;
}
.mv__lead.is-first ~ .mv__lead:not(.is-last) {
  --font: calc(24vw / 7.5);
  line-height: calc(48 / 16);
}
.is-pc .mv__lead.is-first ~ .mv__lead:not(.is-last) {
  --font: 16px;
}
.mv__title--image {
  --size: calc(168vw / 7.5);
  height: var(--size);
  width: auto;
  object-fit: contain;
}
.is-pc .mv__title--image {
  --size: 168px;
}
.mv__photos {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.mv__photos .slick-list, .mv__photos .slick-track, .mv__photo--inner, .mv__photo--item {
  height: 100%;
}
.mv__photo--item {
  width: 100%;
  object-fit: cover;
}
/*------------------------------------------------*/
/*★ mainArea ★*/
#mainArea {
  --block-yohaku: min((60vw/ 7.5), 43px) 0;
  padding: var(--block-yohaku);
}
.is-sp #mainArea div {
  position: relative;
}
.section {
  padding: var(--block-yohaku);
}
/*共通ボタン*/
.button-base {
  margin: auto;
  .is-sp & {
    width: 100%;
    max-width: calc(700vw / 7.5);
  }
}
.button-base + .button-base {
  margin-top: min((40vw/ 7.5), 20px);
}
.button-base__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--color-main);
  color: #fff;
  font-weight: bold;
  text-decoration: none;
  transition: background .4s;
  position: relative;
  text-align: center;
  height: 100%;
  min-height: min((85vw / 7.5), 42px);
  padding: var(--yohaku, calc(10vw / 7.5) calc(25vw / 7.5) calc(14vw / 7.5));
  font-size: min((34vw / 7.5), 16px);
  line-height: 1.3;
  border-radius: var(--radius, calc(20vw / 7.5));
  box-shadow: var(--shadow, 0px calc(3vw / 7.5) 0px 0px rgba(0, 0, 0, 0.5));
  .is-pc & {
    --yohaku: 5px 40px;
    --radius: 100px;
    --shadow: 3px 3px 0px 0px rgba(0, 0, 0, 0.5);
  }
  &::after {
    content: "";
    width: 1em;
    height: 2em;
    background: var(--default-icon-arrow-right-white);
    margin-left: .15em;
  }
  &[href^="#"]::after {
    transform: rotate(90deg);
  }
  &[target="_blank"]:not([href^="#"])::after {
    height: 1em;
    background-image: var(--icon-blank-white);
  }
  &.is-soldout {
    cursor: default;
    background: #888;
    opacity: 1 !important;
    &::after {
      content: none;
    }
  }
}
.button-base__text {
  flex: 1;
}
/**/
.schedule-text {
  text-align: center;
}
.schedule-text:not(:last-child) {
  margin-bottom: min((90vw / 7.5), 60px);
}
/*special-product*/
.special-product__navi--list, .special-product__list {
  counter-reset: number 0;
}
.special-product__navi--item::before, .special-product__item:not(:is(.is-kaigai, .is-kokunai)) .special-product__item--tour--title--text::before, .special-product__item:is(.is-kaigai, .is-kokunai) .special-product__item--tour--title--text .is-type::before {
  counter-increment: number 1;
  content: counter(number, decimal-leading-zero);
}
/*special-product -- special-product__navi*/
.special-product__navi::before {
  content: "心躍る旅";
  display: block;
  font-size: min((40vw / 7.5), 22px);
  font-weight: 900;
  font-family: var(--font-family-min);
  margin-bottom: .25em;
}
.special-product__navi--list {
  display: grid;
  align-items: start;
  gap: min((25vw / 7.5), 15px) 20px;
  border-bottom: 1px solid;
  border-top: 1px solid;
  padding: var(--yohaku, calc(30vw / 7.5) 0);
  line-height: 1.4;
  .is-pc & {
    --yohaku: 20px 10px;
    grid-template-columns: repeat(2, 1fr);
  }
}
.special-product__navi--item {
  display: grid;
  grid-template-columns: 2em 1fr;
  gap: 1em;
  cursor: pointer;
  transition: color var(--default-transition-speed);
  &:has(.special-product__navi--item--subtext: empty) {
    align-items: center;
  }
}
.special-product__navi--item::before {
  font-size: min((40vw / 7.5), 26px);
  line-height: 1;
  font-family: var(--font-family-min);
}
.special-product__navi--item--inner {
  color: inherit;
  text-decoration: none;
}
.special-product__navi--item--maintext {
  font-size: min((28vw / 7.5), 15px);
  font-weight: bold;
}
.special-product__navi--item--subtext {
  font-size: min((22vw / 7.5), 14px);
}
/*special-product -- special-product__list*/
.special-product__list {
  display: grid;
  gap: min((150vw / 7.5), 100px);
  margin-top: min((80vw / 7.5), 65px);
}
.special-product__item--inner:not(:last-child) {
  margin-bottom: min((40vw / 7.5), 24px);
}
.special-product__item--tour {
  margin-bottom: min((35vw / 7.5), 40px);
  color: #fff;
  position: relative;
}
.special-product__item--tour--texts {
  font-family: var(--font-family-min);
  height: var(--height, min((605vw / 7.5), 605px));
  position: relative;
  z-index: 1;
  display: grid;
  align-content: end;
  justify-content: start;
  padding: var(--yohaku, min((28vw / 7.5), 28px));
  @media (min-width: 1051px) {
    .special-product__item & {
      --height: 405px;
      --yohaku: 20px 28px;
    }
    #product-HWI01 & {
      width: calc((362 / 936) * 100%);
    }
    #product-HKD01 & {
      width: calc((354 / 936) * 100%);
    }
    #product-IZO01 & {
      width: calc((305 / 936) * 100%);
    }
    /*.special-product__item:not(#product-HWI01, #product-HKD01, #product-IZO01):nth-child(even) & {
      justify-content: end;
    }*/
  }
}
.special-product__item--tour--texts > [class*="special-product__item--tour--"] {
  order: 1;
}
.special-product__item--tour--title {
  margin-top: auto;
}
.special-product__item--tour--title--text {
  font-size: min((32vw / 7.5), 22px);
  line-height: 1;
  .is-type {
    margin-bottom: .15em;
  }
  .is-day {
    padding-left: .25em;
  }
  .is-day-text {
    font-size: calc(18em / 22);
  }
}
.special-product__item:is(.is-kaigai, .is-kokunai) .special-product__item--tour--title--text .is-type {
  font-size: calc(24em / 22);
}
.special-product__item:not(:is(.is-kaigai, .is-kokunai)) .special-product__item--tour--title--text::before, .special-product__item:is(.is-kaigai, .is-kokunai) .special-product__item--tour--title--text .is-type {
  display: block;
  line-height: 1.2;
}
.special-product__item:not(:is(.is-kaigai, .is-kokunai)) .special-product__item--tour--title--text::before, .special-product__item:is(.is-kaigai, .is-kokunai) .special-product__item--tour--title--text .is-type::before {
  font-size: min((70vw / 7.5), 50px);
}
.special-product__item:is(.is-kaigai, .is-kokunai) .special-product__item--tour--title--text .is-world-name {
  --yohaku: .5em;
  padding-left: var(--yohaku);
  border-left: 1px solid;
  margin-left: var(--yohaku);
  transform: translateY(-.1em);
  display: inline-block;
}
.special-product__item--tour--price {
  font-size: min((30vw / 7.5), 28px);
  line-height: 1;
  margin-top: .15em;
}
.special-product__item--tour--title--image {
  width: min((330vw / 7.5), 330px);
  max-height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  /*@media (min-width: 1051px) {
    .special-product__item:nth-child(even) & {
      left: 0;
      right: auto;
    }
  }*/
}
.special-product__item--tour--image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ccc;
  & .base-picture__image {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: right bottom;
    :is(#product-HWI01, #product-HKD01, #product-IZO01, #product-DCL02) & {
      object-position: right top;
    }
  }
}
.special-product__item--detail {
  display: grid;
  gap: calc(20vw / 7.5);
  .is-pc & {
    gap: 25px;
    grid-template-columns: 1fr 394px;
  }
}
.special-product__item--detail--title {
  border-left: calc(7vw / 7.5) solid var(--color-main);
  padding-left: 1em;
  font-size: min((28vw / 7.5), 20px);
  font-weight: bold;
  margin-bottom: 1em;
  .is-pc & {
    border-left-width: 3px;
  }
}
.special-product__item--detail--text {
  line-height: calc(24 / 14);
}
.special-product__item--detail--images {
  display: grid;
  gap: min((18vw / 7.5), 10px);
  grid-template-areas:
    "order1 order3"
    "order2 order3";
  grid-template-columns: var(--left-column, calc(260vw / 7.5)) 1fr;
  grid-template-rows: repeat(2, var(--row, calc(164vw / 7.5)));
  .is-pc & {
    --left-column: 144px;
    --row: 91px;
  }
}
.special-product__item--detail--image {
  background: #ccc;
  object-fit: cover;
  width: 100%;
  height: 100%;
  &.is-order-1 {
    grid-area: order1;
  }
  &.is-order-2 {
    grid-area: order2;
  }
  &.is-order-3 {
    grid-area: order3;
  }
}
.special-product__item--point {
  background: #e4dfb6;
  padding: 1em;
  margin-top: min((40vw / 7.5), 40px);
}
.special-product__item--point--title {
  border-bottom: 1px dashed #fff;
  color: var(--color-main);
  font-size: min((24vw / 7.5), 16px);
  font-weight: bold;
  padding-bottom: .5em;
  margin-bottom: 1em;
}
.special-product__item--point--item {
  font-size: min((22vw / 7.5), 14px);
  &.is-title {
    font-weight: bold;
    + .special-product__item--point--item {
      margin-top: .25em;
    }
  }
  &:not(.is-title) {
    padding-left: 1em;
    text-indent: -1em;
    &::before {
      content: "・";
      color: var(--color-main);
    }
  }
  &:not(:first-child) {
    margin-top: .6em;
    &.is-title {
      margin-top: 1em;
    }
  }
}
/*reco-banner*/
.reco-banner__list {
  background: #fff;
  width: var(--size, min(100%, 540px));
  margin: auto;
  display: grid;
  grid-template-columns: var(--column, repeat(2, 1fr));
  gap: var(--gap, min((22vw / 7.5), 30px));
  padding: min((40vw / 7.5), 30px);
  .is-pc & {
    --size: min(100%, 960px);
    --column: repeat(4, 1fr);
    --gap: calc((30 / 900) * 100%);
  }
}
.reco-banner__link {
  display: block;
  border: var(--border-color, transparent) min((4vw / 7.5), 4px) solid;
}
/*★ ＝＝ searchArea（検索ボックスのレイアウト切り替えタイミングで変更） ＝＝ ★*/
/*search*/
#searchArea {
  padding-bottom: min((50vw / 7.5), 60px);
  background: #fff;
  @media (min-width: 741px) {
    & {
      padding: 60px 0;
      background: url("../images/pc/search_bg.webp") no-repeat center top / var(--default-bg-width-pc);
    }
  }
}
@media (min-width: 741px) {
  .is-sp ~ #searchArea {
    .rn-searchMod__navList {
      gap: 1px;
      background: #000;
      border: 1px solid;
      border-bottom: none;
    }
    br {
      display: block;
    }
    .rn-searchMod__navListItem, .rn-searchMod__navLinkItem {
      flex: 1;
      &:not(:last-child) {
        margin-right: 0;
      }
      &::after {
        width: calc(100% + 2px);
        left: -1px;
      }
    }
    .rn-searchMod__navListButton, .rn-searchMod__navLinkButton {
      border: none;
      border-radius: 0;
    }
  }
}
/*------------------------------------------------*/
/*★ ホバー設定 ★*/
@media (hover : hover) and (pointer : fine) {
  :is(.is-sp, .is-pc) .portal-navi .portal-navi__list--link {
    transition: var(--default-hover-transition2), var(--default-hover-transition3), border var(--default-hover-speed);
    &:hover {
      background: var(--portal-button-bg);
      border-color: var(--portal-button-bg);
      color: #fff;
    }
  }
  .button-base__link, .banner__link {
    transition: var(--default-hover-transition);
    &:hover {
      opacity: var(--default-hover-opacity);
    }
  }
  .reco-banner__link {
    transition: border .1s;
    &:hover {
      --border-color: #ff3a3a;
    }
  }
  .base-text-link__link {
    &:hover {
      text-decoration: underline;
      text-underline-offset: 0.5em;
    }
  }
  .special-product__navi--item {
    transition: var(--default-hover-transition3);
    &:hover {
      color: var(--color-main);
    }
  }
}