@charset "UTF-8";

/* default
---------------------------------------------------- */
@font-face {
  font-family: 'Noto Serif JP';
  src: local('NotoSerifJP-VariableFont_wght.ttf'), url("../../../common/font/NotoSerifJP-VariableFont_wght.ttf");
  font-display: swap;
  font-weight: 400;
}

@font-face {
  font-family: 'MyFont_hiragino';
  src: local('OTF-HiraginoKakuGoStd-W4.otf'), url("../../../common/font/OTF-HiraginoKakuGoStd-W4.otf");
  font-display: swap;
  font-weight: 400;
}

@font-face {
  font-family: 'MyFont_hiragino';
  src: local('OTF-HiraginoKakuGoStd-W5.otf'), url("../../../common/font/OTF-HiraginoKakuGoStd-W5.otf");
  font-display: swap;
  font-weight: 500;
}

@font-face {
  font-family: 'MyFont_hiragino';
  src: local('OTF-HiraginoKakuGoStd-W7.otf'), url("../../../common/font/OTF-HiraginoKakuGoStd-W7.otf");
  font-display: swap;
  font-weight: 700;
}

@font-face {
  font-family: 'MyFont_hiragino';
  src: local('OTF-HiraginoKakuGoStd-W9.otf'), url("../../../common/font/OTF-HiraginoKakuGoStd-W9.otf");
  font-display: swap;
  font-weight: 900;
}

@font-face {
  font-family: 'MyFont_Helvetica';
  src: local('HV___.PFM'), url("../../../common/topics/common/font/HV___.PFM");
  font-display: swap;
  font-weight: 400;
}

@font-face {
  font-family: 'MyFont_Helvetica';
  src: local('HVB___.PFM'), url("/../../../common/topics/common/font/HVB___.PFM");
  font-display: swap;
  font-weight: 700;
}

/*
---------------------------------------------------- */
.fs-life-detail .fs-privilege-gallery {
  display: none;
}


#michiganCruise2024 * {
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", "MS Mincho", serif;
  font-feature-settings: "palt";
  letter-spacing: 0.06em;
}

#michiganCruise2024 {
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", "MS Mincho", serif;
  width: 100%;
  margin: 0 auto;
  position: relative;
  box-sizing: border-box;
}

#michiganCruise2024 p {
  position: relative;
  line-height: 1.6;
  margin-block-start: 0em;
  margin-block-end: 0em;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
  unicode-bidi: isolate;

}


/* 色指定 */
:root {
  --navy: #04070d;
  --gold: linear-gradient(210.52deg, #E3C97A 13.96%, #F3F1D2 24.99%, #E7CF85 38.1%, #EDE0AB 49.04%, #F2F2D0 69.19%, #B88C3E 85.58%);
}

/* 共通 */
.pc,
.br-pc {
  display: block;
}

.sp,
.br-sp {
  display: none;
}

.title {
  font-size: 40px;
  letter-spacing: normal !important;
  line-height: 1;
  text-align: center;
  padding: 64px 0;
  background: var(--gold);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.title__jp {
  font-size: 16px;
}

.title__eg {
  font-size: 40px;
  line-height: 1 !important;
}

@media screen and (max-width: 767px) {

  /* 共通 */
  .pc,
  .br-pc {
    display: none;
  }

  .sp,
  .br-sp {
    display: block;
  }

  .title {
    font-size: 24px;
    line-height: 1;
    text-align: center;
    color: var(--gold);
    padding: 64px 0;
  }
}

/* メインビジュアル */
.mainVisual {
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  width: 100%;
  height: 1020px;
  background-repeat: no-repeat;
  background-image: url(../img/main_bg.jpg);
  background-size: cover;
  background-position: left 50% bottom 0;
}

.mainVisua__title {
  display: block;
  position: absolute;
  margin: auto;
  width: 92%;
  max-width: 680px;
  left: 4%;
  bottom: 320px;
}

.mainVisua__label {
  position: absolute;
  right: 7%;
  top: 4%;
  width: 16%;
}



@media screen and (max-width: 767px) {

  /* メインビジュアル */
  .mainVisual {
    position: relative;
    overflow: hidden;
    margin: 0 auto;
    width: 100%;
    height: 720px;
    background-repeat: no-repeat;
    background-image: url(../img/main_bg_sp.jpg);
    background-size: cover;
    background-position: left 50% bottom 0;
  }

  .mainVisua__title {
    display: block;
    position: absolute;
    margin: auto;
    width: 92%;
    max-width: 380px;
    left: 4%;
    bottom: 270px;
  }

  .mainVisua__label {
    position: absolute;
    right: 6%;
    top: 4%;
    width: 22%;
    max-width: 100px;
  }

}


/* メインビジュアル以降 */
.wrapper {
  background-color: var(--navy);
  margin: 0 auto;
}

.section {
  margin: 0 auto;
}

.section__decoration img {
  vertical-align: bottom;
  width: 100%;
}

.sectionInner {
  margin: 0 auto;
  max-width: 940px;
  padding: 0 20px;
}


/* 導入文*/
.section__lead {
  padding: 80px 0 120px;
  color: #fff;
  text-align: center;
}

.section__lead__title {
  margin: 64px auto 16px !important;
  font-size: 32px;
  line-height: 2 !important;
  text-align: center;
}

.section__lead__text {
  margin: 0 auto !important;
  max-width: 940px;
  font-size: 20px;
  line-height: 2 !important;
  text-align: center;
}

.section__lead__buffet {
  vertical-align: bottom;
  width: 100%;
}

@media screen and (max-width: 767px) {

  /* 導入文*/
  .section__lead {
    padding-top: 64px;
    color: #fff;
  }

  .section__lead__title {
    color: #fff;
    margin: 40px auto 24px !important;
    font-size: 20px;
    line-height: 1.5 !important;
  }

  .section__lead__text {
    color: #fff;
    font-size: 16px;
    line-height: 1.5 !important;
  }

  .section__lead__buffet {
    margin-top: 0;
    height: 96px;
  }
}

/* セクション_ポイント*/

.section__point {
  text-align: center;
  padding: 120px 0 160px;

  background-repeat: no-repeat;
  background-image: url(../img/seagull.svg);
  background-size: 100px;
  background-position: left 4% bottom 2%;
}

.pointList {
  padding-left: 0 !important;
}

.pointItem {
  display: flex;
  justify-content: space-between;
}

.pointItem+.pointItem {
  margin-top: 40px;
}

.pointItem__contents {
  text-align: left;
  color: #fff;
  width: 56%;
}

.pointItem__contents__no {
  color: var(--gold);
  font-size: 120px;
  font-weight: bold;
  background-clip: text;
  background: var(--gold);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.pointItem__contents__title {
  font-size: 24px;
}

.pointItem__contents__text {
  font-size: 18px;
}

.pointItem__note {
  font-size: 14px;
}

.pointItem__img {
  object-fit: contain;
  width: 40%;
  margin-top: 128px;
}

.pointItem__contents__no+.pointItem__contents__title,
.pointItem__contents__title+.pointItem__contents__text,
.pointItem__contents__text+.pointItem__contents__note {
  margin-top: 16px;
  line-height: 1.6;
  letter-spacing: 0.5em;
}

.pointItem__contents.pointItem__contents-right {
  text-align: right;
  margin-top: 128px;
}

.pointItem__img.pointItem__img-right {
  margin-top: 0px;
}


@media screen and (max-width: 767px) {

  /* セクション_ポイント*/

  .section__point {
    padding: 40px 0 120px;

    background-repeat: no-repeat;
    background-image: url(../img/seagull.svg);
    background-size: 60px;
    background-position: left 4% bottom 1%;
  }

  .pointItem {
    display: block;
  }

  .pointItem+.pointItem {
    margin-top: 40px;
  }

  .pointItem__contents {
    text-align: left;
    color: #fff;
    width: 100%;
  }

  .pointItem__contents__no {
    color: var(--gold);
    font-size: 96px;
    font-weight: bold;
    background-clip: text;
    background: var(--gold);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }

  .pointItem__contents__title {
    font-size: 24px;
  }

  .pointItem__contents__text {
    font-size: 16px;
  }

  .pointItem__note {
    font-size: 14px;
  }

  .pointItem__img {
    object-fit: contain;
    width: 100%;
    margin-top: 16px;
  }

  .pointItem__contents__no+.pointItem__contents__title,
  .pointItem__contents__title+.pointItem__contents__text,
  .pointItem__contents__text+.pointItem__contents__note {
    margin-top: 8px;
    line-height: 1.6;
    letter-spacing: 0.5em;
    color: #fff;
  }

  .pointItem__contents.pointItem__contents-right {
    text-align: left;
    margin-top: 0;
  }

  .pointItem__img.pointItem__img-right {
    margin-top: 16px;
  }

}

/* outline */

.section__outline {
  padding: 96px 0px 0px;
}

.outlineList {
  margin: 0 auto;
  max-width: 640px;
}

.outlineList__line {
  color: #fff;
  font-size: 18px;
  text-align: left;
  display: flex;
  border-bottom: solid 1px #fff;
  padding: 16px 8px;
}

.outlineList__line:last-child {
  border-bottom: none !important;
}

.outlineList__line__title {
  font-weight: normal !important;
  display: block;
  width: 28%;
}

.outlineList__line__text {
  display: block;
  width: 72%;
}

.outlineList__note {
  color: #fff;
  font-size: 18px;
  margin: 64px auto;
}

@media screen and (max-width: 767px) {
  /* outline */

  .section__outline {
    padding: 32px 20px 96px;
  }

  .outlineList {
    margin: 0 auto;
    width: 100%;
  }

  .outlineList__line {
    font-size: 16px;
    padding: 8px;
  }

  .outlineList__line__title,
  .outlineList__line__text {
    color: #fff;
  }

  .outlineList__note {
    color: #fff;
    font-size: 16px;
    margin: 40px auto 0;
  }
}

/* フッター */

.section__footer {
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  width: 100%;
}

.section__footer img {
  vertical-align: bottom;
  width: 100%;
}


/* 花火 */

.fireworkBody {
  overflow: hidden;
  max-width: 940px;
}

@media screen and (max-width: 767px) {
  .fireworkBody {
    overflow: hidden;
    max-width: 680px;
  }
}

@keyframes firework {
  0% {
    transform: translate(-50%, 60vh);
    width: 0.5vmin;
    opacity: 0.9;
  }

  50% {
    width: 0.5vmin;
    opacity: 0.9;
  }

  80% {
    width: 45vmin;
    opacity: 0;
  }

  90% {
    width: 40vmin;
    opacity: 0;
  }

  100% {
    width: 45vmin;
    opacity: 0;
  }
}

.firework,
.firework::before,
.firework::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  aspect-ratio: 1;
  background:
    radial-gradient(circle, var(--dot-color) 0.2vmin, #0000 0) 50% 00%,
    radial-gradient(circle, var(--dot-color) 0.3vmin, #0000 0) 00% 50%,
    radial-gradient(circle, var(--dot-color) 0.5vmin, #0000 0) 50% 99%,
    radial-gradient(circle, var(--dot-color) 0.2vmin, #0000 0) 99% 50%,
    radial-gradient(circle, var(--dot-color) 0.3vmin, #0000 0) 75% 80%,
    radial-gradient(circle, var(--dot-color) 0.5vmin, #0000 0) 80% 90%,
    radial-gradient(circle, var(--dot-color) 0.5vmin, #0000 0) 10% 60%,
    radial-gradient(circle, var(--dot-color) 0.2vmin, #0000 0) 31% 80%,
    radial-gradient(circle, var(--dot-color) 0.3vmin, #0000 0) 80% 10%,
    radial-gradient(circle, var(--dot-color) 0.2vmin, #0000 0) 90% 23%,
    radial-gradient(circle, var(--dot-color) 0.3vmin, #0000 0) 45% 20%,
    radial-gradient(circle, var(--dot-color) 0.5vmin, #0000 0) 13% 24%,
    radial-gradient(circle, var(--dot-color) 0.3vmin, #0000 0) 40% 50%,
    radial-gradient(circle, var(--dot-color) 0.5vmin, #0000 0) 43% 32%,
    radial-gradient(circle, var(--dot-color) 0.2vmin, #0000 0) 65% 55%,
    radial-gradient(circle, var(--dot-color) 0.5vmin, #0000 0) 60% 75%,
    radial-gradient(circle, var(--dot-color) 0.3vmin, #0000 0) 30% 65%,
    radial-gradient(circle, var(--dot-color) 0.3vmin, #0000 0) 80% 35%;
  background-size: 1vmin 1vmin;
  background-repeat: no-repeat;
  animation: firework 3s infinite;
}

.firework::before {
  transform: translate(-50%, -50%) rotate(25deg) !important;
}

.firework::after {
  transform: translate(-50%, -50%) rotate(-37deg) !important;
}

.firework:nth-of-type(1),
.firework:nth-of-type(1)::before,
.firework:nth-of-type(1)::after {
  --dot-color: #e3c97a;
}

.firework:nth-of-type(2),
.firework:nth-of-type(2)::before,
.firework:nth-of-type(2)::after {
  top: 30%;
  left: 16%;
  animation-duration: 3.8s;
  --dot-color: #f3f1d2;
}

.firework:nth-of-type(3),
.firework:nth-of-type(3)::before,
.firework:nth-of-type(3)::after {
  top: 10%;
  left: 60%;
  animation-duration: 4.2s;
  --dot-color: #ede0ab;
}