/* section class="main-visual"
----------------------------------------------- */
.main-Visual {
  background-color: #fff;
}

.visual__wrapper {}

.visual__image {
  display: block;
  width: var(--sp-width);
  height: auto;
  object-fit: cover;
  margin: 0;
}

.visual-text__text {
  font-family: Noto Serif JP;
  font-weight: 500;
  font-size: 1.125rem;
  /*18px*/
  line-height: 31px;
  letter-spacing: 0.01em;
  text-align: center;
  padding: 19px 0 0;
}

/*認証ボタン非表示　スペース調整*/
.warning-content {
  padding: 12px 0 27px;
}

.registration {
  margin-bottom: 13px;
}


/*----------------------
  東海道新幹線 車内限定コンテンツ
----------------------*/
.content {
  background-color: #DEF4E0;
}

.content-top {
  padding-bottom: 56px;
}

.content__wrapper {
  margin: 0 auto;
}

.heading-decoration {
  color: #15A20B;
  position: relative;
  padding: 52px 0 28px;
}

.heading-decoration::before,
.heading-decoration::after {
  position: absolute;
  content: "";
  top: 0;
  bottom: 0;
  margin: auto 0;
  left: -22.5%;
  width: 100%;
  height: 20px;
  background-image: url(/view/event/ffviir_ig/img/decoration02.webp);
  transform: translateX(50%) translateY(-272%);
  background-size: contain;
  background-repeat: no-repeat;
}

.heading-decoration::after {
  transform: translateX(50%) translateY(456%);
}

.heading__title {
  display: flex;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 1.25rem;
  /*20px*/
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  padding: 14px 0.8rem 0px 0rem;
  justify-content: center;
  align-items: center;
}

.enphasis {
  display: flex;
  background-image: linear-gradient(rgba(0 0 0 / 0) 55%,
      #C9EACC 55%);
  padding: 0 0.5rem 3px;
}

.enphasis::before,
.enphasis::after {
  content: '';
  width: 1px;
  height: 24px;
  background-color: #0C9500;
}

.enphasis::before {
  margin-right: 15px;
  transform: rotate(-45deg);
}

.enphasis::after {
  margin-left: 10px;
  transform: rotate(45deg);
}

.heading__text1 {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 1rem;
  /*16px*/
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  padding-top: 12px;
}

.heading__text2 {
  font-family: Noto Serif JP;
  font-weight: 700;
  font-size: 1.8125rem;
  /*29px*/
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  padding-top: 13px;
}

.limited {}

.limited__title {
  font-family: Noto Serif JP;
  font-weight: 700;
  font-size: 0.9375rem;
  /*15px*/
  line-height: 25px;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 27px 0 15px;
}

/*-------------------------
スタンプ獲得情報
-------------------------*/
.voice-spot {
  margin: 0 auto;
  width: 92.37%;
  margin-bottom: -1px;
}

.voice-spot__wrapper {}

.cards {
  display: grid;
  gap: 5%;
  grid-template-columns: repeat(3, 1fr);
  padding: 34px 6% 47px;
}

.li__lower {
  padding-top: 11px;
}

.card__img {
  max-width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.card__text {
  font-family: Noto Serif JP;
  font-weight: 700;
  font-size: 0.8rem;
  /*13px*/
  line-height: 18px;
  letter-spacing: 0.05em;
  text-align: center;
}

.card__text-sub {
  display: flex;
  flex-direction: column;
  position: absolute;
  transform: translateX(-5%);
}

.card__text-sub::after {
  bottom: -20px;
  left: -60px;
  content: 'MIRAI TOWER';
}

/*-------------------------
スタンプラリー
-------------------------*/
.stamp-rally {
  margin: 0 auto;
  padding: 35px 0 0;
}

.stamp-rally .cards {
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0;
  padding-bottom: 5px;
}

.stamp-rally .card__title {
  font-family: Noto Serif JP;
  font-weight: 700;
  font-size: 1.125rem;
  /*18px*/
  line-height: 30px;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 11px 0 9px;
}

.card__note {
  font-family: Noto Sans JP;
  font-weight: 400;
  font-size: 0.9375rem;
  /*15px*/
  line-height: 30px;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 2px 0 12px;
}

.card-ending {
  padding-bottom: 15px;
}

.card-ending .card__title {
  padding: 12px 0 0;
}

.card-ending .card__memo {
  font-family: Noto Sans JP;
  font-weight: 400;
  font-size: 0.875rem;
  /*14px*/
  line-height: 20px;
  letter-spacing: 0.05em;
  text-align: center;
  padding-bottom: 12px;
}

.warning {
  width: 93%;
}

.warning-list__item {
  font-family: Noto Sans JP;
  font-weight: 400;
  font-size: 0.75rem;
  /*12px*/
  line-height: 20px;
  letter-spacing: 0.05em;
}


/*-------------------------
デジタルスタンプラリー参加特典
-------------------------*/
.riding-benefits .content__wrapper {
  background-color: #fff;
  border: 2px solid #ACE3A8;
  width: 96.2%;
}

.event__title {
  font-family: Noto Serif JP;
  font-weight: 700;
  font-size: 1.25rem;
  /*20px*/
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: center;
  color: #fff;
  transform: translateX(0) translateY(-11px);
}

.event__title span {
  background-color: #C39E47;
  padding: 3px 12px 4px;
}

.event__text {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 1.125rem;
  /*18px*/
  line-height: 25px;
  letter-spacing: 0.05em;
  text-align: center;
  padding-top: 14px;
}

.event__text span {
  color: #2DB923;
}


/*-------------------------
オリジナルアクリルキーホルダー
-------------------------*/
.card {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(1, 1fr);
  padding: 0;
  margin: 0;
}

.card li {
  width: 89.3%;
  margin: 0 auto;
  padding: 17px 0 28px;
}

.riding-benefits .card__img {
  max-width: 100%;
  aspect-ratio: 334 / 230;
  object-fit: cover;
}

.riding-benefits .card__note {
  font-family: Noto Sans JP;
  font-weight: 400;
  font-size: 0.75rem;
  /*12px*/
  line-height: 0;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: -2px;
}

/*特典引換場所*/
.board {
  width: 91.8%;
  margin: 0 auto;
  padding: 0px 0 17px;
  margin-top: -9px;
}

table {
  text-align: center;
  border: 1px solid #ACE3A8;
  width: 100%;
}

th {
  font-family: Noto Sans JP;
  font-weight: 900;
  font-size: 1.25rem;
  /*20px*/
  line-height: 25px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #2DB923;
  border-bottom: 1px solid #ACE3A8;
  padding: 10px;
}

tbody td {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 1.25rem;
  /*20px*/
  line-height: 27px;
  letter-spacing: 0.06em;
  text-align: center;
  padding-top: 12px;
}

tbody td>span {
  font-size: 0.875rem;
  /*14px*/
  line-height: 27px;
}

tfoot td {
  font-family: Noto Sans JP;
  font-weight: 400;
  font-size: 0.75rem;
  /*12px*/
  line-height: 20px;
  letter-spacing: 0;
  text-align: center;
  padding: 8px 0 10px;
}

.deadline__text {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 0.8125rem;
  /*13px*/
  line-height: 20px;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 8px 0 4px;
}

.warning-exchange {
  width: 90%;
  padding: 5px 0 6px;
}

.warning-exchange .warning-list__item {
  font-family: Noto Sans JP;
  font-weight: 350;
  font-size: 0.6875rem;
  /*11px*/
  line-height: 20px;
  letter-spacing: 0.05em;
}

/*交換ボタン群*/
.exchange {
  padding-top: 27px;
}

.exchange .warning-exchange {
  padding: 8px 0 0;
}

.exchange__text {
  font-family: Noto Serif JP;
  font-weight: 700;
  font-size: 1.0625rem;
  /*17px*/
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: center;
  color: #2DB923;
  padding: 39px 0 13px;
}

.exchange .warning-exchange--space {
  padding: 7px 0 25px;
}

.warning-reset {
  padding-top: 8px;
}

.warning-reset .warning-list__item {
  font-family: Noto Sans JP;
  font-weight: 350;
  font-size: 0.6875rem;
  /*11px*/
  line-height: 20px;
  letter-spacing: 0.05em;
}

.link {
  padding: 5px 0 29px;
}

.link__wrapper {
  padding-top: 27px;
  padding-bottom: 40px;
  background-color: #DEF4E0;
}