@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Zen+Old+Mincho:wght@400;700&display=swap");

/* ============================================
   CSS変数定義
============================================ */
:root {
  --content-color-base: #2c2a29;
  --content-color-red: #cc0404;
  --content-color-red-2: #b00707;
  --content-color-yellow: #fcc85b;
  --content-color-beige: #f6f1eb;
  --content-color-cream: #fffcf7;
  --content-color-lightgray: #e9ecf2;
  --content-color-gray: #d9d9d9;
  --content-color-kokoro: #21218e;
  --content-color-premium: #967915;
  --content-color-select: #1473bc;
  --content-color-value: #c24060;
  --bg-img-setting: no-repeat center center / contain;
  --bg-cover-setting: no-repeat center top / cover;
  --bg_beige-img: url(../images/bg_beige.webp) repeat;
  --bg_gray-img: url(../images/bg_gray.webp) repeat;
  --content-width-sp: calc(336vw / 3.75);
  --content-width-pc: 1104px;
  --content-width: min(var(--content-width-sp), var(--content-width-pc));
  --content-bg-width-pc: max(100%, 1920px);
  --font-size-pc: 14px;
  --font-size-sp: 14px;
  --font-base: "Zen Old Mincho", serif;
  --font-sans: "Noto Sans JP", sans-serif;
  --content-font-size: min(var(--font-size-sp), var(--font-size-pc));
  --content-hover-speed: 0.3s;
  --content-arrow-right: url(/cmn/icon2/chevron_right.svg);
}

/* ============================================
   表示切り替え
============================================ */
.pc-only {
  display: block !important;
}

.tb-only {
  display: none !important;
}

.sp-only {
  display: none !important;
}

@media (max-width: 840px) {
  .tb-only {
    display: block !important;
  }
}

@media (max-width: 768px) {
  .pc-only {
    display: none !important;
  }

  .sp-only {
    display: block !important;
  }
}

/* ============================================
   基本設定
============================================ */
body {
  overflow-x: hidden;
}

.main {
  font-family: var(--font-sans);
  font-size: var(--content-font-size);
  font-weight: bold;
  color: var(--content-color-base);
  position: relative;
}

.main * {
  box-sizing: border-box;
}

a {
  transition: var(--content-hover-speed);
}

.content__wrapper > .inner {
  width: var(--content-width);
  margin: auto;
}

@media (max-width: 768px) {
}

/* ============================================
   コンテンツ
============================================ */

/* =============================
   タイトル・見出し
============================= */
.content__wrapper .inner,
.content__wrapper .inner-wide {
  position: relative;
}

/* =============================
   タイトル・見出し
============================= */

.head-title {
  color: #2c2a29;
  text-align: center;
  font-size: 36px;
  font-weight: 700;
  line-height: 130%;
  margin-bottom: 50px;
}

@media (max-width: 768px) {
  .head-title {
    font-size: 26px;
    margin-bottom: 32px;
  }
}

/* =============================
   トップページMV
============================= */
.mv {
  margin-bottom: 16px;
}

.mv__wrapper {
  color: #fff;
  text-align: center;
  font-style: normal;
  background: #001eb4;
  padding: 36px 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  height: 100%;
}

.mv__img-wrapper .mv__image {
  width: 100%;
  height: 100%;
  display: block;
}

.mv__img-wrapper .mv__image img {
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
}

.mv__subtitle {
  margin-bottom: 18px;
}

.mv__title {
  font-size: 41px;
  margin-bottom: 25px;
  font-weight: 700;
  line-height: 130%;
}

.mv__description {
  font-weight: 700;
  line-height: 190%;
}

@media (min-width: 769px) {
  .mv {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 420px;
    overflow: hidden;
  }

  .mv__wrapper {
    width: 40%;
    min-width: 500px;
  }

  .mv__img-wrapper {
    width: 60%;
    max-width: calc(100% - 500px);
    height: 100%;
  }
}

@media (max-width: 768px) {
  .mv__wrapper {
    padding: 30px 20px;
  }

  .mv__subtitle {
    margin-bottom: 18px;
  }

  .mv__title {
    margin-bottom: 16px;
  }

  .mv__description {
    text-align: left;
  }
}

/* =============================
   scroll
============================= */
.autoscroll {
  width: 100%;
  overflow: hidden;
  margin-bottom: 72px;
}

.autoscroll__list {
  margin: 0;
  padding: 0;
  list-style: none;

  display: flex;
  width: max-content;
  will-change: transform;
}

.autoscroll__item {
  width: calc(100vw / 4.5 - 2 * 4px);
  box-sizing: border-box;
  height: auto;
  padding: 0 4px;
  aspect-ratio: 260 / 150;
}

.autoscroll__item img {
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 768px) {
  .autoscroll__item {
    width: calc(100vw / 2.5 - 8px);
  }
}

/* =============================
   シーン
============================= */
.scene {
  padding-bottom: 86px;
}

/* ==========
scene-info
========== */
.scene-info__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
  margin-bottom: 80px;
}

.scene-info__item {
  grid-column: span 1 / span 1;
  display: flex;
  gap: 8px;
  align-items: center;
}

.--kokoro-odoru {
  color: #21218e;
}

.--select {
  color: #1473bc;
}

.--premium {
  color: #967915;
}

.--value {
  color: #c24060;
}

.scene-info__logo {
  width: 180px;
  height: auto;
}

.scene-info__text {
  width: calc(100% - 180px - 8px);
  box-sizing: border-box;
  font-size: 18px;
  font-weight: 700;
}

@media (max-width: 840px) {
  .scene-info__list {
    gap: 48px 24px;
    margin-bottom: 48px;
  }

  .scene-info__logo,
  .scene-info__text {
    width: 100%;
  }

  .scene-info__item {
    flex-wrap: wrap;
    justify-content: flex-start;
    text-align: center;
    flex-direction: column;
  }
}

@media (max-width: 768px) {
  .scene-info__logo,
  .scene-info__text {
    font-size: 12px;
  }
  .scene-info__logo img {
    /* width: 130px; */
    width: auto;
    max-width: 100%;
    height: 35px;
  }
}
/* ==========
scene-plan
========== */
.scene-plan {
  margin-bottom: 96px;
}

.scene-plan__head-title span {
  position: relative;
  padding: 0 50px;
  display: inline-block;
}

.scene-plan__head-title span::before {
  content: url(../images/illust_hukidashi_left.svg);
  position: absolute;
  left: 0;
  bottom: 0;
  width: 35px;
  height: 36.488px;
}

.scene-plan__head-title span::after {
  content: url(../images/illust_hukidashi_right.svg);
  position: absolute;
  right: 0;
  bottom: 0;
  width: 35px;
  height: 36.488px;
}

.scene-plan__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px 24px;
}

.scene-plan__item {
  grid-column: span 1 / span 1;
}

.scene-plan__item-image-wrapper {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: 10px;
}

.scene-plan__item-image {
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
}

.scene-plan__item-title {
  margin-bottom: 6px;
  font-size: 20px;
  font-weight: 700;
}

.scene-plan__item-text {
  margin-bottom: 16px;
  font-weight: 700;
}

.scene-plan__item-label-list {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}
.scene-plan__item-label-img {
  height: 37px;
}

@media (max-width: 768px) {
  .scene-plan {
    margin-bottom: 72px;
  }

  .scene-plan__list {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .scene-plan__item-label-img {
    height: 34px;
  }
  .scene-plan__head-title span {
    padding: 0;
  }
  .scene-plan__head-title span::before,
  .scene-plan__head-title span::after {
    display: none;
  }
}

/* ==========
table
========== */
.plan-table {
  border-collapse: collapse;
  width: 100%;
  margin: 0;
  padding: 0;
  table-layout: fixed;
}
.arrow-box td {
  padding: 8px 0;
}
.arrow {
  display: grid;
  grid-template-columns: 20px 1fr 20px;
}
.arrow::before {
  content: "";
  background: var(--content-color-premium);
  clip-path: polygon(50% 0, 0 50%, 50% 100%);
  width: 42px;
  height: 40px;
  display: block;
}
.arrow::after {
  content: "";
  background: var(--content-color-value);
  clip-path: polygon(0 0, 0 100%, 50% 50%);
  width: 40px;
  height: 40px;
  display: block;
}
.arrow-style {
  background: linear-gradient(to right, var(--content-color-premium) 0%, var(--content-color-value) 100%);
  padding: 8px;
  display: flex;
  justify-content: space-between;
}

.arrow span {
  font-size: 16px;
  font-weight: bold;
  color: #fff;
}
.plan-table__header-cell {
  border: 2px solid #e2e2e2;
  color: #fff;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  padding: 12px;
}

.plan-table__header-cell--blank {
  border: #fff;
  background: #fff;
  width: 6em;
}

.plan-table__row-header-cell {
  text-align: center;
  background: #e6e6e6;
  border-bottom: 2px solid #fff;
  padding: 24px 4px;
  position: relative;
}
.plan-table__row-header-cell .plan-table__row-midashi {
  font-weight: bold;
}
.plan-table__row-header-cell .plan-table__row-midashi::before {
  content: "";
  background: no-repeat center top / cover;
  width: 74px;
  height: 30px;
  display: block;
  margin: auto;
}
.plan-table__row-header-cell .plan-table__row-midashi.is-tour::before {
  background-image: url(../images/logo_ciao.svg);
}
.plan-table__row-header-cell .plan-table__row-midashi.is-bus::before {
  background-image: url(../images/logo_bustour.svg);
}
.plan-table__row-header-cell .plan-table__row-midashi.is-imp::before {
  background-image: url(../images/logo_impresso.svg);
}
.plan-table__row-header-cell .plan-table__row-midashi::after {
  content: "";
  mask: url(/cmn/icon2/help.svg) no-repeat center / contain;
  background: #2c2a29;
  width: 16px;
  height: 16px;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
}
.plan-table tr:last-child .plan-table__row-header-cell {
  border-bottom: none;
}
.ui-static-notification:hover .ui-static-notification-text {
  text-decoration: none;
  color: #2c2a29;
}

.plan-table__row-header-img {
  width: 180px;
  height: auto;
  aspect-ratio: 10/3;
}
.plan-table__row--tour .plan-table__data-cell:nth-child(2) {
  vertical-align: middle;
}

.plan-table__data-cell {
  border: 2px solid #e2e2e2;
  font-size: 14px;
  padding: 8px 8px 64px;
  position: relative;
  vertical-align: initial;
}
.plan-table__catchcopy {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 8px;
}
.plan-table__catchcopy.kokoroodoru {
  color: var(--content-color-kokoro);
}
.plan-table__catchcopy.premium {
  color: var(--content-color-premium);
}
.plan-table__catchcopy.select {
  color: var(--content-color-select);
}
.plan-table__catchcopy.value {
  color: var(--content-color-value);
}
.plan-table__text {
  margin-bottom: 4px;
  font-size: 16px;
  font-weight: 500;
}
.plan-table__link-area {
  text-align: right;
  position: absolute;
  bottom: 8px;
  right: 8px;
}
.plan-table__link {
  font-weight: 500;
  color: #001eb4;
  text-decoration: none;
  position: relative;
  display: block;
  padding-right: 16px;
}
.plan-table__link.is-hide {
  display: none;
}

/* .plan-table__link::before,
.plan-table__link::after {
  content: "";
  position: absolute;
  top: calc(50% - 1.5px);
  right: 0;
  width: 8.4px;
  height: 3px;
  border-radius: 9999px;
  background-color: #001eb4;
  transform-origin: calc(100% - 1.5px) 50%;
}

.plan-table__link::before {
  transform: rotate(51.35deg);
}

.plan-table__link::after {
  transform: rotate(-51.35deg);
} */

.plan-table__link::after {
  content: "";
  -webkit-mask: var(--bg-img-setting) var(--content-arrow-right);
  mask: var(--bg-img-setting) var(--content-arrow-right);
  background: #001eb4;
  width: 16px;
  height: 16px;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

.plan-table__link:hover {
  text-decoration: underline;
}
.ui-static-heading-size-medium {
  font-size: 22px;
}
.ui-static-modal-overlay .ui-static-modal-content {
  padding: 16px 24px 8px;
}

@media (max-width: 1103px) {
  .plan-table__scroll {
    overflow: scroll;
    width: 100vw;
    margin: 0 calc(50% - 50vw);
  }

  .plan-table {
    width: 150%;
  }

  .plan-table__row-header-img {
    width: 150px;
    height: auto;
  }
}

@media (max-width: 768px) {
  .plan-table {
    width: 300%;
  }
}

/*** バナー ***/
.bnr-container {
  display: grid;
  gap: 40px;
  margin-top: 64px;
}
.bnr-content .sub-title {
  font-size: 24px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 16px;
}
.bnr-list {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}
.bnr-list > li > a {
  display: block;
}
.bnr-list > li > a:hover {
  opacity: 0.8;
}
.bnr-list > li > a > img {
  width: 100%;
}
.bnr-list.area > li > a {
  overflow: hidden;
  transition: var(--content-hover-speed);
  position: relative;
  z-index: 1;
}
.bnr-list.area > li > a::before {
  content: "";
  background: linear-gradient(transparent 0, rgba(0 0 0 / 50%) 100%);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
.area-name {
  position: absolute;
  right: 0;
  bottom: 20px;
  left: 0;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  z-index: 50;
}

@media (max-width: 768px) {
  .bnr-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
}

/* =============================
   検索モジュール
============================== */
.search__wrapper {
  padding: 80px 0;
  background: url("../images/bg_search.webp") no-repeat center;
  background-size: cover;
}
.search__head-title {
  color: #fff;
}

.main .rn-searchMod__formSection {
  width: 100%;
}

@media (max-width: 768px) {
  .search__wrapper {
    padding: 40px 0;
  }
  .search__wrapper .inner {
    padding: 0;
    width: 100vw;
  }
}
