@charset "UTF-8";
/* カラー指定　*/
@import url("https://fonts.googleapis.com/css2?family=Oswald&display=swap");
@font-face {
  font-family: "NotoSansJP-Regular";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../font/NotoSansJP-Regular.woff2") format("woff2"), url("../font/NotoSansJP-Regular.woff") format("woff"), url("../font/NotoSansJP-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "NotoSansJP-Bold";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../font/NotoSansJP-Bold.woff2") format("woff2"), url("../font/NotoSansJP-Bold.woff") format("woff"), url("../font/NotoSansJP-Bold.ttf") format("truetype");
}
body {
  font-family: "NotoSansJP-Regular", sans-serif;
  font-weight: 400;
  font-style: normal;
  word-wrap: break-word;
  font-feature-settings: "palt";
  font-size: 4vw;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: #111;
  position: relative;
  animation: fadeIn 1s ease 0s 1 normal;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
}

main {
  overflow: hidden;
}

/* =====================
  共通
===================== */
/* 改行解除用*/
@media screen and (max-width: 960px) {
  .u-sp-none {
    display: none;
  }
}
.content {
  padding: 5vw;
}

.sp-content {
  padding: 5vw;
}

.mb1em {
  margin-bottom: 1em;
}

.mb05em {
  margin-bottom: 0.5em;
}

.flex {
  display: flex;
}

.wrap {
  flex-wrap: wrap;
}

.between {
  justify-content: space-between;
}

.align-center {
  align-items: center;
}

.bold {
  font-family: "NotoSansJP-Bold", sans-serif;
  font-weight: 700;
}

.eng {
  font-family: "Oswald", sans-serif;
}

.centering {
  display: grid;
  place-items: center;
  place-content: center;
}

.sup {
  vertical-align: super;
}

/* 見出し */
.title {
  font-size: clamp(1.75rem, 1.636rem + 0.61vw, 2rem);
  color: #fff;
  text-align: center;
  line-height: 1.3;
  margin-bottom: 0.5em;
}

.card-link {
  justify-content: space-around;
}

/* リンクボタン */
.btn {
  font-size: 3.5vw;
  line-height: 1.4;
  color: #E94D31;
  text-align: center;
  background: #FFF100;
  border-radius: 80px;
  padding: 1em 2em;
  display: inline-block;
  filter: drop-shadow(8px 8px 0px rgba(0, 0, 0, 0.1));
}

ol {
  list-style-type: none;
  padding-left: 0;
}

/* キャプション */
ol.caption {
  counter-reset: caption-item;
  padding-left: 1.5em;
}
ol.caption li {
  font-size: clamp(0.7rem, 0.591rem + 0.55vw, 1rem);
  color: #333;
  text-align: left;
  line-height: 1.5;
  margin-bottom: 0.5em;
  position: relative;
}
ol.caption li::before {
  counter-increment: caption-item;
  content: "※" counter(caption-item);
  color: #333;
  position: absolute;
  left: -2em;
  top: 0;
}

ul.caption {
  padding-left: 1em;
}
ul.caption li {
  font-size: clamp(0.7rem, 0.591rem + 0.55vw, 1rem);
  color: #333;
  text-align: left;
  line-height: 1.5;
  margin-bottom: 0.5em;
  position: relative;
}
ul.caption li::before {
  content: "※";
  color: #333;
  position: absolute;
  left: -1em;
  top: 0;
}

p.caption {
  font-size: clamp(0.563rem, 0.449rem + 0.61vw, 0.813rem);
  color: #333;
  text-align: left;
  line-height: 1.5;
  margin-bottom: 1em;
  padding-left: 1em;
  position: relative;
}
p.caption::before {
  content: "※";
  color: #333;
  position: absolute;
  left: 0;
  top: 0;
}

/* dlリスト */
dl {
  width: fit-content;
  border: 1px solid #333;
  display: inline-flex;
  margin: 0.25em auto;
}

dl dt {
  font-size: 3.5vw;
  line-height: 1.3;
  color: #fff;
  background: #333;
  padding: 0.2em 0.5em;
  display: flex;
  align-items: center;
  justify-content: center;
}

dl dd {
  font-size: 3.5vw;
  text-align: left;
  line-height: 1.3;
  white-space: nowrap;
  color: #333;
  padding: 0.2em 0.5em;
}

/* =====================
  header
===================== */
.header {
  background: #fff;
  height: 40px;
  padding: 10px;
  align-items: center;
}
.header .meitetsu {
  margin-top: 5px;
}

.end {
  font-size: 3.5vw;
  color: #E94D31;
  text-align: center;
  background: #FFF100;
  padding: 0.5em 0;
}

/* =====================
  メインビジュアル
===================== */
.mv {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(4, 1fr);
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  grid-template-rows: max-content max-content 1fr auto;
}
.mv-block1 {
  grid-area: 1/1/2/3;
  background: #E94D31;
  padding: 3vw 5vw;
  position: relative;
  flex-direction: column;
  align-items: center;
  gap: 0.5em;
}
.mv-nomalBenefit {
  gap: 0.5em;
}
.mv-block2 {
  grid-area: 2/1/3/2;
  height: 50vw;
}
.mv-block2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mv-block3 {
  grid-area: 2/2/3/3;
  height: 50vw;
}
.mv-block3 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mv-title {
  grid-area: 3/1/4/3;
  background: #fff;
  padding: 2vw 5vw 3vw;
  display: flex;
  justify-content: center;
  position: relative;
}
.mv-title::before {
  content: "";
  background: url("../images/plus.svg");
  background-size: 100% auto, cover;
  width: 45px;
  height: 45px;
  position: absolute;
  top: -20px;
  left: 0;
  right: 0;
  margin: auto;
}
.mv-title::after {
  content: "";
  --r: 4px;
  width: 20px;
  aspect-ratio: 1/0.8660254038;
  -webkit-mask: linear-gradient(0deg, rgba(0, 0, 0, 0) calc(3 * var(--r) / 2), #000 0), radial-gradient(var(--r) at 50% calc(100% - 2 * var(--r)), #000 98%, rgba(0, 0, 0, 0) 101%);
  clip-path: polygon(50% 100%, 100% 0, 0 0);
  background: #fff;
  position: absolute;
  bottom: -15px;
  right: 20vw;
}
.mv-train {
  position: absolute;
  width: 90vw;
  height: 100%;
  padding-top: 5vw;
  justify-content: space-between;
  align-items: center;
}
.mv-block4 {
  text-align: center;
  grid-area: 4/1/5/3;
  background: #007BC7;
  padding: 3vw 5vw;
}
.mv .day {
  background: #E94D31;
  border-radius: 5px;
  padding: 0.5em 1em;
  margin-top: 0.5em;
  justify-content: flex-start;
}
.mv .daytxt {
  color: #fff;
  font-size: 3.5vw;
  text-align: center;
  border-right: 3px dotted #fff;
  padding-right: 1em;
  margin-right: 1em;
}
.mv p.caption {
  color: #fff;
  margin-bottom: 0;
  margin-top: -0.5em;
}
.mv p.caption::before {
  color: #fff;
}

/* =====================
  選べる特典
===================== */
.select {
  background-image: url("../images/dot.svg");
  background-color: rgba(255, 255, 255, 0.8);
  background-blend-mode: lighten;
  background-size: 10%;
  padding-top: 10vw;
  padding-bottom: 25vw;
  z-index: -1;
}
.select-list {
  flex-direction: column;
  gap: 8vw;
  padding-bottom: 1em;
}
.select-list li {
  text-align: center;
  position: relative;
}
.select-item {
  background: #fff;
  border: 3px solid #007BC7;
  border-radius: 30px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}
.select h2 {
  font-size: clamp(0.75rem, 0.636rem + 0.61vw, 1rem);
  color: #007BC7;
  background: url("../images/ribon.svg") no-repeat;
  background-size: 100% auto, cover;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 40px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: translateY(-50%);
  z-index: 1;
  filter: drop-shadow(6px 6px 0px rgba(0, 0, 0, 0.1));
}
.select h2 span {
  font-size: clamp(1.25rem, 1.136rem + 0.61vw, 1.5rem);
  margin-left: 0.15em;
}
.select h3 {
  font-size: clamp(1.25rem, 1.136rem + 0.61vw, 1.5rem);
  color: #fff;
  background: #007BC7;
  padding: 1em;
}
.select-detail {
  height: 100%;
  padding: 1em;
  flex-direction: column;
  justify-content: space-between;
  gap: 1em;
}
.select-point {
  margin-top: 1em;
}
.select-name {
  width: 250px;
}
.select dl dt {
  font-size: 4vw;
}
.select dl dd {
  font-size: 5vw;
}
.select dl.code_a {
  border: 1px solid #E94D31;
}
.select dl.code_a dt {
  background: rgba(233, 77, 49, 0.8);
}
.select dl.code_a dd {
  color: #E94D31;
}
.select dl.code_b {
  border: 1px solid #007BC7;
}
.select dl.code_b dt {
  background: rgba(0, 123, 199, 0.8);
}
.select dl.code_b dd {
  color: #007BC7;
}
.select dl.code_c dt {
  background: rgba(51, 51, 51, 0.8);
}
.select-code {
  font-size: 4vw;
  color: #E94D31;
}
.select-code p {
  margin-top: 0.5em;
}
.select-code span {
  border-bottom: 2px solid #E94D31;
}

/* =====================
  新規入会・ご利用特典
===================== */
.benefit {
  text-align: center;
  background: #E94D31;
  background: linear-gradient(-45deg, rgb(233, 77, 49) 0%, rgb(0, 123, 199) 100%);
  position: relative;
}
.benefit .title {
  color: #FFF100;
}
.benefit-icon {
  width: 120px;
}
.benefit p.conditions {
  font-size: 4.3vw;
  color: #111;
  line-height: 1.4;
  display: block;
  margin: 0 0 3vw;
}
.benefit p.conditions span {
  font-size: 3vw;
}
.benefit .caption li {
  text-align: left;
  color: #000;
}
.benefit .btn {
  margin: 1em auto;
}
.benefit .train7000 {
  width: fit-content;
  height: 68px;
  max-width: inherit;
  position: absolute;
  top: -60px;
  right: 5%;
}
.benefit dl {
  width: 100%;
}
.benefit dl dt:not(:first-child) {
  width: 6em;
}
.benefit dl dd {
  flex: 1;
}

.benefit ol.camBenefit {
  counter-reset: benefit-item;
  flex-direction: column;
  gap: 1px;
  border-radius: 30px;
  overflow: hidden;
}
.benefit ol.camBenefit > li {
  text-align: center;
  background: rgba(255, 255, 255, 0.9);
  width: 100%;
  padding: 5vw;
  position: relative;
}
.benefit ol.camBenefit > li:first-of-type {
  border-radius: 30px 30px 0 0;
}
.benefit ol.camBenefit > li::before {
  content: "特典";
  font-size: 4vw;
  color: #fff;
  font-family: "NotoSansJP-Bold", sans-serif;
  font-weight: 700;
  text-align: center;
  background: #E94D31;
  width: 3.5em;
  height: fit-content;
  padding: 0.5em 1em;
  display: flex;
  align-items: center;
  position: absolute;
  left: 5vw;
  top: 5vw;
  z-index: 1;
}
.benefit ol.camBenefit > li.smcc::before {
  background: #007BC7;
}
.benefit ol.camBenefit > li::after {
  counter-increment: benefit-item;
  content: counter(benefit-item);
  font-size: 7vw;
  white-space: pre;
  text-align: center;
  font-family: "Oswald", sans-serif;
  line-height: 1.3;
  color: #fff;
  position: absolute;
  left: calc(5vw + 2em);
  top: 5.5vw;
  z-index: 2;
}

/* =====================
  6つのメリット
===================== */
.merit {
  text-align: center;
  background: repeating-linear-gradient(-45deg, #CCE5F4, #CCE5F4 30px, #DBEDF7 30px, #DBEDF7 60px);
  padding-bottom: 15vw;
}
.merit .title {
  color: #E94D31;
  line-height: 1.3;
}
.merit .title span {
  font-size: clamp(1rem, 0.886rem + 0.61vw, 1.25rem);
  letter-spacing: 0.1em;
  color: #E94D31;
  display: block;
  margin: 0.5em 0;
}
.merit .title strong {
  font-size: 7vw;
  color: #fff;
  font-family: "Oswald", sans-serif;
  background: #E94D31;
  margin-right: 1vw;
  display: inline-flex;
  width: 10vw;
  height: 10vw;
  border-radius: 5vw;
  justify-content: center;
  align-items: center;
}
.merit ol.merit-list {
  background: #007BC7;
  counter-reset: merit-item;
  border: 3px solid #007BC7;
  margin-bottom: 1em;
  gap: 1px;
}
.merit .merit-list li {
  background: #fff;
  width: calc((100% - 1px) / 2);
  padding: 1em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}
.merit .merit-list li::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-color: #007BC7 transparent transparent transparent;
  border-width: 44px 44px 0px 0px;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}
.merit .merit-list li::after {
  counter-increment: merit-item;
  content: counter(merit-item);
  font-size: 3.5vw;
  font-family: "Oswald", sans-serif;
  color: #fff;
  position: absolute;
  left: 0.5em;
  top: 0;
  z-index: 2;
}
.merit h3 {
  font-size: 4vw;
  color: #111;
  line-height: 1.3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5em;
}
.merit h3 img {
  display: block;
}
.merit h3 span.sup {
  vertical-align: super;
  font-size: 3vw;
}
.merit p {
  font-size: 3vw;
  line-height: 1.3;
  margin-top: 0.5em;
}

/* =====================
  ポイント使い方
===================== */
.train-bg {
  background-image: url("../images/train-bg.svg");
  background-size: 20%;
  position: relative;
}
.train-bg .train2000 {
  width: fit-content;
  height: 68px;
  max-width: inherit;
  position: absolute;
  top: -60px;
  left: 5%;
}

.point {
  text-align: center;
  padding-bottom: 5vw;
  position: relative;
}
.point .title {
  color: #E94D31;
}
.point ol.point-list {
  counter-reset: point-item;
  margin-bottom: 1em;
}
.point .point-list > li {
  background: #fff;
  width: 100%;
  padding: 10vw 5vw 5vw;
  position: relative;
  margin-bottom: 5vw;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0px 0px 20px 0px rgba(134, 79, 69, 0.2);
}
.point .point-list > li::before {
  counter-increment: point-item;
  content: counter(point-item);
  white-space: pre;
  font-family: "Oswald", sans-serif;
  color: #fff;
  font-size: 5vw;
  line-height: 1;
  width: 11vw;
  height: 8vw;
  background: #E94D31;
  border-radius: 20px 0 20px 0;
  position: absolute;
  left: 0;
  top: 0;
  padding-top: 3vw;
  z-index: 1;
}
.point h3 {
  font-size: 6vw;
  line-height: 1.3;
  color: #E94D31;
}
.point h3 strong {
  font-size: 7vw;
}
.point h3 span {
  font-family: "GenJyuuGothic-Regular", sans-serif;
  font-weight: 400;
}
.point p {
  color: #333;
}
.point-link {
  font-size: 3.5vw;
  text-align: center;
  color: #023E70;
  width: 100%;
  border: 1px solid #023E70;
  border-radius: 50px;
  padding: 0.3em 0;
  display: block;
}
.point ul.caption li::before {
  position: static;
}
.point .point-list > li:not(:first-child) ul.caption li {
  text-align: center;
}
.point .btn {
  color: #FFF100;
  background: #E94D31;
}

@media screen and (min-width: 500px) {
  .point h3 {
    font-size: clamp(1.5rem, 1.136rem + 1.82vw, 2.5rem);
  }
  .point h3 strong {
    font-size: clamp(1.8rem, 1.436rem + 1.82vw, 2.8rem);
  }
  .point p {
    font-size: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
  }
  .point-link {
    font-size: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
  }
}
/* =====================
  注意事項
===================== */
.attention {
  width: 100%;
  border: 4px solid #007BC7;
  border-radius: 10px;
  overflow: hidden;
  /*開いたときに表示される部分*/
  /*閉じた状態の矢印描画*/
  /*開いた状態の矢印描画*/
}
.attention input {
  display: none;
  /*チェックボックスを隠す*/
}
.attention label {
  font-size: 5vw;
  text-align: center;
  color: #fff;
  line-height: 1;
  background: #007BC7;
  padding: 0.5em 1em;
  display: block;
  position: relative;
  cursor: pointer;
}
.attention #attention-content {
  background: #fff;
  padding: 0 5vw;
  margin: 0;
  height: 0;
  overflow-y: hidden;
  transition: padding-bottom 0.5s, padding-top 0.5s;
}
.attention ul {
  margin-bottom: 1em;
}
.attention li {
  font-size: 3vw;
  color: #555;
  text-indent: -1em;
  padding-left: 1em;
  position: relative;
  margin-bottom: 1em;
}
.attention li::before {
  content: "⚪︎";
}
.attention ul.caption {
  padding-left: 1em;
}
.attention ul.caption li {
  margin-bottom: 0;
  text-indent: 0;
  padding-left: 0.5em;
}
.attention ul.caption li::before {
  content: "※";
}
.attention h2 label:after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-top: #fff 3px solid;
  border-right: #fff 3px solid;
  -webkit-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  position: absolute;
  right: calc(50% - 4em);
  top: 0;
  bottom: 7%;
  margin: auto;
  transition: all 0.5s;
}
.attention input[type=checkbox]:checked + h2 label:after {
  transform: rotate(-45deg);
  top: 7%;
  bottom: 0;
}
.attention-benefit {
  font-size: 3.5vw;
  line-height: 1.5;
  margin-bottom: 0.2em;
}
.attention-benefit span {
  color: #007BC7;
  margin-right: 0.5em;
}
.attention a {
  color: #E94D31;
  text-decoration: underline;
}

#attention-title:checked ~ #attention-content {
  padding: 3vw 4vw;
  background: #fff;
  height: auto;
  opacity: 1;
}

small {
  font-size: 3vw;
  text-align: center;
  color: #666;
  letter-spacing: 0.08em;
  background: #FFFDE5;
  padding: 1em 0;
  display: block;
}

@media screen and (min-width: 500px) {
  .attention label {
    font-size: clamp(1rem, 0.636rem + 1.82vw, 2rem);
  }
  .attention h3 {
    font-size: clamp(1rem, 0.955rem + 0.23vw, 1.125rem);
  }
  .attention li {
    font-size: clamp(0.85rem, 0.795rem + 0.27vw, 1rem);
  }
}
@media screen and (min-width: 500px) {
  small {
    font-size: clamp(0.5rem, 0.391rem + 0.55vw, 0.8rem);
  }
}
/* =====================
  アニメーション設定
===================== */
/* 下からフワっと */
[data-aos=realize] {
  transform: translateY(20px);
  opacity: 0;
  transition-property: transform, opacity;
}
[data-aos=realize].aos-animate {
  transform: translateY(0);
  opacity: 1;
}

/* 左からフワっと */
[data-aos=left-fade] {
  transform: translateX(500px);
  transition-property: transform, opacity;
}
[data-aos=left-fade].aos-animate {
  transform: translateY(0);
  transition-duration: 3s !important;
}

/* 右からフワっと */
[data-aos=right-fade] {
  transform: translateX(-500px);
  transition-property: transform, opacity;
}
[data-aos=right-fade].aos-animate {
  transform: translateY(0);
  transition-duration: 3s !important;
}

/* その場でフワっと */
[data-aos=fade] {
  opacity: 0;
  transition-property: opacity;
}
[data-aos=fade].aos-animate {
  opacity: 1;
}

/* =====================
  フローティングボタン
===================== */
.btn-entry a {
  font-size: 3vw;
  text-align: center;
  line-height: 1.3;
  color: #fff;
  background: #E94D31;
  border-radius: 100px;
  border: 3px solid #FFF100;
  width: 100px;
  aspect-ratio: 1/1;
  position: fixed;
  right: 3vw;
  bottom: 3vw;
  overflow: hidden;
  z-index: 100;
  filter: drop-shadow(5px 5px 0px rgba(0, 0, 0, 0.1));
}
.btn-entry a::after {
  content: "";
  background: url("../images/meipy.svg");
  background-size: 100% auto, cover;
  width: 32px;
  height: 42px;
  position: absolute;
  bottom: -12px;
  left: 0;
  right: 0;
  margin: auto;
}
.btn-entry a:hover {
  cursor: pointer;
}
.btn-entry a span {
  font-size: 2vw;
  color: #FFF100;
  padding-top: 2vw;
  display: block;
}

.btn-entry {
  opacity: 0;
  transition: opacity 350ms ease;
}

.is-hide {
  pointer-events: none;
}