@charset "utf-8";
/*------------------------------------------------*/
/*★ ページスタイル設定 ★*/
/*------------------------------------------------*/
html:has(.js-sp-menu-open-target.is-open):has(.is-sp) {
  overflow: hidden;
}
/*★ ＝＝ headerArea ＝＝ ★*/
#headerArea {
  position: relative;
  button {
    background: none;
    border: none;
    cursor: pointer;
    font-weight: inherit;
    color: inherit;
  }
}
/*gnav＋pnavi*/
#gnavi {
  text-align: center;
  font-size: min((14vw / 3.75), 14px);
  line-height: 1;
  .gnavi__content--wrapper {
    .is-sp & {
      .gnavi__content {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 20;
        background: #fff;
        translate: 120% 0;
        &:not(.is-open-yet) {
          transition: translate .5s;
        }
        &.is-open {
          translate: 0 0;
        }
      }
      .gnavi__open-button {
        .is-dsp-out & {
          position: fixed;
          top: 0;
          right: 0;
          translate: 120% 0;
        }
        .is-fixed-start & {
          transition: translate .4s;
        }
        .is-fixed-start:not(.is-fixed-end) & {
          translate: 0 0;
        }
        .is-fixed-end & {}
      }
      .gnavi__open-button, .gnavi__close-button {
        background: var(--default-color-pink-dark);
        width: min((48vw / 3.75), 48px);
        height: min((46vw / 3.75), 46px);
        border-radius: 8px 0 0 8px;
        position: absolute;
        z-index: 10;
        right: 0;
        top: 0;
        &.gnavi__open-button {
          display: grid;
          justify-items: center;
          align-content: center;
          gap: min((8vw / 3.75), 8px);
          .gnavi__open-button--border {
            background: #fff;
            width: min((24vw / 3.75), 24px);
            height: 2px;
          }
        }
        &.gnavi__close-button {
          .gnavi__close-button--border {
            position: absolute;
            top: 50%;
            left: 50%;
            translate: calc(-50% + 1px) calc(-50% - 1px);
            background: #fff;
            width: min((26vw / 3.75), 26px);
            height: 3px;
            rotate: 45deg;
            &:nth-child(2) {
              rotate: -45deg;
            }
          }
        }
      }
    }
    .is-pc & {
      height: var(--gnav-h);
      background: #fff;
      &.is-dsp-out {
        width: 100%;
        transform: translateZ(0); /*iOS描画対策*/
        position: fixed;
        top: 0;
        left: 0;
        z-index: 15;
        translate: 0 -120%;
      }
      &.is-fixed-start {
        transition: translate .4s;
        &:not(.is-fixed-end) {
          translate: 0 0;
        }
        &, .gnavi__page--list--item--sub {
          box-shadow: 0px 3px 6px -3px rgba(0, 0, 0, .5)
        }
      }
      .gnavi__content {
        position: relative;
      }
      .gnavi__open-button, .gnavi__close-button {
        display: none;
      }
    }
  }
  .gnavi__inner {
    .is-sp & {
      height: 100vh;
      overflow: auto;
      padding: min((46vw / 3.75), 46px) 0 min((60vw / 3.75), 60px);
      .js-pc-gnav-open-target {
        display: block !important;
      }
      .gnavi__page--list--item.is-kokunai {
        display: none;
      }
      .gnavi__page--list--item--main.is-link {
        display: block;
        width: max-content;
        margin: auto;
      }
      .gnavi__page--list--item--main:not(.is-link), .gnavi__portal {
        width: calc((357 / 375) * 100%);
        margin: auto;
        &.gnavi__page--list--item--main, &.gnavi__portal::before {
          font-size: min((14vw / 3.75), 14px);
          line-height: 2;
          border-bottom: 1px solid var(--default-color-brown);
          margin-bottom: min((8vw / 3.75), 8px);
        }
        &.gnavi__page--list--item--main {
          color: var(--default-color-brown-dark2);
        }
        &.gnavi__portal::before {
          content: "発着地を選ぶ";
          display: block;
        }
      }
      .gnavi__portal {
        margin-top: min((40vw / 3.75), 40px);
        .gnavi__portal--button {
          display: none;
        }
        .gnavi__portal--list {
          display: flex !important;
          flex-wrap: wrap;
          justify-content: center;
          gap: min((8vw / 3.75), 8px) min((16vw / 3.75), 16px);
          font-size: min((12vw / 3.75), 13px);
          line-height: calc(18 / 12);
          .gnavi__portal--list--item:not(:first-child) {
            display: flex;
            align-items: center;
            gap: min((16vw / 3.75), 16px);
            &::before {
              content: "";
              width: 1px;
              height: 1em;
              background: currentColor;
              rotate: 45deg;
            }
          }
          .gnavi__portal--list--link {
            color: inherit;
          }
        }
      }
    }
    .is-pc & {
      display: grid;
      width: min(95%, 911px);
      grid-template-columns: 1fr;
      margin: auto;
      --active-border: 0px -2px 0px 0px var(--default-color-pink-dark) inset;
      &:has(.gnavi__portal) {
        grid-template-columns: 1fr auto;
        gap: calc((84 / 911) * 100%);
      }
      .gnavi__page--list {
        display: flex;
        justify-content: space-between;
      }
      .gnavi__page--list--item--main {
        display: grid;
        align-items: center;
        height: 100%;
        padding: 6px 0;
        .gnavi__page--list--item.is-active &, &.is-open {
          box-shadow: var(--active-border);
        }
      }
    }
  }
}
.gnavi__page {
  .gnavi__page--list--item {
    &.is-top {
      font-family: var(--default-ff-en);
      color: var(--default-color-pink-dark);
      font-size: min((34vw / 3.75), 34px);
      font-weight: 400;
    }
    .is-link {
      color: inherit;
    }
    .is-sp & {
      &:not(:first-child) {
        margin-top: min((20vw / 3.75), 20px);
      }
    }
  }
  .gnavi__page--list--item--sub {
    .is-pc & {
      display: none;
      width: 100%;
      background: #fff;
      position: absolute;
      bottom: 0;
      left: 0;
      translate: 0 100%;
      z-index: 20;
    }
    .gnavi__page--list--item--sub--list {
      width: min((343vw / 3.75), 980px);
      margin: auto;
      display: grid;
      --col-num: 2;
      --gap: min((8vw / 3.75), 8px);
      grid-template-columns: repeat(auto-fit, calc((100% - var(--gap) * (var(--col-num) - 1)) / var(--col-num)));
      gap: var(--gap);
      justify-content: center;
      .is-pc & {
        --col-num: 6;
        --gap: 16px;
        padding-top: 16px;
        .gnavi__page--list--item--sub--list--item.is-kokunai {
          display: none;
        }
      }
    }
    .gnavi__page--list--item--sub--list--item--inner {
      display: grid;
      font-size: min((12vw / 3.75), 13px);
      line-height: calc(18 / 13);
      .is-sp & {
        --icon-size-h: 100%;
        grid-template-columns: min((40vw / 3.75), 40px) 1fr;
        gap: var(--gap);
        text-align: left;
        align-items: center;
        .gnavi__page--list--item--sub--list--item--photo {
          border-radius: 100%;
          overflow: hidden;
        }
      }
      .is-pc & {
        --icon-size-h: calc((92 / 150) * 100%);
        height: 100%;
        grid-template-rows: auto 1fr;
        gap: 4px;
        padding-bottom: 12px;
        /*.gnavi__page--list--item--sub--list--item.is-active & {
          box-shadow: var(--active-border);
        }*/
      }
      .gnavi__page--list--item--sub--list--item--photo {
        order: -1;
        position: relative;
        width: 100%;
        height: 0;
        padding-top: var(--icon-size-h);
      }
    }
  }
}
:is(.is-pc #gnavi, .is-sp #pnavi) .gnavi__portal {
  position: relative;
  width: min((105vw / 3.75), 120px);
  height: max-content;
  margin-top: auto;
  font-size: min((12vw / 3.75), 14px);
  line-height: 1;
  .gnavi__portal--button {
    width: 100%;
    height: min((32vw / 3.75), 34px);
    display: flex;
    gap: min((4vw / 3.75), 8px);
    align-items: center;
    justify-content: center;
    background: var(--bg, var(--default-color-pink));
    color: #fff;
    cursor: pointer;
    .is-sp & {
      &:not(.is-open) {
        border-radius: 0 0 8px 0;
      }
    }
    .is-pc & {
      border-radius: 8px 8px 0 0;
    }
    &::after {
      content: "";
      width: min((10vw / 3.75), 12px);
      height: min((7vw / 3.75), 8px);
      background: currentColor;
      clip-path: polygon(0 0, 100% 0, 50% 100%);
      transition: rotate .5s;
    }
    &.is-open {
      &::after {
        rotate: -180deg;
      }
    }
  }
  .gnavi__portal--list {
    display: none;
    position: absolute;
    z-index: 20;
    width: 100%;
    border-top: none;
    text-align: center;
    background: #fff;
    border: 1px solid var(--default-color-pink);
  }
  .gnavi__portal--list--item:not(:first-child) {
    border-top: var(--default-border);
  }
  .gnavi__portal--list--item:has(.is-active) + .gnavi__portal--list--item {
    border-top: none;
  }
  .gnavi__portal--list--link {
    display: flex;
    align-items: center;
    gap: min((4vw / 3.75), 6.5px);
    padding: min((10vw / 3.75), 10px) min((8vw / 3.75), 8px);
    color: var(--default-color-brown-dark2);
    background: var(--bg, #fff);
    .is-pc & {
      &.is-active {
        display: none;
      }
    }
    &::before {
      content: "";
      width: min((5vw / 3.75), 6.5px);
      height: min((7vw / 3.75), 9px);
      background: var(--default-color-brown);
      clip-path: polygon(0 0, 100% 50%, 0 100%);
    }
  }
}
#pnavi {
  .is-sp & {
    position: absolute;
    z-index: 10;
  }
  .is-pc & {
    display: none;
  }
}
/*mv*/
#mv {
  position: relative;
  .mv-main {
    text-align: center;
    width: max-content;
    max-width: 95%;
    height: max-content;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    z-index: 1;
    .mv-main__logo--inner {
      display: grid;
      justify-items: center;
      color: #fff;
      &::before, &::after {
        content: "";
        width: min((140vw / 3.75), 140px);
        height: min((29vw / 3.75), 29px);
        background: url("../images/mv_kazari.svg") no-repeat center center / contain;
      }
      &::before {
        margin-bottom: min((21vw / 3.75), 21px);
      }
      &::after {
        scale: 1 -1;
        margin-top: min((24vw / 3.75), 24px);
      }
    }
    .mv-main__logo--en {
      font-family: var(--default-ff-en);
      font-size: min((46vw / 3.75), 54px);
      line-height: 1.2;
      font-weight: 400;
      word-wrap: break-word;
      hyphens: auto;
      &:not(:last-child) {
        margin-bottom: min((15vw / 3.75), 20px);
      }
    }
    .mv-main__logo--jp {
      font-size: min((18vw / 3.75), 22px);
      line-height: 1.6;
    }
  }
  .mv-bg {
    min-height: var(--mv-h);
    .base-picture__image {
      object-fit: cover;
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
    }
  }
}
/*------------------------------------------------*/
/*★ ＝＝ mainArea ＝＝ ★*/
#mainArea > * {
  position: relative;
  z-index: 1;
}
/*main-lead*/
.main-lead {
  padding-top: min((40vw / 3.75), 40px);
  color: var(--default-color-brown-dark2);
  line-height: 2;
  .is-pc & {
    text-align: center;
  }
  .main-lead__inner {
    width: var(--default-width);
    margin: auto;
  }
  .main-lead__notes {
    font-size: min((12vw / 3.75), 14px);
    color: var(--default-color-gray);
    .main-lead__notes--item {
      padding-left: 1em;
      text-indent: -1em;
    }
  }
}
/*section*/
.section {
  --sec-ttl-color: var(--sub-color1);
  --sec-ttl-kazari-bg: var(--main-color);
  --sec-ttl-kazari-size-w: min((185vw / 3.75), 206px);
  --sec-ttl-kazari-size-h: min((16vw / 3.75), 18px);
  --sec-ttl-gap: min((15vw / 3.75), 15px);
  --sec-pt: var(--sec-yohaku1);
  padding-top: var(--sec-pt, );
  --sec-scroll-mt: calc(var(--sec-pt) * (-1));
  scroll-margin-top: calc(var(--sec-scroll-mt) + min((40vw / 3.75), 100px));
  #pageApp.is-page-kokunai & {
    --main-color: var(--default-color-green);
    --sub-color1: var(--default-color-green);
    --sub-color2: var(--default-color-green-light);
  }
  &:nth-child(1 of .section) {
    --sec-pt: var(--sec-yohaku2);
  }
  &[id^="product_"] {
    background: #DFF5F9;
    --sec-ttl-color: #16AABA;
    --sec-ttl-kazari: url("../images/tour_ttl_kazari.svg");
    --sec-ttl-kazari-bg: currentColor;
    --sec-ttl-gap: min((18.31vw / 3.75), 24.31px);
    --sec-ttl-kazari-size-w: min((161vw / 3.75), 186.97px);
    --sec-ttl-kazari-size-h: min((26.96vw / 3.75), 31.31px);
    padding-bottom: var(--sec-yohaku1);
  }
  &:nth-child(1 of .section[id^="product_"]) {
    --sec-pt: var(--sec-yohaku2);
    margin-top: var(--sec-yohaku1);
    #mainArea:has(#product_tour):has(#product_hotel) & {
      padding-bottom: 0;
      .base-buttons:last-child {
        padding-bottom: 5px;
      }
    }
  }
  #mainArea:not(:has([id^="product_"])) & {
    + #point {
      margin-top: var(--sec-yohaku1);
    }
  }
  &#point {
    --sec-pt: var(--sec-yohaku2);
    padding-bottom: var(--sec-yohaku1);
    position: relative;
    &::before, &::after {
      content: "";
      width: 100%;
      height: 8px;
      background: linear-gradient(to bottom, rgba(0, 0, 0, 0.15) 0%, rgba(255, 255, 255, 0) 100%);
      position: absolute;
      left: 0;
    }
    &::before {
      top: -1px;
    }
    &::after {
      bottom: -1px;
      scale: 1 -1;
    }
  }
  &#notes {
    --sec-pt: min((70vw / 3.75), 121px);
  }
}
.section__inner {
  width: var(--default-width);
  margin: auto;
}
/*section-title*/
.section-title {
  text-align: center;
  color: var(--sec-ttl-color);
  font-weight: bold;
  display: grid;
  justify-items: center;
  gap: 2px;
  margin-bottom: var(--sec-ttl-mb, min((38vw / 3.75), 78px));
  .section-title__en {
    font-size: min((50vw / 3.75), 64px);
    line-height: 1.2;
    font-family: var(--default-ff-en);
    font-weight: normal;
    padding-bottom: var(--sec-ttl-gap);
    min-width: var(--sec-ttl-kazari-size-w);
    position: relative;
    &::after {
      content: "";
      background: var(--sec-ttl-kazari-bg);
      width: var(--sec-ttl-kazari-size-w);
      height: var(--sec-ttl-kazari-size-h);
      mask: var(--sec-ttl-kazari, url("../images/ttl_kazari.svg")) no-repeat center bottom / contain;
      position: absolute;
      bottom: 0;
      left: 50%;
      translate: -50% 0;
    }
  }
  .section-title__jp {
    font-size: min((16vw / 3.75), 16px);
    line-height: 2;
  }
}
/*section-nav*/
#section-nav {
  margin-top: min((80vw / 3.75), 80px);
  padding: 0 10px;
  .section-nav__lineup {
    font-size: min((12vw / 3.75), 14px);
    line-height: 1.2;
    .base-button__link {
      border-radius: min((4vw / 3.75), 4px);
    }
  }
  + :is(#point, [id^="product_"]) {
    margin-top: min((80vw / 3.75), 80px);
  }
}
/*area-lineup*/
.main:not(.is-page-top) {
  .area-lineup {
    .area-lineup__item {
      &:not(:first-child) {
        --item-gap: min((54vw / 3.75), 54px);
        margin-top: var(--item-gap);
        .is-pc & {
          --item-gap: 30px;
        }
      }
      --item-photo-size-w: 100%;
      --item-photo-size-w-val: 580;
      display: grid;
      grid-template-areas: "photo"
      "main"
      "kazari";
      .is-pc & {
        --item-photo-size-w: calc((var(--item-photo-size-w-val) / var(--default-width-pc-val)) * 100%);
        --item-main-yohaku-yoko: calc((32 / 524) * 100%);
        grid-template-columns: var(--item-photo-size-w) 1fr;
        grid-template-areas:
          "photo main"
          "kazari main";
        grid-template-rows: auto 1fr;
        &:nth-child(even) {
          grid-template-columns: 1fr var(--item-photo-size-w);
          grid-template-areas:
            "main photo"
            "main kazari";
        }
        .area-lineup__item--main {
          .area-lineup__item--title {
            .area-lineup__item:nth-child(odd) & {
              padding-left: var(--item-main-yohaku-yoko);
            }
            .area-lineup__item:nth-child(even) & {
              padding-right: var(--item-main-yohaku-yoko);
            }
          }
          > [class*="area-lineup__item--"]:not(.area-lineup__item--title) {
            .area-lineup__item:nth-child(odd) & {
              margin-left: var(--item-main-yohaku-yoko);
            }
            .area-lineup__item:nth-child(even) & {
              margin-right: var(--item-main-yohaku-yoko);
            }
          }
        }
      }
      .area-lineup__item--photo, .area-lineup__item--kazari {
        grid-area: var(--area);
        width: var(--size-w);
        height: 0;
        padding-top: var(--size-h);
        position: relative;
        &.area-lineup__item--photo {
          --area: photo;
          --size-w: 100%;
          --size-h: calc((410 / var(--item-photo-size-w-val)) * 100%);
        }
        &.area-lineup__item--kazari {
          --area: kazari;
          --size-w: calc((118 / var(--item-photo-size-w-val)) * 100%);
          --size-h: calc((160 / var(--item-photo-size-w-val)) * 100%);
          margin: min((20vw / 3.75), 20px) auto 0;
          .is-pc & {
            margin-top: 10px;
            --pois-yoko: calc((191 / var(--item-photo-size-w-val)) * 100%);
            .area-lineup__item:nth-child(odd) & {
              margin-left: var(--pois-yoko);
            }
            .area-lineup__item:nth-child(even) & {
              margin-right: var(--pois-yoko);
              scale: -1 1;
            }
          }
        }
      }
      .area-lineup__item--main {
        grid-area: main;
        .is-sp & {
          margin-top: min((20vw / 3.75), 20px);
        }
        .area-lineup__item--title {
          color: var(--sub-color1);
          font-size: min((20vw / 3.75), 24px);
          line-height: 1.3;
          margin-bottom: min((12vw / 3.75), 16px);
          .is-pc & {
            border-bottom: 1px solid;
            padding-bottom: 15px;
          }
        }
        .area-lineup__item--text {
          line-height: 1.8;
        }
        .area-lineup__item--more {
          background: var(--sub-color2);
          margin-top: min((20vw / 3.75), 40px);
          padding: min((16vw / 3.75), 24px);
          .area-lineup__item--more--item {
            display: grid;
            grid-template-columns: auto 1fr;
            gap: min((4vw / 3.75), 8px);
            align-items: baseline;
            font-size: min((12vw / 3.75), 14px);
            line-height: calc(16 / 12);
            &:not(:first-child) {
              margin-top: min((8vw / 3.75), 8px);
            }
            .is-pc & {
              line-height: calc(18 / 14);
            }
          }
          .area-lineup__item--more--item--title {
            background: var(--main-color);
            font-size: min((12vw / 3.75), 12px);
            color: #fff;
            padding: 2px 4px;
            --size: calc(4em + 8px);
            &.is-space-between {
              display: flex;
              justify-content: space-between;
            }
            .is-sp & {
              width: var(--size);
              line-height: calc(12 / 10);
            }
            .is-pc & {
              min-width: var(--size);
            }
          }
          .area-lineup__item--more--item--text {
            font-weight: 500;
          }
        }
        .area-lineup__item--buttons {
          margin-top: min((20vw / 3.75), 32px);
        }
      }
    }
  }
}
/*product-lineup*/
.product-lineup {
  --gap: min((30vw / 3.75), 30px);
  display: grid;
  gap: var(--gap);
  @media(width > 640px) {
    --col-num: 2;
    grid-template-columns: repeat(auto-fit, calc((100% - var(--gap) * (var(--col-num) - 1)) / var(--col-num)));
    justify-content: center;
  }
  .is-pc & {
    --col-num: 3;
  }
  .product-lineup__item--link {
    height: 100%;
    display: grid;
    align-content: start;
    grid-template-rows: repeat(2, auto) 1fr;
    background: #fff;
    color: inherit;
    line-height: 1.5;
    border-radius: min((8vw / 3.75), 8px);
    border: 1px solid var(--default-color-gray);
    overflow: hidden;
  }
  .product-lineup__item--photo {
    order: -1;
    width: 100%;
    height: 0;
    padding-top: calc((232 / 348)*100%);
    position: relative;
    .product-lineup__item--photo--item {
      object-position: center bottom;
    }
  }
  .product-lineup__item--type {
    background: var(--main-color);
    color: #fff;
    text-align: center;
    line-height: 1.3;
    font-weight: 900;
    padding: 2px 4px;
  }
  .product-lineup__item--text-wrapper {
    display: grid;
    align-content: space-between;
    .product-lineup__item--detail, .product-lineup__item--price {
      padding: min((12vw / 3.75), 12px) min((16vw / 3.75), 16px) min((14vw / 3.75), 14px);
    }
    .product-lineup__item--title {
      font-size: min((18vw / 3.75), 22px);
      line-height: 1.3;
      margin-bottom: min((12vw / 3.75), 16px);
      &:has(.product-lineup__item--title--rank) {
        display: grid;
        gap: min((12vw / 3.75), 16px);
        .product-lineup__item--title--rank .is-hotel-rank {
          display: block;
          width: 100%;
          height: min((12vw / 3.75), 14px);
          object-fit: contain;
          object-position: left center;
          margin-top: min((4vw / 3.75), 8px);
        }
      }
    }
    .product-lineup__item--tokuten {
      background: #F1EFEA;
      font-size: min((12vw / 3.75), 14px);
      color: var(--default-color-brown-dark2);
      padding: min((6vw / 3.75), 6px) min((12vw / 3.75), 12px);
    }
    .product-lineup__item--labels {
      display: flex;
      flex-wrap: wrap;
      gap: min((8vw / 3.75), 8px);
      font-size: min((12vw / 3.75), 12px);
      line-height: 1;
      color: #fff;
      margin-bottom: min((8vw / 3.75), 8px);
      .product-lineup__item--label {
        background: var(--bg);
        padding: min((6vw / 3.75), 6px) min((8vw / 3.75), 8px);
        border-radius: min((4vw / 3.75), 4px);
        &.is-category {
          --bg: #1091C8;
        }
        &.is-airport {
          --bg: #493EA3;
        }
        &.is-impresso {
          --bg: #A7258F;
        }
        &.is-tokuten {
          --bg: var(--default-color-pink);
        }
        &.is-motenasi {
          --bg: #3CA9B5;
        }
      }
    }
    .product-lineup__item--minmax {
      color: var(--default-color-pink-dark);
      font-size: min((24vw / 3.75), 24px);
      line-height: 1;
      font-weight: 900;
      .is-en, .is-kara {
        font-size: calc(16em / 24);
      }
      &:not(:last-child) {
        margin-bottom: min((8vw / 3.75), 8px);
      }
    }
    .product-lineup__item--dep, .product-lineup__item--notes {
      font-size: min((12vw / 3.75), 12px);
      color: var(--default-color-gray);
    }
  }
  + .product-buttons {
    margin-top: min((40vw / 3.75), 80px);
  }
}
/*point-lineup*/
#point {
  position: relative;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  --shadow: 0px 0px 12px 0px rgba(0, 0, 0, .3);
  .point-bg {
    width: 100%;
    height: 100lvh;
    position: fixed;
    z-index: -1;
    top: 0;
    left: 0;
    .base-picture__image {
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      object-fit: cover;
    }
  }
  .point-lineup__item {
    background: #fff;
    box-shadow: var(--shadow);
    padding: min((10vw / 3.75), 20px);
    &:not(:first-child) {
      margin-top: min((60vw / 3.75), 60px);
    }
    .point-lineup__item--inner {
      border: 1px solid var(--default-color-brown);
      padding: min((15vw / 3.75), 17px) min((18vw / 3.75), 41px) min((22vw / 3.75), 39px);
      position: relative;
      .point-lineup__item--kazari {
        position: absolute;
        width: min((37vw / 3.75), 52px);
        height: min((34vw / 3.75), 49px);
        --posi: max((-6vw / 3.75), -12px);
        &.is-top-left {
          top: var(--posi);
          left: var(--posi);
        }
        &.is-top-right {
          top: var(--posi);
          right: var(--posi);
          scale: -1 1;
        }
        &.is-btm-left {
          bottom: var(--posi);
          left: var(--posi);
          scale: 1 -1;
        }
        &.is-btm-right {
          bottom: var(--posi);
          right: var(--posi);
          scale: -1 -1;
        }
      }
    }
    .point-lineup__item--title {
      display: grid;
      gap: min((16vw / 3.75), 16px);
      justify-items: center;
      .is-pc & {
        grid-auto-flow: column;
        justify-content: center;
        align-items: center;
      }
      .is-sp & {
        text-align: center;
        .point-lineup__item--title--num {
          line-height: .5;
          padding-top: .2em;
        }
      }
      .point-lineup__item--title--num {
        font-family: var(--default-ff-num);
        color: var(--main-color);
        font-size: min((70vw / 3.75), 84px);
        line-height: 1;
        font-weight: 400;
      }
      .point-lineup__item--title--text {
        color: var(--default-color-brown-dark);
        font-size: min((18vw / 3.75), 24px);
        line-height: calc(22 / 18);
      }
    }
    .point-lineup__item--lead {
      margin-top: min((24vw / 3.75), 24px);
      .is-pc & {
        margin-top: 16px;
      }
    }
    .point-lineup__item--main.is-special {
      margin-top: min((36vw / 3.75), 40px);
      &:has(.point-lineup__item--main--conditions, .point-lineup__item--main--notes) {
        .point-lineup__item--main--detail {
          padding-bottom: min((20vw / 3.75), 40px);
          border-bottom: var(--default-border);
        }
      }
      .point-lineup__item--main--detail {
        display: grid;
        .is-pc & {
          grid-template-columns: repeat(3, 1fr);
          gap: 0 calc((60 / 980) * 100%);
        }
        .point-lineup__item--main--detail--item:not(:first-child) {
          .is-sp & {
            margin-top: min((20vw / 3.75), 20px);
            padding-top: min((36vw / 3.75), 36px);
            border-top: var(--default-border);
          }
        }
        .point-lineup__item--main--detail--item--title {
          position: relative;
          display: grid;
          justify-content: center;
          --img-size: min((160vw / 3.75), 230px);
          .is-sp & {
            max-width: var(--img-size);
            margin: auto;
          }
          .point-lineup__item--main--detail--item--title--num {
            font-family: var(--default-ff-num);
            color: var(--default-color-brown);
            font-size: min((50vw / 3.75), 60px);
            line-height: .5;
            font-weight: 400;
            position: absolute;
            top: max((-8vw / 3.75), -8px);
            left: 0;
            .is-pc & {
              top: 8px;
              left: -4px;
            }
          }
          .point-lineup__item--main--detail--item--title--photo {
            height: var(--img-size);
            aspect-ratio: 1;
            border-radius: 100%;
            border: 1px solid var(--default-color-brown);
          }
        }
        .point-lineup__item--main--detail--item--text {
          font-size: min((16vw / 3.75), 18px);
          line-height: calc(26 / 18);
          color: var(--sub-color1);
          margin-top: min((8vw / 3.75), 8px);
        }
        .point-lineup__item--main--detail--item--notes {
          color: var(--default-color-gray);
          font-size: min((12vw / 3.75), 14px);
          line-height: calc(22 / 14);
          margin-top: min((8vw / 3.75), 12px);
          .point-lineup__item--main--detail--item--notes--item {
            padding-left: 1em;
            text-indent: -1em;
          }
        }
      }
      .point-lineup__item--main--conditions, .point-lineup__item--main--notes {
        font-size: min((12vw / 3.75), 14px);
        line-height: calc(22 / 14);
      }
      .point-lineup__item--main--conditions {
        margin-top: min((20vw / 3.75), 30px);
        .point-lineup__item--main--conditions--title {
          color: var(--main-color);
          font-size: min((16vw / 3.75), 18px);
          line-height: calc(22 /18);
          margin-bottom: min((8vw / 3.75), 12px);
        }
        .point-lineup__item--main--conditions--list--item {
          padding-left: 1.25em;
          text-indent: -1.25em;
          &::before {
            content: "♦";
            color: var(--main-color);
            padding-right: .25em;
          }
        }
        + .point-lineup__item--main--notes {
          margin-top: min((8vw / 3.75), 12px);
        }
      }
      .point-lineup__item--main--notes {
        color: var(--default-color-gray);
        margin-top: min((24vw / 3.75), 20px);
        .is-sp & {
          .point-lineup__item--main--notes--item:not(:first-child) {
            margin-top: min((8vw / 3.75), 8px);
          }
        }
      }
      .point-lineup__item--main--buttons {
        margin-top: min((32vw / 3.75), 40px);
      }
    }
    .point-lineup__item--main.is-simple {
      margin-top: min((20vw / 3.75), 20px);
      .point-lineup__item--main--inner {
        display: grid;
        gap: min((16vw / 3.75), 16px) calc((30 / 980) * 100%);
        .is-pc & {
          grid-template-columns: calc((440 / 980) * 100%) 1fr;
        }
      }
      .point-lineup__item--main--detail--texts {
        &:not(:first-child) {
          --yohaku: min((16vw / 3.75), 32px);
          margin-top: var(--yohaku);
          .is-sp & {
            padding-top: var(--yohaku);
            border-top: var(--default-border);
          }
        }
        .point-lineup__item--main--detail--text {
          .is-em {
            color: var(--sub-color1);
            font-size: min((16vw / 3.75), 18px);
            line-height: calc(26 / 18);
          }
          &:not(:last-child) {
            margin-bottom: min((8vw / 3.75), 8px);
          }
        }
        .point-lineup__item--main--detail--notes {
          margin-top: min((8vw / 3.75), 8px);
        }
      }
      .point-lineup__item--main--detail--notes {
        color: var(--default-color-gray);
        font-size: min((12vw / 3.75), 14px);
        line-height: calc(20 / 14);
        margin-top: min((16vw / 3.75), 32px);
        .point-lineup__item--main--detail--notes--item {
          padding-left: 1em;
          text-indent: -1;
          &:not(:first-child) {
            margin-top: min((8vw / 3.75), 8px);
          }
        }
      }
      .point-lineup__item--main--detail--buttons {
        margin-top: min((16vw / 3.75), 32px);
      }
      .point-lineup__item--main--photo {
        order: -1;
        position: relative;
        width: 100%;
        height: 0;
        padding-top: calc((272 / 440) * 100%);
      }
    }
  }
  .point-buttons {
    margin-top: min((60vw / 3.75), 60px);
    .base-button__link {
      box-shadow: var(--shadow);
    }
  }
}
/*------------------------------------------------*/
/*★ ＝＝ footerArea ＝＝ ★*/
/*reco-banner*/
#bannerApp {
  padding: var(--sec-yohaku3) 0;
  &:not(:has(.reco-banner__list)) {
    display: none;
  }
  #reco-banner {
    --col-num: 2;
    --gap: min((16vw / 3.75), 14px);
    &.splide {
      --slider-yohaku-btm: min((34vw / 3.75), 34px);
      max-width: var(--default-width-pc);
      margin: auto;
      @media(width <=580px) {
        .reco-banner__list {
          display: grid;
          margin: auto !important;
        }
      }
      @media(width > 580px) {
        .splide__track {
          --slider-item-w: min((160vw / 3.75), 230px);
          margin: 0 min((18vw / 3.75), 18px);
        }
        .reco-banner__list {
          display: flex;
          justify-content: start;
          width: auto;
          max-width: max-content;
        }
      }
      @media(width > 1140px) {
        .splide__track {
          --slider-item-w: 230px;
          margin: auto;
          overflow: hidden;
        }
      }
    }
  }
  .reco-banner__list {
    /*
    */
    display: grid;
    grid-template-columns: repeat(auto-fit, calc((100% - var(--gap) * (var(--col-num) - 1)) / var(--col-num)));
    justify-content: center;
    gap: var(--gap);
    width: min(var(--default-width-sp), 1002px);
    margin: auto;
    .is-pc & {
      --col-num: 4;
    }
    .is-sp & {
      max-width: 476px;
    }
    .reco-banner__item {
      padding: 5px;
    }
    .reco-banner__link, .reco-banner__image {
      display: block;
    }
    .reco-banner__image {
      object-fit: contain;
    }
  }
}
/*searchApp*/
#searchApp {
  #footerArea:not(:has(.reco-banner__list)) & {
    padding-top: var(--sec-yohaku3);
  }
  padding-bottom: min((40vw / 3.75), 120px);
  .section {
    --sec-yohaku1: 0;
    --sec-yohaku2: 0;
    --sec-yohaku3: 0;
  }
}
/*------------------------------------------------*/
/*★ ＝＝ hover ＝＝ ★*/
@media (hover : hover) and (pointer : fine) {
  .gnavi__portal--button {
    transition: var(--default-hover-transition-background);
    &:hover {
      --bg: var(--default-color-pink-dark);
    }
  }
  .gnavi__portal--list--link {
    transition: var(--default-hover-transition-background);
    &:hover {
      --bg: #E5DFCF;
    }
  }
  .is-pc {
    .gnavi__page--list--item--main {
      .gnavi__page--list--item:not(.is-active) & {
        transition: var(--default-hover-transition-box-shadow);
        &:hover {
          box-shadow: var(--active-border);
        }
      }
    }
    .gnavi__page--list--item--sub--list--item--inner {
      transition: var(--default-hover-transition-box-shadow);
      &:hover {
        box-shadow: var(--active-border);
        --opacity: 1;
      }
      .gnavi__page--list--item--sub--list--item--photo::after {
        content: "";
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, .2);
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        opacity: var(--opacity, 0);
        transition: var(--default-hover-transition-opacity);
      }
    }
  }
  .product-lineup__item--link {
    transition: var(--default-hover-transition-box-shadow);
    &:hover {
      box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.5);
    }
  }
  .reco-banner__link {
    transition: var(--default-hover-transition-opacity);
    &:hover {
      opacity: var(--default-hover-opacity);
    }
  }
}