/* ジャングリア用css */

* {
  color: #02271f;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 58px;
}

@media screen and (max-width: 768px) {
  html {
    scroll-padding-top: 56px;
  }
}

.picture {
  display: block;
  margin: 0 auto;
}

.picture--noMargin {
  margin: 0;
}

/* バナー画像 全体
================================
*/

/* バナーリンク <a> */
.banner {
  display: block;
  width: 100%;
  transition: opacity 0.1s linear;
}

.banner:hover {
  opacity: 0.7;
}

/* バナーリンク plan用 <a> */
.banner--plan {
  filter: drop-shadow(0 0 8px #ccc);
}

@media screen and (max-width: 768px) {
  .banner--plan {
    filter: drop-shadow(0 0 4px #ccc);
  }
}

/* バナー画像 <img> */
.banner__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* パンくず 現在地
================================
*/
.currentPage {
  color: #666;
}

/*
theme/common/css/rwd_style.css 打ち消し
================================
*/
#info #page_info .pageTitle {
  font-size: 12px;
}

@media screen and (max-width: 768px) {
  #info #page_info .pageTitle {
    font-size: 8px;
  }
}

/* 全体共通設定
================================ 
*/
.mainContents {
  width: 100%;
  font-family: Meiryo, sans-serif;
}

/* 矢印アイコン設定 */
:root {
  --arrow-icon: url('/theme/junglia/images/common/arrow.svg');
}

/*
各セクション共通設定
--------------------------------
*/
.section {
  width: 950px;
  margin: 0 auto;
}

@media screen and (max-width: 950px) {
  .section {
    width: 100%;
  }
}

/*
セクション タイトル
--------------------------------
*/
.section__title {
  position: relative;
  display: flex;
  align-items: center;
  width: fit-content;
  height: 33px;
  margin: 0 auto;
}

@media screen and (max-width: 768px) {
  .section__title {
    height: 29px;
  }
}

/*
セクション タイトルデコ ／／
--------------------------------
*/
.section__title::before,
.section__title::after {
  position: absolute;
  top: 6px;
  width: 17.25px;
  height: 16.77px;
  content: '';
  background-image: url('/theme/junglia/images/common/title-deco.svg');
  background-repeat: no-repeat;
  background-position: left center;
}

.section__title::before {
  left: -42px;
}

.section__title::after {
  right: -42px;
}

@media screen and (max-width: 768px) {
  .section__title::before {
    left: -35px;
  }

  .section__title::after {
    right: -35px;
  }
}

/*
各セクションごとのタイトル設定
--------------------------------
*/

/* ジャングリアの魅力 タイトル */
.section__title--feature {
  margin-bottom: 36px;
}

@media screen and (max-width: 480px) {
  .section__title--feature {
    margin-bottom: 56px;
  }
}

.section__title--feature::before,
.section__title--feature::after {
  top: 0;
}

/* 宿泊プランを探す タイトル */
.section__title--plan {
  margin-bottom: 25px;
}

@media screen and (max-width: 768px) {
  .section__title--plan::before {
    left: -30px;
  }

  .section__title--plan::after {
    right: -30px;
  }
}

/* ホテルを探す タイトル */
.section__title--hotel {
  margin-bottom: 42px;
}

@media screen and (max-width: 480px) {
  .section__title--hotel {
    margin-bottom: 37px;
  }
}

/* その他おすすめ情報 タイトル */
.section__title--other {
  margin-bottom: 43px;
}

/*
各セクション タイトル画像
--------------------------------
*/
.titleImage {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* ジャングリアの魅力 タイトル画像 */
.titleImage--feature {
  height: 34px;
}

@media screen and (max-width: 768px) {
  .titleImage--feature {
    height: 68px;
  }
}

/* 宿泊プランを探す タイトル画像 */
.titleImage--plan {
  height: 34px;
}

@media screen and (max-width: 768px) {
  .titleImage--plan {
    height: 30px;
  }
}

/* ホテルを探す タイトル画像 */
.titleImage--hotel {
  height: 32px;
}

@media screen and (max-width: 768px) {
  .titleImage--hotel {
    height: 100%;
  }
}

/* その他おすすめ情報 タイトル画像 */
.titleImage--other {
  height: 31px;
}

@media screen and (max-width: 768px) {
  .titleImage--other {
    height: 29px;
  }
}

/* hero
================================ 
*/
.kv {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* kv下テキスト群 <div> 
--------------------------------
*/
.openingInfo {
  position: relative;
  display: grid;
  gap: 4px;
  padding: 17px 0 23px;
  margin: 0 auto;
  overflow: hidden;
  background: radial-gradient(39.69% 64.84% at 50.68% 25.61%, #02271f 0%, #005844 100%);
}

@media screen and (max-width: 768px) {
  .openingInfo {
    gap: 16px;
    place-content: center;
    padding: 22px 0 25px;
    background: radial-gradient(50% 50% at 50% 58.02%, #02271f 0%, #005844 100%);
  }
}

/* 背景: 葉っぱ画像 */
.openingInfo::before {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  content: '';
  background-image: url('/theme/junglia/images/hero/leafs-pc.svg');
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
}

@media screen and (max-width: 768px) {
  .openingInfo::before {
    background-image: url('/theme/junglia/images/hero/leafs-sp.svg');
    background-position: center;
    background-size: cover;
  }
}

@media screen and (max-width: 480px) {
  .openingInfo::before {
    top: 36px;
    background-size: contain;
  }
}

/* 
画像テキスト: 7月25日グランドオープン！
コメント
////////////////////////////////
kv下テキストは.openingInfoにとっての中央よせではなく、
若干右寄せになっているためposition:relativeで調整。
*/
.openingInfo__date {
  position: relative;
  left: -2px;
  display: block;
  width: 459px;
  height: fit-content;
  margin: 0 auto;
}

@media screen and (max-width: 768px) {
  .openingInfo__date {
    left: auto;
    width: 100%;
    height: 32.7px;
    object-fit: contain;
  }
}

/*
画像テキスト: JUNGLIA OKINAWA（ジャングリア沖縄）興奮と贅沢の旅が、はじまる。
コメント
////////////////////////////////
kv下テキストは.openingInfoにとっての中央よせではなく、
若干右寄せになっているためposition:relativeで調整。
*/
.openingInfo__title {
  position: relative;
  left: 10px;
  z-index: 2;
  display: block;
  width: 673px;
  margin: 0 auto;
  object-fit: contain;
}

@media screen and (max-width: 768px) {
  .openingInfo__title {
    left: auto;
    width: 100%;
    height: 100%;
    max-height: 143px;
    filter: drop-shadow(2px 2px 4px rgba(0, 88, 68, 0.5));
  }
}

/* nav 
================================
*/

/* ナビ <nav>
--------------------------------
*/
.nav {
  position: sticky;
  top: 0;
  z-index: 999;
  height: 58px;
  overflow: hidden;
  background-color: #cdbe8f;
  background-image: linear-gradient(0deg, #a77e00 50%, #c6a131 100%);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

@media screen and (max-width: 768px) {
  .nav {
    height: 56px;
  }
}

/* ナビ追従時に追加 */
.nav--active {
  display: grid;
  width: 100%;
  overflow: visible;
  box-shadow: unset;
}

/* ナビリスト <ul>
--------------------------------
*/
.navList {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  justify-self: center;
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 768px) {
  .navList {
    width: 100%;
  }
}

/*
ナビリスト 固定時の設定
コメント
////////////////////////////////
固定表示時、左右線の基点にするために
position指定。
*/
.nav--active > .navList {
  position: relative;
  width: 950px;
}

@media screen and (max-width: 950px) {
  .nav--active > .navList {
    width: 100%;
  }
}

.nav--active > .navList::before {
  position: absolute;
  left: -1px;
  z-index: 4;
  width: 1px;
  height: 100%;
  content: '';
  border-left: 1px solid #cdbe8f;
}

.nav--active > .navList::after {
  position: absolute;
  right: -1px;
  width: 1px;
  height: 100%;
  content: '';
  border-right: 1px solid #cdbe8f;
}

@media screen and (max-width: 768px) {
  /* コメント
  //////////////////////////////// 
  SP表示の際はナビリスト横線を非表示
  */
  .nav--active > .navList::before,
  .nav--active > .navList::after {
    display: none;
  }
}

/* ナビアイテム <li>
--------------------------------
*/
.navItem {
  position: relative;
  display: grid;
  place-items: center;
  height: 100%;
  background-image: linear-gradient(0deg, #a77e00 50%, #c6a131 100%);
  border-right: 1px solid #cdbe8f;
}

@media screen and (max-width: 768px) {
  .navItem {
    height: 56px;
  }
}

.navItem:last-child {
  border-right: none;
}

/* ナビアイテム ホバー時の設定 */
.navItem::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  margin: auto;
  content: '';
  background-image: linear-gradient(0deg, #806100 50%, #b38807 100%);
  opacity: 0;
  transition: all 0.3s ease-in-out;
}

.navItem:hover::before {
  opacity: 1;
}

/* ナビアイテム アイコン
--------------------------------
*/
.navItem::after {
  position: absolute;
  right: 12px;
  width: 16px;
  height: 16px;
  content: '';
  background-image: url('/theme/junglia/images/nav/arrow.svg');
  background-size: contain;
}

@media screen and (max-width: 768px) {
  .navItem::after {
    top: calc(50% - 3px);
    right: 5.5px;
    width: 12px;
    height: 12px;
  }
}

/* ナビリンク <a>
--------------------------------
*/
.navLink {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding: 18px 0;
}

@media screen and (max-width: 768px) {
  .navLink {
    padding: 9px 0;
  }

  .navLink--feature {
    padding: 0;
    padding-top: 5px;
  }
}

/*
ナビリンク 「宿泊プランを探す」「セール開催中」
コメント
//////////////////////////////// 
要素 PCでは横並び、SPでは縦並び
*/
.navLink--plan {
  display: flex;
  gap: 10px;
  place-content: center;
}

@media screen and (max-width: 768px) {
  .navLink--plan {
    flex-direction: column;
    gap: 3px;
    padding: 15.5px 0;
  }
}

/* ナビ画像 <img>
--------------------------------
*/
.navLink__img {
  display: block;
  width: auto;
  height: 100%;
  object-fit: contain;
}

/* ナビ画像 「ホテルを探す」 */
.navLink__img--hotel {
  height: 18px;
}

@media screen and (max-width: 768px) {
  .navLink__img {
    height: auto;
    max-height: fit-content;
    margin: 0 auto;
  }

  /* ナビ画像 「ジャングリアの魅力」 */
  .navLink__img--feature {
    max-height: 34px;
  }

  /* ナビ画像 「宿泊プランを探す」 */
  .navLink__img--plan {
    position: relative;
    left: -4px;
  }
}

/*
ナビアイテム 「宿泊プランを探す」 表示切り替え
//////////////////////////////// 
*/

.navItem--sale,
.navItem--normal {
  display: none;
}

[data-type='state--jotsw'] .navItem--sale,
[data-type='state--sale'] .navItem--sale {
  display: grid;
}

[data-type='state--normal'] .navItem--normal {
  display: grid;
}

/* ナビデコ <span> */
.navDeco {
  display: grid;
  width: fit-content;
  padding: 2px 10px;
  font-family: 'メイリオ', Meiryo, sans-serif;
  font-size: 12px;
  font-weight: bold;
  line-height: 1.75;
  color: #ea580c;
  background: #fff;
  border-radius: 4px;
}

@media screen and (max-width: 768px) {
  .navDeco {
    justify-self: center;
    padding: 2px 0;
    margin: 0 auto;
    border-radius: 2px;
  }
}

/* ナビデコ <img> */
.navDeco__img {
  display: block;
  object-fit: contain;
}

@media screen and (max-width: 768px) {
  .navDeco__img {
    height: 9px;
  }
}

/* feature 
================================
*/
.feature {
  padding: 74px 0 77px;
  margin-bottom: 75px;
  background-color: #005844;
  background-image: url('/theme/junglia/images/feature/bg.svg');
  background-repeat: no-repeat;
  background-position: center calc(100% + 1px);
  background-size: contain;
}

@media screen and (max-width: 768px) {
  .feature {
    padding-top: 94px;
    margin-bottom: 40px;
  }
}

/* 「宿泊プランを探す」セクション非表示時 */
[data-type='state--none'] .feature {
  margin-bottom: 144px;
}

@media screen and (max-width: 768px) {
  [data-type='state--none'] .feature {
    margin-bottom: 74px;
  }
}

.section__body--feature {
  padding: 0 28px;
}

@media screen and (max-width: 768px) {
  .section__body--feature {
    padding: 0 20px;
  }
}

.lead--feature {
  margin-bottom: 42px;
}

.lead__text--feature {
  line-height: 1.8;
  color: #fff;
}

.features {
  display: grid;
  gap: 66px;
  margin-bottom: 50px;
}

@media screen and (max-width: 480px) {
  .features {
    margin-bottom: 53px;
  }
}

.featuresItem {
  display: grid;
  grid-template: repeat(3, auto) / 330px 1fr;
  gap: 16px 22px;
  align-items: center;
}

.featuresItem--reverse {
  grid-template: repeat(3, auto) / 1fr 330px;
}

.featuresImage {
  grid-row: 1 / -1;
  width: 100%;
}

@media screen and (max-width: 480px) {
  .featuresImage {
    margin-bottom: 9px;
  }
}

.featuresImage--reverse {
  grid-column: 2;
}

.featuresImage__img {
  box-sizing: border-box;
  width: 100%;
  padding: 4px;
  background: #fff;
  filter: drop-shadow(6px 6px 0 rgba(0, 0, 0, 0.1));
}

@media screen and (max-width: 768px) {
  .featuresImage__img {
    height: 100%;
  }
}

@media screen and (max-width: 768px) {
  .featuresItem,
  .featuresItem--reverse {
    grid-template: repeat(4, auto) / 1fr;
    min-width: 0;
  }

  .featuresImage--reverse {
    grid-column: 1;
  }
}

@media screen and (max-width: 480px) {
  .featuresItem,
  .featuresItem--reverse {
    gap: 0;
  }
}

.featuresTitle {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  padding: 11.5px 16px;
  background-color: #08785f;
}

@media screen and (max-width: 480px) {
  .featuresTitle {
    flex-direction: column;
    gap: 14px;
    align-items: flex-start;
    padding: 12px 12px 6px;
    margin-bottom: 16px;
    font-weight: 300;
  }
}

.featuresTitle--spa {
  gap: 21px;
  padding: 9px 16px 7px;
  background-color: #c6a131;
}

@media screen and (max-width: 480px) {
  .featuresTitle--spa {
    gap: 6px;
    padding: 14px 10px 5px;
  }
}

.featuresTitleImage {
  height: 21.5px;
  object-fit: contain;
}

@media screen and (max-width: 480px) {
  .featuresTitleImage {
    height: 19.5px;
    margin: 0;
  }
}

.featuresTitleImage--safari {
  height: 22px;
}

.featuresTitleImage--ballon {
  height: 23px;
}

.featuresTitleImage-yambaru {
  height: 22px;
}

.featuresTitleImage--spa {
  height: 29px;
}

.featuresTitleImage__img {
  height: 100%;
  object-fit: contain;
}

.featuresTitle__text {
  font-size: 18px;
  font-weight: normal;
  line-height: 1.3;
  color: #fff;
}

@media screen and (max-width: 480px) {
  .featuresTitle__text {
    font-weight: 300;
  }
}

.featuresItem__lead {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.4;
  color: #fff;
}

@media screen and (max-width: 480px) {
  .featuresItem__lead {
    margin-bottom: 16px;
  }
}

.featuresText {
  display: grid;
}

.featuresText--note {
  gap: 12px;
}

.note {
  font-size: 14px;
  color: #fff;
}

.featuresText__text {
  font-size: 16px;
  line-height: 1.8;
  color: #fff;
}

.featuresText__text--note {
  font-size: 14px;
}

.annotations {
  margin: 0 44px 0 65px;
  list-style-type: disc;
}

@media screen and (max-width: 480px) {
  .annotations {
    margin: 0 27px 0 51px;
  }
}

.annotations__text {
  font-size: 14px;
  line-height: 1.4;
  color: #fff;
  list-style: disc;
}

.bold {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.4;
  color: #fff;
}

/* plan 
================================
*/
.plan {
  /* ↓theme_common.cssを上書きするために必要 */
  padding: 0;

  /* アンカーリンク移動時に表示する余白を作るために必要 */
  padding-top: 75px;
  margin-bottom: 144px;

  /* ↓theme_common.cssを上書きするために必要 */
  background-color: #fff;
}

@media screen and (max-width: 768px) {
  .plan {
    padding-top: 40px;
    margin-bottom: 75px;
  }
}

/* 宿泊プランバナー <div> */
.section__body--plan {
  padding: 20px 24.5px 14px;
  background-color: #fffae5;
  border-radius: 8px;
}

@media screen and (max-width: 768px) {
  .section__body--plan {
    padding: 20px 11px 13px;
    border-radius: unset;
  }
}

/*
宿泊プランバナー 表示切り替え
//////////////////////////////// 
*/

.section__body--jotsw,
.section__body--sale,
.section__body--normal {
  display: none;
}

[data-type='state--jotsw'] .section__body--jotsw {
  display: block;
}

[data-type='state--sale'] .section__body--sale {
  display: block;
}

/* セクションタイトル下のマージン削除 */
[data-type='state--normal'] .section__title--plan {
  margin-bottom: 0;
}

[data-type='state--normal'] .section__body--normal {
  display: block;
  background-color: #fff;
}

[data-type='state--none'] .plan {
  display: none;
}

/* リード文囲み <div> */
.lead--plan {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  margin-bottom: 19px;
}

@media screen and (max-width: 768px) {
  .lead--plan {
    flex-direction: column;
    gap: 4px;
    margin-bottom: 8px;
  }
}

/* リード文 <p>
--------------------------------
*/
.lead__text--plan {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.3;
  color: #e67611;
}

@media screen and (max-width: 768px) {
  .lead__text--plan {
    font-family: 'ヒラギノ角ゴ Pro W3', sans-serif;
    font-size: 16px;
    font-weight: 600;
  }
}

/* リード文 強調 <em> */
.lead__text--em {
  font-size: 24px;
  letter-spacing: 0.04em;
}

@media screen and (max-width: 768px) {
  .lead__text--em {
    font-family: 'ヒラギノ角ゴ Pro W3', sans-serif;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.07em;
  }
}

/* hotel 
================================
*/
.hotel {
  padding: 80px 0 72px;
  margin-bottom: 150px;
  background-color: #ebf0ed;
  background-image: url('/theme/junglia/images/hotel/bg.png');
  background-repeat: no-repeat;
  background-position: top;
  background-size: contain;
}

@media screen and (max-width: 768px) {
  .hotel {
    margin-bottom: 80px;
  }
}

.section__body--hotel {
  padding: 0 65px;
}

@media screen and (max-width: 768px) {
  .section__body--hotel {
    padding: 0;
    overflow: hidden;
  }
}

.lead--hotel {
  margin-bottom: 40px;
}

@media screen and (max-width: 768px) {
  .lead--hotel {
    margin: 0 20px 37px;
  }
}

.lead__text--hotel {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.3;
  color: #006b53;
  text-align: center;
}

@media screen and (max-width: 480px) {
  .lead__text--hotel {
    line-height: 1.7;
    text-align: left;
  }
}

.highlight {
  margin-right: 5px;
  font-size: 20px;
  font-style: normal;
  color: #006b53;
  text-decoration-line: underline;
  text-decoration-thickness: 8px;
  text-decoration-color: #c0cfc6;
  text-underline-offset: -4px;
  text-decoration-skip-ink: none;
}

.cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 19px;
  margin-bottom: 39px;
  touch-action: auto;
}

@media screen and (max-width: 768px) {
  .cards {
    display: flex;
    gap: 12px;
    align-items: stretch;
    padding: 0 20px;
    margin-bottom: 56px;
    overflow-x: auto;
  }
}

.card {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  gap: 17px;
  padding: 19px;
  background-color: #fff;
  border: 1px solid #ebf0ed;
  border-radius: 8px;
  box-shadow: 0 0 8px rgba(204, 204, 204, 0.25);
}

@media screen and (max-width: 768px) {
  .card {
    display: flex;
    flex-shrink: 0;
    flex-direction: column;
    width: 83.75%;
    padding-top: 21px;
  }
}

.card__title {
  display: grid;
  height: 100%;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.4;
}

@media screen and (max-width: 768px) {
  .card__title {
    flex-grow: 1;
    height: 50.38px;
  }
}

.cardImage {
  display: block;
  width: fit-content;
  height: 270px;
}

@media screen and (max-width: 950px) {
  .cardImage {
    flex-grow: 1;
    width: 100%;
    height: auto;
  }
}

.cardInfo {
  margin: 0 11.5px;
}

@media screen and (max-width: 768px) {
  .cardInfo {
    flex-grow: 1;
    height: 62.39px;
    margin: 0;
  }
}

.cardInfo__text {
  line-height: 1.3;
}

.cardLinks {
  display: grid;
  gap: 11px;
}

@media screen and (max-width: 768px) {
  .cardLinks {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
  }
}

.cardLink {
  position: relative;
  display: grid;
  place-items: center;
  height: 40px;
  font-weight: bold;
  border: 1px solid #005844;
  border-radius: 128rem;
  transition: all 0.3s linear;
}

.cardLink:hover {
  background-color: #ebf0ed;
}

.cardLink--green {
  height: 48px;
  color: #fff;
  background-color: #005844;
  transition: 0.3s ease-in-out;
}

.cardLink--green:hover {
  background-color: #08785f;
  border-color: #08785f;
}

.cardLink::after {
  position: absolute;
  right: 24px;
  width: 20px;
  height: 20px;
  content: '';
  background-color: #005844;
  mask-image: var(--arrow-icon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

@media screen and (max-width: 768px) {
  .cardLink::after {
    right: 15px;
  }
}

.cardLink--green::after {
  background-color: #fff;
  mask-image: var(--arrow-icon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.cardLink__img {
  z-index: 2;
}

.moreLink {
  width: 334px;
  height: fit-content;
  padding: 17px 46px 17px 34px;
  margin: 0 auto;
  font-size: 18px;
}

.moreLink::after {
  right: 20px;
}

.cardLink:visited,
.cardLink:link {
  color: #fff;
}

@media screen and (max-width: 768px) {
  .cardLink:visited,
  .cardLink:link {
    color: #fff !important;
  }
}

/* other 
================================
*/
.other {
  margin-bottom: 5px;
}

.section__body--other {
  display: grid;
  grid-template: repeat(2, auto) / repeat(2, 1fr);
  gap: 20px 16px;
}

@media screen and (max-width: 950px) {
  .section__body--other {
    margin: 0 20px;
  }
}

@media screen and (max-width: 768px) {
  .section__body--other {
    grid-template: repeat(3, auto) / 1fr;
    row-gap: 17px;
  }
}

.ticketWrap {
  display: flex;
  grid-column: 1 / -1;
}

@media screen and (max-width: 768px) {
  .ticketWrap {
    flex-direction: column-reverse;
  }
}

.ticketBody {
  width: 100%;
  padding: 28px 28px 24px;
  background-image: linear-gradient(90deg, #004737, #08785f);
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
}

@media screen and (max-width: 768px) {
  .ticketBody {
    display: grid;
    place-items: center;
    padding: 0;
    border-top-left-radius: 0;
    border-bottom-right-radius: 10px;
    border-bottom-left-radius: 10px;
  }
}

@media screen and (max-width: 768px) {
  .ticketBody__above {
    padding: 28px 20px 0 27.5px;
  }

  .ticketBody__below {
    padding: 0 15px 24px 22.5px;
  }
}

.ticketBody__title,
.ticketBody__lead {
  margin-bottom: 22px;
  color: #fff;
}

@media screen and (max-width: 768px) {
  .ticketBody__title,
  .ticketBody__lead {
    margin-bottom: 20px;
  }
}

.ticketBody__title {
  position: relative;
  padding-top: 72px;
  font-size: 26px;
  font-weight: bold;
  line-height: 1.3;
}

@media screen and (max-width: 768px) {
  .ticketBody__title {
    padding-top: 80px;
    text-align: center;
  }
}

.ticketBody__title::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 53.1px;
  height: 54.71px;
  content: '';
  background-image: url('/theme/junglia/images/others/icon-ticket.svg');
  background-repeat: no-repeat;
}

@media screen and (max-width: 768px) {
  .ticketBody__title::before {
    top: 10px;
    right: 0;
    margin: 0 auto;
  }
}

.spBreak {
  display: inline-block;
  width: 26px;
}

@media screen and (max-width: 768px) {
  .spBreak {
    display: block;
    width: 0;
    height: 0;
  }
}

.ticketBody__lead {
  font-weight: normal;
  line-height: 1.8;
}

.ticket__link {
  position: relative;
  right: -28px;
  display: flex;
  place-items: center;
  width: fit-content;
  padding: 20px 56px 20px 43px;
  margin: 0 auto;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  background-color: #c6a131;
  border-radius: 128rem;
  transition: all 0.3s linear;
}

@media screen and (max-width: 768px) {
  .ticket__link {
    position: relative;
    right: 0;
    width: 100%;
    padding: 20px 56px 20px 43px;
  }
}

.ticket__link:hover {
  background-color: #a77e01;
}

.ticket__link::after {
  position: absolute;
  right: 20px;
  width: 20px;
  height: 20px;
  content: '';
  background-color: #fff;
  mask-image: var(--arrow-icon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.ticket__link:visited {
  color: #fff;
}

@media screen and (max-width: 768px) {
  .ticket__link:visited {
    color: #fff !important;
  }
}

.ticketDeco {
  position: relative;
  display: grid;
  place-content: center;
  padding: 0 12px;
  background-color: #014737;
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
}

@media screen and (max-width: 768px) {
  .ticketDeco {
    height: 50px;
    padding: 12px 0;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 0;
  }
}

/* 白丸 */
.ticketDeco::before,
.ticketDeco::after {
  position: absolute;
  width: 20px;
  height: 20px;
  content: '';
  background-color: #fff;
  border-radius: 50%;
}

.ticketDeco::before {
  top: -10px;
  left: -25px;
}

@media screen and (max-width: 768px) {
  .ticketDeco::before {
    top: auto;
    bottom: -23px;
    left: -10px;
  }
}

.ticketDeco::after {
  bottom: -10px;
  left: -25px;
}

@media screen and (max-width: 768px) {
  .ticketDeco::after {
    right: -10px;
    bottom: -23px;
    left: auto;
  }
}

.ticketDeco__elipce {
  position: absolute;
  top: -3px;
  left: -20px;
  width: 10px;
  height: 100%;
  content: '';
  background-image: url('/theme/junglia/images/others/white-elipse-portrait.svg');
  background-repeat: repeat-y;
}

@media screen and (max-width: 768px) {
  .ticketDeco__elipce {
    top: auto;
    bottom: -16px;
    left: -7px;
    width: 100%;
    height: 10px;
    background-image: url('/theme/junglia/images/others/white-elipse-landscape.svg');
    background-repeat: repeat-x;
  }
}

.ticketDeco__img {
  display: block;
  width: 26px;
  height: 118px;
  object-fit: contain;
}

@media screen and (max-width: 768px) {
  .ticketDeco__img {
    width: 100%;
    transform: rotate(-90deg);
  }
}

/* approvalNumber 
================================
*/
.approvalNumber {
  margin-bottom: 40px;
}

@media screen and (max-width: 950px) {
  .approvalNumber {
    padding-left: 20px;
    margin-bottom: 20px;
  }
}

.approvalNumber__text {
  font-family: Meiryo, sans-serif;
  font-size: 10px;
  line-height: 1.3;
  color: #333;
}

@media screen and (max-width: 768px) {
  .approvalNumber__text {
    font-weight: 300;
  }
}
