@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500&family=Noto+Sans+JP:wght@400;700&display=swap");
@media screen and (min-width: 769px) {
  /* 画面サイズが769pxからはここを読み込む */
  /* ------------------------------
    共通スタイル
  ------------------------------ */
  html.is-fixed {
    height: 100%;
    overflow: hidden;
  }
  body {
    color: #3d3333;
    font-family: "noto sans jp", sans-serif;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.025em;
    line-height: 1.5;
    overflow-wrap: break-word;
    word-break: break-word;
    font-feature-settings: "pkna";
  }
  .is-fixed body {
    position: fixed;
    width: 100%;
  }
  div,
  h1,
  h2,
  h3,
  p,
  ul,
  ol,
  dl,
  dd,
  table,
  th,
  td {
    margin: 0;
    padding: 0;
  }
  li {
    list-style-type: none;
  }
  a {
    -webkit-transform: translateZ(0) scale(1, 1);
    backface-visibility: hidden;
    color: #3d3333;
    text-decoration: none;
  }
  img {
    width: 100%;
    vertical-align: middle;
  }
  select {
    -webkit-appearance: none;
    -moz-appearance: none;
         appearance: none;
  }
  button {
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
  }
  /* ------------------------------
    ボタン
  ------------------------------ */
  .button-more {
    display: flex;
    align-items: center;
  }
  .button-more__label {
    position: relative;
    margin-right: 16px;
    font-weight: 700;
  }
  .button-more__label::before {
    content: "";
    position: absolute;
    bottom: -4px;
    width: 100%;
    height: 1px;
    background: #ef4c46;
  }
  .button-more__label::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 1px;
    transform: scale(0, 1);
    transform-origin: right top;
    transition: transform 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    background: #fff;
  }
  .button-more:hover .button-more__label::after {
    transform: scale(1, 1);
    transform-origin: left top;
  }
  .button-more--arrow-small .button-more__label::after, .button-more--on-gray .button-more__label::after {
    background: #f8f5f5;
  }
  .button-more__arrow {
    width: 64px;
    height: 64px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border-radius: 50vh;
    background: url("../img/icon/white/ico_arrow.svg") center/16px 12px no-repeat, linear-gradient(to bottom right, #ff6558, #df98ff);
  }
  .button-more:hover .button-more__arrow {
    transform: translateZ(0) scale(1.15);
  }
  .button-more--arrow-small .button-more__arrow {
    width: 20px;
    height: 20px;
    background: url("../img/icon/white/ico_arrow.svg") center/10px 7px no-repeat, linear-gradient(to bottom right, #ff6558, #df98ff);
  }
  .button-back {
    display: flex;
    align-items: center;
  }
  .button-back__label {
    position: relative;
    font-weight: 700;
  }
  .button-back__label::before {
    content: "";
    position: absolute;
    bottom: -4px;
    width: 100%;
    height: 1px;
    background: #3d3333;
  }
  .button-back__label::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 1px;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    background: #fff;
  }
  .button-back:hover .button-back__label::after {
    transform: scale(1, 1);
    transform-origin: right top;
  }
  .button-back__arrow {
    box-sizing: border-box;
    width: 64px;
    height: 64px;
    margin-right: 16px;
    transform: rotate(180deg);
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border: 1px solid #3d3333;
    border-radius: 50vh;
    background: url("../img/icon/black/ico_arrow.svg") center/16px 12px no-repeat, #fff;
  }
  .button-back:hover .button-back__arrow {
    transform: translateZ(0) scale(1.15) rotate(180deg);
  }
  .button-primary {
    display: block;
    box-sizing: border-box;
    width: min(100%, 360px);
    padding: 14px 16px 15px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border-radius: 50vh;
    background: linear-gradient(to bottom right, #ff6558, #df98ff);
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
  }
  .button-primary.is-disabled {
    background: #ebe8e8;
    color: #a8a5a5;
    pointer-events: none;
  }
  .button-primary:hover {
    filter: brightness(1.2);
  }
  .button-primary--full {
    width: 100%;
  }
  .modal-button-box .button-primary {
    margin-bottom: 16px;
  }
  .modal-button-box .button-primary:last-child {
    margin-bottom: 0;
  }
  .button-primary.is-disabled {
    background: #ebe8e8;
    color: #a8a5a5;
    pointer-events: none;
  }
  .button-secondary {
    display: block;
    box-sizing: border-box;
    width: min(100%, 360px);
    padding: 13px 16px 14px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border-radius: 50vh;
    background: #fff;
    color: #ef4c46;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    border: 1px solid #ef4c46;
  }
  .button-secondary.is-disabled {
    background: #ebe8e8;
    color: #a8a5a5;
    pointer-events: none;
  }
  .button-secondary:hover {
    background: #ef4c46;
    color: #fff;
  }
  .modal-button-box .button-secondary {
    margin-bottom: 16px;
  }
  .modal-button-box .button-secondary:last-child {
    margin-bottom: 0;
  }
  .button-secondary.is-disabled {
    border: 0;
    background: #ebe8e8;
    color: #a8a5a5;
    pointer-events: none;
  }
  .button-secondary--small {
    padding: 7px 16px;
    font-size: 16px;
  }
  .button-box--center .button-secondary {
    margin-right: 16px;
  }
  .button-box--center .button-secondary:last-child {
    margin-right: 0;
  }
  .button-cancel {
    display: block;
    box-sizing: border-box;
    width: min(100%, 360px);
    padding: 13px 16px 14px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border-radius: 50vh;
    background: #fff;
    color: #3d3333;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    border: 1px solid #3d3333;
  }
  .button-cancel.is-disabled {
    background: #ebe8e8;
    color: #a8a5a5;
    pointer-events: none;
  }
  .button-cancel:hover {
    background: #3d3333;
    color: #fff;
  }
  .button-cancel--small {
    padding: 7px 16px;
    font-size: 16px;
  }
  .modal-button-box .button-cancel {
    margin-bottom: 16px;
  }
  .modal-button-box .button-cancel:last-child {
    margin-bottom: 0;
  }
  .button-box--center .button-cancel {
    margin-right: 16px;
  }
  .button-box--center .button-cancel:last-child {
    margin-right: 0;
  }
  .button-box {
    display: flex;
    align-items: center;
    margin-top: 32px;
  }
  .button-box--center {
    justify-content: center;
  }
  .button-box--between {
    justify-content: space-between;
  }
  .button-box--end {
    justify-content: flex-end;
  }
  .button-box--close {
    margin-top: 24px;
  }
  /* ------------------------------
    カード
  ------------------------------ */
  .card-box {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
  }
  .card {
    position: relative;
    width: calc((100% - 64px) / 3);
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 3px 6px rgba(10, 0, 0, 0.16);
  }
  .card__image {
    height: 316px;
    overflow: hidden;
  }
  .card__image img {
    height: 100%;
    transition: 1s cubic-bezier(0.32, 0.1, 0, 1);
    -o-object-fit: cover;
       object-fit: cover;
  }
  .card:hover .card__image img {
    transform: translateZ(0) scale(1.1);
  }
  .card__body {
    padding: 24px 20px 64px;
  }
  .card--collection .card__body {
    padding: 24px 20px 32px;
  }
  .card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
  }
  .card__price-num {
    display: inline-block;
    margin-right: 4px;
    font-family: "Montserrat", sans-serif;
    font-size: 24px;
    font-weight: 500;
  }
  .card__collected {
    flex: 1;
    text-align: right;
  }
  .card__collected-num {
    margin: 0 4px;
    font-family: "Montserrat", sans-serif;
    font-size: 24px;
    font-weight: 500;
  }
  .card__type {
    margin-bottom: 8px;
    font-size: 14px;
    line-height: 1.3;
  }
  .card__fc-name {
    margin-right: 2px;
  }
  .card__title {
    font-size: 22px;
    font-weight: 700;
  }
  .card__period {
    position: absolute;
    bottom: 24px;
    color: #696464;
  }
  .card__date {
    display: inline-block;
    margin-right: 2px;
    font-family: "Montserrat", sans-serif;
  }
  /* ------------------------------
    FAQ
  ------------------------------ */
  .faq {
    padding: 64px;
    border-radius: 8px;
    background: #f8f5f5;
  }
  .faq-list__item {
    position: relative;
    margin-bottom: 24px;
    padding: 32px 40px;
    border-radius: 16px;
    background: #fff;
  }
  .faq-list__item:last-child {
    margin-bottom: 0;
  }
  .faq-list__term {
    position: relative;
    padding: 0 40px 0 64px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    font-size: 20px;
    font-weight: 700;
    cursor: pointer;
  }
  .faq-list__term:hover {
    opacity: 0.6;
  }
  .faq-list__term::before {
    content: "";
    position: absolute;
    top: -10px;
    left: 0;
    width: 48px;
    height: 48px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    background: url("../img/faq/img_faq_q.png") no-repeat center/contain;
  }
  .faq-list__open {
    position: absolute;
    top: 50%;
    right: 0;
    width: 24px;
    height: 3px;
    transform: translateY(50%);
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border-radius: 50vh;
    background: #3d3333;
  }
  .faq-list__open::before {
    content: "";
    position: absolute;
    top: 0;
    width: 24px;
    height: 3px;
    transform: rotate(90deg);
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border-radius: 50vh;
    background: #3d3333;
  }
  .is-opened .faq-list__open::before {
    transform: rotate(180deg);
  }
  .faq-list__desc {
    display: none;
    position: relative;
    margin-top: 8px;
    padding: 28px 40px 12px 64px;
  }
  .faq-list__desc::before {
    content: "";
    position: absolute;
    top: 16px;
    left: 0;
    width: 48px;
    height: 48px;
    background: url("../img/faq/img_faq_a.png") no-repeat center/contain;
  }
  .faq-text-note-box {
    display: block;
    margin-top: 16px;
  }
  .faq-list__link {
    color: blue;
    text-decoration: underline;
  }
  /* ------------------------------
    フローティング
  ------------------------------ */
  .floating {
    position: fixed;
    z-index: 2;
    bottom: 0;
    width: 100%;
    min-width: calc(1180px + 80px);
    padding: 24px 0;
    background: rgba(22, 17, 17, 0.8);
    color: #fff;
  }
  .floating__inner {
    width: 1180px;
    margin: 0 auto;
  }
  .floating__title {
    display: -webkit-box;
    margin-bottom: 8px;
    overflow: hidden;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .floating__box {
    display: flex;
    align-items: center;
  }
  .floating-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 24px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
  }
  .floating-close:hover {
    transform: translateZ(0) scale(1.1);
  }
  .floating-detail {
    display: flex;
    margin-right: 40px;
    font-size: 18px;
  }
  .floating-detail__text {
    margin-right: 32px;
  }
  .floating-detail__text:last-child {
    margin-right: 0;
  }
  .floating-detail__num {
    display: inline-block;
    padding: 0 8px;
    font-family: "Montserrat", sans-serif;
    font-size: 40px;
    font-weight: 500;
    line-height: 1.1;
  }
  .floating-detail__text:last-child .floating-detail__num {
    padding-left: 0;
  }
  .floating-button-box {
    display: flex;
  }
  .floating-button {
    display: inline-block;
    box-sizing: border-box;
    width: 262px;
    margin-right: 16px;
    padding: 7px 8px 9px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border-radius: 50vh;
    background: linear-gradient(to bottom right, #ff6558, #df98ff);
    color: #fff;
    font-weight: 700;
    text-align: center;
  }
  .floating-button:hover {
    filter: brightness(1.2);
  }
  .floating-button:last-child {
    margin-right: 0;
  }
  .floating-button.is-disabled {
    background: #ebe8e8;
    color: #a8a5a5;
    pointer-events: none;
  }
  /* ------------------------------
    見出し
  ------------------------------ */
  .headline {
    margin-bottom: 48px;
    font-size: 16px;
    font-weight: 700;
  }
  .headline--top {
    position: absolute;
    top: -140px;
  }
  .headline--detail-line-up {
    position: absolute;
    top: -156px;
  }
  .headline__en {
    display: block;
    margin-bottom: 12px;
    font-family: "Montserrat", sans-serif;
    font-size: 56px;
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
  }
  .headline-underline {
    margin-bottom: 40px;
    text-align: center;
  }
  .headline-underline__en {
    position: relative;
    z-index: 1;
    font-family: "Montserrat", sans-serif;
    font-size: 48px;
    text-transform: uppercase;
  }
  .headline-underline__en::after {
    content: "";
    display: block;
    position: absolute;
    z-index: -1;
    right: 50%;
    bottom: 4px;
    width: calc(100% + 64px);
    height: 16px;
    transform: translateX(50%);
    border-radius: 50vh;
    background: #ebe8e8;
  }
  .headline-underline.is-invalid .headline-underline__en {
    color: #ef4c46;
  }
  .headline-underline.is-invalid .headline-underline__en::after {
    background: #ffe5e5;
  }
  .heading {
    margin-bottom: 16px;
    font-size: 32px;
    font-weight: 700;
  }
  .heading--far {
    margin-bottom: 56px;
  }
  /* ------------------------------
    input
  ------------------------------ */
  .input-radio {
    display: inline-block;
    position: relative;
    vertical-align: middle;
  }
  .input-radio input {
    position: absolute;
    opacity: 0;
  }
  .input-radio__label {
    display: block;
    position: relative;
    padding-left: 36px;
    font-size: 18px;
    cursor: pointer;
  }
  .input-radio__label::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    box-sizing: border-box;
    width: 24px;
    height: 24px;
    transform: translateY(3px);
    border: 1px solid #ef4c46;
    border-radius: 50%;
    background: #fff;
  }
  input:checked + .input-radio__label::after {
    content: "";
    position: absolute;
    top: 9px;
    left: 6px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ef4c46;
  }
  .input-check {
    display: inline-block;
    position: relative;
    margin-bottom: 24px;
    cursor: pointer;
  }
  .input-check:last-child {
    margin-bottom: 0;
  }
  .input-check input {
    position: absolute;
    opacity: 0;
  }
  .input-check__label {
    display: block;
    position: relative;
    padding-left: 40px;
    font-size: 18px;
    cursor: pointer;
  }
  .input-check__label::before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    box-sizing: border-box;
    width: 24px;
    height: 24px;
    transform: translateY(-50%);
    border-radius: 25%;
    border: 2px solid #ef4c46;
    background: url("../img/icon/white/ico_check.svg") center/12px 8px no-repeat, #fff;
  }
  input:checked + .input-check__label::before {
    background: url("../img/icon/white/ico_check.svg") center/12px 8px no-repeat, #ef4c46;
  }
  .input-check__label--bold {
    font-weight: 700;
  }
  .input-check__desc {
    display: block;
    margin-top: 8px;
    padding-left: 40px;
  }
  .input-check-box {
    margin-bottom: 32px;
  }
  .input-text {
    box-sizing: border-box;
    width: 250px;
    padding: 10px 16px;
    border: 1px solid #8c8888;
    border-radius: 8px;
    background: #fff;
    color: #3d3333;
    font-size: 14px;
    line-height: 1.5;
  }
  .input-text::-moz-placeholder {
    color: #a8a5a5;
  }
  .input-text::placeholder {
    color: #a8a5a5;
  }
  .input-text--large {
    width: 432px;
  }
  .input-text.is-invalid {
    border: 1px solid #ef4c46;
    background: #ffe5e5;
  }
  .input-select-area {
    position: relative;
    width: 250px;
  }
  .input-select-area::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 16px;
    width: 10px;
    height: 8px;
    transform: translateY(-50%);
    background: #ef4c46;
    -webkit-clip-path: polygon(0 0, 50% 100%, 100% 0);
            clip-path: polygon(0 0, 50% 100%, 100% 0);
  }
  .input-select {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #8b8888;
    border-radius: 8px;
    background: #fff;
    color: #3d3333;
    font-size: 14px;
  }
  /* ------------------------------
    共通レイアウト
  ------------------------------ */
  .ly-outer {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
  }
  .ly-outer--hidden {
    overflow: hidden;
  }
  .ly-section {
    margin-bottom: 40px;
  }
  .ly-section:last-child {
    margin-bottom: 0;
  }
  /* ------------------------------
    メイン
  ------------------------------ */
  .main {
    flex-grow: 1;
    margin: 124px 0 80px;
  }
  .main--lower {
    box-sizing: border-box;
    width: calc(1180px + 80px);
    margin: 124px auto 80px;
    padding: 0 40px;
  }
  .main--static {
    max-width: calc(1180px + 80px);
    width: 100%;
  }
  /* ------------------------------
    modal
  ------------------------------ */
  .modal {
    visibility: hidden;
    position: fixed;
    z-index: 5;
    top: 50%;
    left: 50%;
    box-sizing: border-box;
    width: calc(100vw - 80px);
    max-width: 800px;
    padding: 60px;
    transform: translate(-50%, -50%);
    border-radius: 16px;
    opacity: 0;
    background: #fff;
  }
  .modal--narrow {
    padding: 60px 80px;
  }
  .modal.is-actived {
    visibility: visible;
    opacity: 1;
  }
  .modal__body-scroll {
    max-height: 60vh;
    overflow: auto;
  }
  .modal__desc {
    margin-bottom: 12px;
  }
  .modal__desc:last-child {
    margin-bottom: 0;
  }
  .modal__desc--center {
    text-align: center;
  }
  .modal__desc--left {
    text-align: left;
    padding-left: 20%;
  }
  .modal__image {
    width: 280px;
    margin: 0 auto 24px;
    overflow: hidden;
    border-radius: 16px;
  }
  .modal__image-large {
    width: 512px;
    margin: 0 auto 24px;
  }
  .modal__prize-name {
    margin-bottom: 12px;
    font-weight: 700;
  }
  .modal__prize-collected {
    margin-bottom: 12px;
    font-weight: 700;
  }
  .modal__prize-num {
    margin: 0 8px 0 4px;
    font-family: "Montserrat", sans-serif;
    font-size: 24px;
    font-weight: 500;
  }
  .modal-heading {
    margin-bottom: 40px;
    text-align: center;
  }
  .modal-heading__en {
    position: relative;
    z-index: 1;
    font-family: "Montserrat", sans-serif;
    font-size: 48px;
    font-weight: 500;
    text-transform: uppercase;
  }
  .modal-heading__en::before {
    content: "";
    position: absolute;
    z-index: -1;
    right: 50%;
    bottom: 4px;
    width: calc(100% + 64px);
    height: 16px;
    transform: translateX(50%);
    border-radius: 50vh;
    background: #ebe8e8;
  }
  .modal-heading--error .modal-heading__en {
    color: #ef4c46;
  }
  .modal-heading--error .modal-heading__en::before {
    background: #fdd;
  }
  .modal-close {
    position: absolute;
    top: 40px;
    right: 40px;
    width: 32px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
  }
  .modal-close:hover {
    transform: translateZ(0) scale(1.1);
  }
  .modal-button-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 40px auto;
  }
  .modal-button-box:last-child {
    margin-bottom: 0;
  }
  .modal-button-box--close {
    margin-top: 24px;
  }
  .modal-definition-list {
    margin-bottom: 16px;
  }
  .modal-definition-list:last-child {
    margin-bottom: 0;
  }
  .modal-definition-list__item {
    display: flex;
    margin-bottom: 8px;
  }
  .modal-definition-list__item:last-child {
    margin-bottom: 0;
  }
  .modal-definition-list__term {
    font-weight: 700;
  }
  .modal-definition-list--vertical .modal-definition-list__term {
    margin-bottom: 8px;
  }
  /* ------------------------------
    オーバーレイ
  ------------------------------ */
  .overlay {
    visibility: hidden;
    position: fixed;
    z-index: 4;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    background: rgba(0, 0, 0, 0.8);
    cursor: pointer;
  }
  .overlay.is-actived {
    visibility: visible;
    opacity: 1;
  }
  /* ------------------------------
   タグ
  ------------------------------ */
  .tag-status {
    display: inline-block;
    width: 104px;
    padding: 3px 0 5px;
    border-radius: 50vh;
    background: #ef4c46;
    color: #fff;
    font-weight: 700;
    text-align: center;
  }
  .tag-status.is-before {
    border: 1px solid #ef4c46;
    background: #fff;
    color: #ef4c46;
  }
  .tag-status.is-after {
    border: 1px solid #3d3333;
    background: #fff;
    color: #3d3333;
  }
  .tag-primary {
    margin-right: 16px;
    padding: 10px 32px 7px;
    border-radius: 50vh;
    background: #f8f5f5;
    font-weight: 700;
  }
  .tag-primary:last-child {
    margin-right: 0;
  }
  .tag-primary--white {
    background: #fff;
  }
  .tag-primary.is-cautioned {
    color: #ef4c46;
  }
  .tag-primary__num {
    display: inline-block;
    padding: 0 4px;
    font-family: "Montserrat", sans-serif;
    font-size: 24px;
    font-weight: 500;
  }
  .tag-primary__slash {
    padding: 0 12px;
  }
  .tag-required {
    margin-right: 16px;
    padding: 2px 10px 4px;
    border-radius: 4px;
    background: #ef4c46;
    color: #fff;
    font-size: 12px;
  }
  .tag-required.is-option {
    background: #a2a0a0;
    color: #fff;
  }
  /* ------------------------------
    テキスト
  ------------------------------ */
  .text-bg-box {
    margin-bottom: 16px;
    padding: 24px;
    border-radius: 8px;
    background: #f8f5f5;
  }
  .text-bg-box:last-child {
    margin-bottom: 0;
  }
  .text-bg-box--narrow {
    padding: 32px;
  }
  .text-bg-box--wide {
    padding: 16px;
  }
  .text-bg-box--constant {
    box-sizing: border-box;
    width: 720px;
    margin: 0 auto;
    padding: 32px;
  }
  .text-bg-box--far {
    margin-bottom: 24px;
  }
  .text-bg-box--white {
    background: #fff;
  }
  .text-bg-box--white-narrow {
    padding: 24px 48px;
    background: #fff;
  }
  .text-bg-box__image {
    margin-bottom: 32px;
    overflow: hidden;
    border-radius: 8px;
  }
  .text-bg-box__2column {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 16px;
  }
  .text-bg-box__2column:last-child {
    margin-bottom: 0;
  }
  .text-bg-box__2column.is-unregistered {
    align-items: center;
  }
  .text-title-bg-box {
    margin-bottom: 40px;
    padding: 32px;
    border-radius: 8px;
    background: #f8f5f5;
    font-size: 24px;
    font-weight: 700;
  }
  .text-title-bg-box--flex-far {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 80px;
  }
  .text-title-bg-box__sub-text {
    display: inline-block;
    flex-shrink: 0;
    margin-left: 24px;
    font-size: 18px;
  }
  .text-title-bg-box__num {
    display: inline-block;
    margin: 0 12px;
    font-family: "Montserrat", sans-serif;
    font-size: 32px;
    font-weight: 500;
    line-height: 1.1;
  }
  .text-definition-list {
    margin-bottom: 24px;
    font-size: 18px;
  }
  .text-definition-list:last-child {
    margin-bottom: 0;
  }
  .text-definition-list--small {
    font-size: 16px;
  }
  .text-definition-list--vertical {
    margin-bottom: 32px;
  }
  .text-definition-list--stock {
    margin-bottom: 16px;
  }
  .text-bg-box__2column .text-definition-list {
    margin-bottom: 0;
  }
  .text-definition-list__item {
    display: flex;
    margin-bottom: 16px;
  }
  .text-definition-list--vertical .text-definition-list__item {
    display: block;
    margin-bottom: 32px;
  }
  .text-definition-list--stock .text-definition-list__item {
    margin-bottom: 4px;
  }
  .text-definition-list__item:last-child {
    margin-bottom: 0;
  }
  .text-definition-list__item--close {
    margin-bottom: 8px;
  }
  .text-definition-list__term {
    flex-shrink: 0;
    width: 206px;
    font-weight: 700;
  }
  .text-definition-list--small .text-definition-list__term {
    width: 126px;
  }
  .text-definition-list--vertical .text-definition-list__term {
    margin-bottom: 4px;
  }
  .text-definition-list--th-large .text-definition-list__term {
    width: 264px;
    height: 40px;
  }
  .text-definition-list--th-more-large .text-definition-list__term {
    width: 312px;
  }
  .text-definition-list--stock .text-definition-list__term {
    width: 580px;
    margin-right: 16px;
  }
  .text-definition-list--stock .text-definition-list__item:nth-child(n+2) .text-definition-list__term {
    margin-left: 8px;
    font-weight: 400;
  }
  .text-definition-list__desc.is-cautioned {
    color: #ef4c46;
  }
  .text-definition-list__price {
    display: inline-block;
    margin-right: 8px;
    font-family: "Montserrat", sans-serif;
    font-size: 32px;
    font-weight: 500;
    line-height: 1.1;
  }
  .text-modal {
    display: block;
    margin-top: 4px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    color: #8c8888;
  }
  .text-modal:hover {
    opacity: 0.6;
  }
  .text-modal::after {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    margin-left: 8px;
    transform: translateY(3px);
    background: url("../img/icon/gray/ico_faq.svg") no-repeat center/contain;
  }
  .text-note {
    display: block;
    position: relative;
    margin-bottom: 16px;
    padding-left: 1.25em;
  }
  .text-note::before {
    content: "※";
    position: absolute;
    top: 0;
    left: 0;
  }
  .text-note:last-child {
    margin-bottom: 0;
  }
  .text-note--close {
    margin-bottom: 8px;
  }
  .text-note--close-large {
    margin-bottom: 8px;
    font-size: 18px;
  }
  .text-note--far {
    margin-bottom: 24px;
  }
  .text-note--large {
    font-size: 18px;
  }
  .text-note--caution {
    color: #ef4c46;
  }
  .text-note--caution-large {
    color: #ef4c46;
    font-size: 18px;
  }
  .text-side-note {
    margin-bottom: 0;
  }
  .text-bg-box__2column .text-note {
    margin-bottom: 0;
  }
  .text-caution-box {
    margin-bottom: 40px;
    padding: 24px;
    border-radius: 8px;
    background: #ffe5e5;
  }
  .text-caution {
    position: relative;
    margin-bottom: 16px;
    padding-left: 32px;
    color: #ef4c46;
    font-size: 18px;
    font-weight: 700;
  }
  .text-caution:last-child {
    margin-bottom: 0;
  }
  .text-caution::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 24px;
    height: 24px;
    background: url("../img/icon/main/ico_caution.svg") no-repeat center/contain;
  }
  .text-link-box {
    display: flex;
    align-items: center;
    margin-top: 32px;
  }
  .text-link-box--end {
    justify-content: flex-end;
  }
  .text-link {
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    color: #1d7dff;
  }
  .text-link:hover {
    opacity: 0.6;
  }
  .text-link-black-box {
    text-align: center;
  }
  .text-link-black {
    position: relative;
    font-weight: 700;
  }
  .text-link-black::before {
    content: "";
    position: absolute;
    bottom: -4px;
    width: 100%;
    height: 1px;
    background: #3d3333;
  }
  .text-link-black::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 1px;
    transform: scale(0, 1);
    transform-origin: right top;
    transition: transform 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    background: #fff;
  }
  .text-link-black:hover::after {
    transform: scale(1, 1);
    transform-origin: left top;
  }
  .text-title-center {
    margin-bottom: 40px;
    font-size: 24px;
    font-weight: 700;
    text-align: center;
  }
  .text-title-center:last-child {
    margin-bottom: 0;
  }
  .text-center {
    margin-bottom: 16px;
    text-align: center;
  }
  .text-center:last-child {
    margin-bottom: 0;
  }
  .text-center--bold {
    font-weight: 700;
  }
  .text-pc-center {
    margin-bottom: 16px;
    text-align: center;
  }
  .text-pc-center:last-child {
    margin-bottom: 0;
  }
  /* ------------------------------
    トップページ
  ------------------------------ */
  .top-section {
    min-width: calc(1180px + 80px);
    padding: 104px 0;
    background: #f8f5f5;
  }
  .top-section--news {
    background: #fff;
  }
  .top-section--beginner {
    padding-bottom: 0;
    background: #fff;
  }
  .top-section--service {
    padding-top: 80px;
    background: #fff;
  }
  .top-section--detail-line-up {
    padding-top: 120px;
  }
  .top-section:last-child {
    padding-bottom: 0;
  }
  .top-section__inner {
    position: relative;
    width: 1180px;
    margin: 0 auto;
  }
  .top-button-box {
    position: absolute;
    top: -80px;
    right: 0;
  }
  .top-beginner-box {
    display: flex;
    justify-content: center;
  }
  .top-beginner {
    display: flex;
    position: relative;
    align-items: center;
    margin-right: 32px;
    padding: 32px 32px 32px 96px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border-radius: 16px;
    background: linear-gradient(to bottom right, #ff6558, #df98ff);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
  }
  .top-beginner::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 32px;
    width: 40px;
    height: 46px;
    transform: translateY(-45%);
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    background: url("../img/icon/white/ico_beginner.svg") no-repeat center/contain;
  }
  .top-beginner--trial {
    padding-left: 104px;
  }
  .top-beginner--trial::before {
    width: 48px;
    height: 56px;
    background: url("../img/icon/white/ico_trial.svg") no-repeat center/contain;
  }
  .top-beginner:last-child {
    margin-right: 0;
  }
  .top-beginner__title {
    margin-right: 20px;
  }
  .top-beginner__en {
    display: block;
    margin-bottom: 4px;
    font-family: "Montserrat", sans-serif;
    font-size: 40px;
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
  }
  .top-beginner__arrow {
    box-sizing: border-box;
    width: 72px;
    height: 72px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border: 1px solid #fff;
    border-radius: 50%;
    background: url("../img/icon/white/ico_arrow.svg") center/16px 12px no-repeat;
  }
  .top-beginner:hover .top-beginner__arrow {
    transform: translateZ(0) scale(1.1);
  }
  .top-heading {
    margin-bottom: 32px;
    text-align: center;
  }
  .top-heading__en {
    position: relative;
    z-index: 1;
    font-family: "Montserrat", sans-serif;
    font-size: 32px;
    font-weight: 500;
    text-transform: uppercase;
  }
  .top-heading__en::before {
    content: "";
    position: absolute;
    z-index: -1;
    right: 50%;
    bottom: 0;
    width: calc(100% + 32px);
    height: 16px;
    transform: translateX(50%);
    border-radius: 50vh;
    background: #ebe8e8;
  }
  .top-service-box {
    display: flex;
    justify-content: center;
  }
  .top-service {
    display: inline-block;
    width: 192px;
    margin-right: 40px;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
  }
  .top-service:hover {
    transform: translateZ(0) scale(1.1);
  }
  .top-service:last-child {
    margin-right: 0;
  }
  .is-onlySP {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  /* 画面サイズが768pxまではここを読み込む */
  /* ------------------------------
    共通スタイル
  ------------------------------ */
  html.is-fixed {
    height: 100%;
    overflow: hidden;
  }
  body {
    backface-visibility: hidden;
    color: #3d3333;
    font-family: "noto sans jp", sans-serif;
    font-size: 4.2666666667vw;
    font-weight: 400;
    letter-spacing: 0.025em;
    line-height: 1.5;
    overflow-wrap: break-word;
    word-break: break-word;
    font-feature-settings: "pkna";
  }
  .is-fixed body {
    position: fixed;
    width: 100%;
  }
  div,
  h1,
  h2,
  h3,
  p,
  ul,
  ol,
  dl,
  dd,
  table,
  th,
  td {
    margin: 0;
    padding: 0;
  }
  li {
    list-style-type: none;
  }
  a {
    color: #3d3333;
    text-decoration: none;
  }
  img {
    width: 100%;
    vertical-align: middle;
  }
  button {
    padding: 0;
    border: 0;
    background: none;
  }
  select {
    -webkit-appearance: none;
    -moz-appearance: none;
         appearance: none;
  }
  /* ------------------------------
    ボタン
  ------------------------------ */
  .button-more {
    display: flex;
    align-items: center;
  }
  .button-more__label {
    position: relative;
    margin-right: 4.2666666667vw;
    font-size: 3.7333333333vw;
    font-weight: 700;
  }
  .button-more__label::before {
    content: "";
    position: absolute;
    bottom: -1.0666666667vw;
    width: 100%;
    height: 0.2666666667vw;
    background: #ef4c46;
  }
  .button-more__arrow {
    width: 14.9333333333vw;
    height: 14.9333333333vw;
    border-radius: 50vh;
    background: url("../img/icon/white/ico_arrow.svg") center/3.2vw 2.1333333333vw no-repeat, linear-gradient(to bottom right, #ff6558, #df98ff);
  }
  .button-more--arrow-small .button-more__arrow {
    width: 5.3333333333vw;
    height: 5.3333333333vw;
    background: url("../img/icon/white/ico_arrow.svg") center/2.6666666667vw 1.8666666667vw no-repeat, linear-gradient(to bottom right, #ff6558, #df98ff);
  }
  .button-back {
    display: flex;
    align-items: center;
  }
  .button-back__label {
    position: relative;
    font-size: 3.7333333333vw;
    font-weight: 700;
  }
  .button-back__label::before {
    content: "";
    position: absolute;
    bottom: -1.0666666667vw;
    width: 100%;
    height: 0.2666666667vw;
    background: #3d3333;
  }
  .button-back__arrow {
    box-sizing: border-box;
    width: 14.9333333333vw;
    height: 14.9333333333vw;
    margin-right: 4.2666666667vw;
    transform: rotate(180deg);
    border: 1px solid #3d3333;
    border-radius: 50vh;
    background: url("../img/icon/black/ico_arrow.svg") center/3.2vw 2.1333333333vw no-repeat, #fff;
  }
  .button-primary {
    display: block;
    box-sizing: border-box;
    width: 100%;
    padding: 3.7333333333vw 4.2666666667vw 4vw;
    border-radius: 50vh;
    background: linear-gradient(to bottom right, #ff6558, #df98ff);
    color: #fff;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
  }
  .modal-button-box .button-primary {
    margin-bottom: 3.2vw;
  }
  .modal-button-box .button-primary:last-child {
    margin-bottom: 0;
  }
  .button-primary.is-disabled {
    background: #ebe8e8;
    color: #a8a5a5;
    pointer-events: none;
  }
  .button-secondary {
    display: block;
    box-sizing: border-box;
    width: 100%;
    padding: 3.7333333333vw 4.2666666667vw 4vw;
    border-radius: 50vh;
    background: #fff;
    color: #ef4c46;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    border: 1px solid #ef4c46;
  }
  .modal-button-box .button-secondary {
    margin-bottom: 3.2vw;
  }
  .modal-button-box .button-secondary:last-child {
    margin-bottom: 0;
  }
  .button-secondary.is-disabled {
    border: 0;
    background: #ebe8e8;
    color: #a8a5a5;
    pointer-events: none;
  }
  .button-secondary--small {
    padding: 1.6vw 4.2666666667vw 2.1333333333vw;
  }
  .button-box--center .button-secondary {
    margin-bottom: 3.2vw;
  }
  .button-box--center .button-secondary:last-child {
    margin-bottom: 0;
  }
  .button-cancel {
    display: block;
    box-sizing: border-box;
    width: 100%;
    padding: 3.7333333333vw 4.2666666667vw 4vw;
    border-radius: 50vh;
    background: #fff;
    color: #3d3333;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    border: 1px solid #3d3333;
  }
  .modal-button-box .button-cancel {
    margin-bottom: 3.2vw;
  }
  .modal-button-box .button-cancel:last-child {
    margin-bottom: 0;
  }
  .button-box--center .button-cancel {
    margin-bottom: 3.2vw;
  }
  .button-box--center .button-cancel:last-child {
    margin-bottom: 0;
  }
  .button-box {
    margin-top: 6.4vw;
  }
  .button-box--close {
    margin-top: 4.2666666667vw;
  }
  /* ------------------------------
    カード
  ------------------------------ */
  .card-box {
    display: flex;
    flex-wrap: wrap;
    gap: 2.1333333333vw;
  }
  .card {
    position: relative;
    width: calc(50% - 1.0666666667vw);
    overflow: hidden;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 3px 6px rgba(10, 0, 0, 0.16);
  }
  .card__body {
    padding: 1.6vw 1.6vw 9.6vw;
  }
  .card--collection .card__body {
    padding: 1.6vw 1.6vw 2.1333333333vw;
  }
  .card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.0666666667vw;
  }
  .card__price {
    font-size: 2.6666666667vw;
    letter-spacing: 0.01em;
  }
  .card__price-num {
    display: inline-block;
    margin-right: 0.5333333333vw;
    font-family: "Montserrat", sans-serif;
    font-size: 3.7333333333vw;
    font-weight: 500;
  }
  .card__collected {
    flex: 1;
    font-size: 2.6666666667vw;
    letter-spacing: 0.01em;
    text-align: right;
  }
  .card__collected-num {
    margin: 0 0.5333333333vw;
    font-family: "Montserrat", sans-serif;
    font-size: 3.7333333333vw;
    font-weight: 500;
  }
  .card__type {
    margin-bottom: 2.1333333333vw;
    font-size: 2.6666666667vw;
    line-height: 1.3;
  }
  .card__fc-name {
    margin-right: 0.5333333333vw;
  }
  .card__title {
    font-size: 3.7333333333vw;
    font-weight: 700;
  }
  .card__period {
    position: absolute;
    bottom: 2.6666666667vw;
    color: #696464;
    font-size: 3.2vw;
  }
  .card__date {
    display: inline-block;
    margin-right: 0.5333333333vw;
    font-family: "Montserrat", sans-serif;
  }
  /* ------------------------------
    FAQ
  ------------------------------ */
  .faq {
    margin: 0 -4.2666666667vw;
    padding: 4.2666666667vw;
    border-radius: 8px;
    background: #f8f5f5;
  }
  .faq-list {
    margin-bottom: 6.4vw;
  }
  .faq-list:last-child {
    margin-bottom: 0;
  }
  .faq-list__item {
    position: relative;
    margin-bottom: 4.2666666667vw;
    padding: 4.2666666667vw;
    border-radius: 16px;
    background: #fff;
  }
  .faq-list__item:last-child {
    margin-bottom: 0;
  }
  .faq-list__term {
    position: relative;
    padding: 0 6.4vw 0 10.6666666667vw;
    font-weight: 700;
    cursor: pointer;
  }
  .faq-list__term::before {
    content: "";
    position: absolute;
    top: -1.0666666667vw;
    left: 0;
    width: 8.5333333333vw;
    height: 8.5333333333vw;
    background: url("../img/faq/img_faq_q.png") no-repeat center/contain;
  }
  .faq-list__open {
    position: absolute;
    top: 50%;
    right: 0;
    width: 5.3333333333vw;
    height: 0.64vw;
    transform: translateY(50%);
    border-radius: 50vh;
    background: #3d3333;
  }
  .faq-list__open::before {
    content: "";
    position: absolute;
    top: 0;
    width: 5.3333333333vw;
    height: 0.64vw;
    transform: rotate(90deg);
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    border-radius: 50vh;
    background: #3d3333;
  }
  .is-opened .faq-list__open::before {
    transform: rotate(180deg);
  }
  .faq-list__desc {
    display: none;
    position: relative;
    margin-top: 3.2vw;
    padding: 1.0666666667vw 6.4vw 0 10.6666666667vw;
  }
  .faq-list__desc::before {
    content: "";
    position: absolute;
    top: 0.5333333333vw;
    left: 0;
    width: 8.5333333333vw;
    height: 8.5333333333vw;
    background: url("../img/faq/img_faq_a.png") no-repeat center/contain;
  }
  .faq-list__text {
    font-size: 3.7333333333vw;
  }
  .faq-list__link {
    color: blue;
    text-decoration: underline;
  }
  .faq-text-note-box {
    display: block;
    margin-top: 3.2vw;
  }
  /* ------------------------------
    フローティング
  ------------------------------ */
  .floating {
    position: fixed;
    z-index: 2;
    bottom: 0;
    box-sizing: border-box;
    width: 100%;
    padding: 3.2vw 4.2666666667vw;
    background: rgba(22, 17, 17, 0.8);
    color: #fff;
  }
  .floating__inner {
    margin: 0 auto;
  }
  .floating__title {
    display: none;
  }
  .floating__box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
  }
  .floating-close {
    position: absolute;
    top: 1.6vw;
    right: 2.1333333333vw;
    width: 4.2666666667vw;
  }
  .floating-detail {
    display: flex;
    margin: 1.0666666667vw 2.1333333333vw 2.1333333333vw;
    font-size: 3.2vw;
  }
  .floating-detail__text {
    margin-right: 4.2666666667vw;
  }
  .floating-detail__text:last-child {
    margin-right: 0;
  }
  .floating-detail__num {
    display: inline-block;
    padding: 0 1.0666666667vw;
    font-family: "Montserrat", sans-serif;
    font-size: 7.4666666667vw;
    font-weight: 500;
    line-height: 1.1;
  }
  .floating-detail__text:last-child .floating-detail__num {
    padding-left: 0;
  }
  .floating-button-box {
    display: flex;
    margin: 0 2.1333333333vw;
  }
  .floating-button {
    display: inline-block;
    box-sizing: border-box;
    width: calc(50% - 2.1333333333vw);
    min-width: 42.6666666667vw;
    margin-right: 4.2666666667vw;
    padding: 0.8vw 1.0666666667vw 1.3333333333vw;
    border-radius: 50vh;
    background: linear-gradient(to bottom right, #ff6558, #df98ff);
    color: #fff;
    font-weight: 700;
    text-align: center;
  }
  .floating-button:last-child {
    margin-right: 0;
  }
  .floating-button.is-disabled {
    background: #ebe8e8;
    color: #a8a5a5;
    pointer-events: none;
  }
  .floating-button.is-disabled:hover {
    transform: scale(1);
  }
  /* ------------------------------
    見出し
  ------------------------------ */
  .headline {
    margin-bottom: 8.5333333333vw;
    font-size: 3.7333333333vw;
    font-weight: 700;
  }
  .headline--top {
    position: absolute;
    top: -28.8vw;
  }
  .headline--detail-line-up {
    position: absolute;
    top: -33.0666666667vw;
  }
  .headline__en {
    display: block;
    margin-bottom: 2.1333333333vw;
    font-family: "Montserrat", sans-serif;
    font-size: 10.6666666667vw;
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
  }
  .headline-underline {
    margin-bottom: 8.5333333333vw;
    text-align: center;
  }
  .headline-underline__en {
    position: relative;
    z-index: 1;
    font-family: "Montserrat", sans-serif;
    font-size: 8.5333333333vw;
    text-transform: uppercase;
  }
  .headline-underline__en::before {
    content: "";
    position: absolute;
    z-index: -1;
    right: 50%;
    bottom: 0.5333333333vw;
    width: calc(100% + 8.5333333333vw);
    height: 3.2vw;
    transform: translateX(50%);
    border-radius: 50vh;
    background: #ebe8e8;
  }
  .headline-underline.is-invalid .headline-underline__en {
    color: #ef4c46;
  }
  .headline-underline.is-invalid .headline-underline__en::before {
    background: #ffe5e5;
  }
  .heading {
    margin-bottom: 3.2vw;
    font-size: 6.4vw;
    font-weight: 700;
  }
  .heading--far {
    margin-bottom: 17.6vw;
  }
  /* ------------------------------
    input
  ------------------------------ */
  .input-radio {
    display: inline-block;
    position: relative;
    vertical-align: middle;
  }
  .input-radio input {
    position: absolute;
    opacity: 0;
  }
  .input-radio__label {
    display: block;
    position: relative;
    padding-left: 9.6vw;
    cursor: pointer;
  }
  .input-radio__label::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    box-sizing: border-box;
    width: 6.4vw;
    height: 6.4vw;
    border: 1px solid #ef4c46;
    border-radius: 50%;
    background: #fff;
  }
  input:checked + .input-radio__label::after {
    content: "";
    position: absolute;
    top: 1.6vw;
    left: 1.6vw;
    width: 3.2vw;
    height: 3.2vw;
    border-radius: 50%;
    background: #ef4c46;
  }
  .input-check {
    display: inline-block;
    position: relative;
    margin-bottom: 3.2vw;
    cursor: pointer;
  }
  .input-check:last-child {
    margin-bottom: 0;
  }
  .input-check--far {
    margin-bottom: 5.3333333333vw;
  }
  .input-check input {
    position: absolute;
    opacity: 0;
  }
  .input-check__label {
    display: block;
    position: relative;
    padding-left: 10.6666666667vw;
    transition: 0.5s cubic-bezier(0.32, 0.1, 0, 1);
    cursor: pointer;
  }
  .input-check__label::before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    box-sizing: border-box;
    width: 6.4vw;
    height: 6.4vw;
    transform: translateY(-50%);
    border-radius: 25%;
    border: 2px solid #ef4c46;
    background: url("../img/icon/white/ico_check.svg") center/12px 8px no-repeat, #fff;
  }
  input:checked + .input-check__label::before {
    background: url("../img/icon/white/ico_check.svg") center/12px 8px no-repeat, #ef4c46;
  }
  .input-check__label--bold {
    font-weight: 700;
  }
  .input-check__desc {
    display: block;
    margin-top: 1.0666666667vw;
    letter-spacing: 0.02em;
  }
  .input-check-box {
    margin-bottom: 6.4vw;
  }
  .input-text {
    box-sizing: border-box;
    width: 100%;
    padding: 2.6666666667vw 4.2666666667vw;
    border: 1px solid #8c8888;
    border-radius: 8px;
    background: #fff;
    color: #3d3333;
    font-size: 3.7333333333vw;
    line-height: 1.5;
  }
  .input-text::-moz-placeholder {
    color: #a8a5a5;
  }
  .input-text::placeholder {
    color: #a8a5a5;
  }
  .input-text.is-invalid {
    border: 1px solid #ef4c46;
    background: #ffe5e5;
  }
  .input-text--sp-half {
    width: 50%;
  }
  .input-select-area {
    position: relative;
    width: 100%;
  }
  .input-select-area::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 4.2666666667vw;
    width: 2.6666666667vw;
    height: 2.1333333333vw;
    transform: translateY(-50%);
    background: #ef4c46;
    -webkit-clip-path: polygon(0 0, 50% 100%, 100% 0);
            clip-path: polygon(0 0, 50% 100%, 100% 0);
  }
  .input-select {
    width: 100%;
    padding: 3.2vw 4.2666666667vw;
    border: 1px solid #8b8888;
    border-radius: 8px;
    background: #fff;
    color: #3d3333;
    font-size: 3.7333333333vw;
  }
  /* ------------------------------
    共通レイアウト
  ------------------------------ */
  .ly-outer {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
  }
  .ly-section {
    margin-bottom: 6.4vw;
  }
  .ly-section:last-child {
    margin-bottom: 0;
  }
  /* ------------------------------
    メイン
  ------------------------------ */
  .main {
    flex-grow: 1;
    margin: 21.3333333333vw 0 10.6666666667vw;
  }
  .main--lower {
    margin: 21.3333333333vw auto 10.6666666667vw;
    padding: 0 4.2666666667vw;
  }
  /* ------------------------------
    modal
  ------------------------------ */
  .modal {
    visibility: hidden;
    position: fixed;
    z-index: 5;
    top: 50%;
    left: 50%;
    box-sizing: border-box;
    width: calc(100vw - 8.5333333333vw);
    padding: 8.5333333333vw 5.3333333333vw;
    transform: translate(-50%, -50%);
    border-radius: 16px;
    opacity: 0;
    background: #fff;
  }
  .modal.is-actived {
    visibility: visible;
    opacity: 1;
  }
  .modal__body {
    max-height: calc(100dvh - 25.6vw);
    overflow: scroll;
  }
  .modal__body-scroll {
    max-height: calc(100dvh - 25.6vw);
    overflow: scroll;
  }
  .modal__desc {
    margin-bottom: 2.1333333333vw;
  }
  .modal__desc:last-child {
    margin-bottom: 0;
  }
  .modal__desc--center {
    text-align: center;
  }
  .modal__fc-name {
    display: block;
  }
  .modal__image {
    width: calc(100% - 19.2vw);
    margin: 0 auto 4.2666666667vw;
    overflow: hidden;
    border-radius: 16px;
  }
  .modal__image-large {
    margin: 6.4vw 0;
  }
  .modal__prize-name {
    margin-bottom: 2.1333333333vw;
    font-weight: 700;
  }
  .modal__prize-collected {
    margin-bottom: 2.1333333333vw;
    font-size: 3.7333333333vw;
    font-weight: 700;
  }
  .modal__prize-num {
    margin: 0 1.6vw 0 1.0666666667vw;
    font-family: "Montserrat", sans-serif;
    font-size: 6.4vw;
    font-weight: 500;
  }
  .modal-heading {
    margin-bottom: 8.5333333333vw;
    text-align: center;
  }
  .modal-heading__en {
    position: relative;
    z-index: 1;
    font-family: "Montserrat", sans-serif;
    font-size: 8.5333333333vw;
    font-weight: 500;
    text-transform: uppercase;
  }
  .modal-heading__en::before {
    content: "";
    position: absolute;
    z-index: -1;
    right: 50%;
    bottom: 0.5333333333vw;
    width: calc(100% + 8.5333333333vw);
    height: 3.2vw;
    transform: translateX(50%);
    border-radius: 50vh;
    background: #ebe8e8;
  }
  .modal-heading--error .modal-heading__en {
    color: #ef4c46;
  }
  .modal-heading--error .modal-heading__en::before {
    background: #fdd;
  }
  .modal-close {
    position: absolute;
    top: 4.2666666667vw;
    right: 4.2666666667vw;
    width: 6.4vw;
  }
  .modal-button-box {
    width: 74.6666666667vw;
    margin: 6.4vw auto;
  }
  .modal-button-box:last-child {
    margin-bottom: 0;
  }
  .modal-button-box--close {
    margin-top: 3.2vw;
  }
  .modal-definition-list {
    margin-bottom: 2.1333333333vw;
  }
  .modal-definition-list:last-child {
    margin-bottom: 0;
  }
  .modal-definition-list__item {
    margin-bottom: 2.1333333333vw;
  }
  .modal-definition-list__item:last-child {
    margin-bottom: 0;
  }
  .modal-definition-list__term {
    margin-bottom: 1.0666666667vw;
    font-weight: 700;
  }
  /* ------------------------------
    オーバーレイ
  ------------------------------ */
  .overlay {
    visibility: hidden;
    position: fixed;
    z-index: 4;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    background: rgba(0, 0, 0, 0.8);
  }
  .overlay.is-actived {
    visibility: visible;
    opacity: 1;
  }
  /* ------------------------------
   タグ
  ------------------------------ */
  .tag-status {
    display: inline-block;
    width: 12.8vw;
    padding: 1.3333333333vw 0;
    border-radius: 50vh;
    background: #ef4c46;
    color: #fff;
    font-size: 2.6666666667vw;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1;
    text-align: center;
  }
  .tag-status--large {
    box-sizing: border-box;
    width: auto;
    min-width: 21.3333333333vw;
    padding: 1.8666666667vw 2.1333333333vw 2.1333333333vw;
    font-size: 3.7333333333vw;
  }
  .tag-status.is-before {
    border: 1px solid #ef4c46;
    background: #fff;
    color: #ef4c46;
  }
  .tag-status.is-after {
    border: 1px solid #3d3333;
    background: #fff;
    color: #3d3333;
  }
  .tag-primary {
    margin-right: 3.2vw;
    padding: 1.6vw 4.2666666667vw;
    border-radius: 50vh;
    background: #f8f5f5;
    font-weight: 700;
  }
  .tag-primary:last-child {
    margin-right: 0;
  }
  .tag-primary--white {
    background: #fff;
  }
  .tag-primary.is-cautioned {
    color: #ef4c46;
  }
  .tag-primary__num {
    display: inline-block;
    padding: 0 1.0666666667vw;
    font-family: "Montserrat", sans-serif;
    font-size: 5.8666666667vw;
    font-weight: 500;
  }
  .tag-primary__slash {
    padding: 0 2.1333333333vw;
  }
  .tag-required {
    margin-right: 2.1333333333vw;
    padding: 0.5333333333vw 2.1333333333vw;
    border-radius: 4px;
    background: #ef4c46;
    color: #fff;
    font-size: 12px;
  }
  .tag-required.is-option {
    background: #a2a0a0;
    color: #fff;
  }
  /* ------------------------------
    テキスト
  ------------------------------ */
  .text-bg-box {
    margin-bottom: 4.2666666667vw;
    padding: 4.2666666667vw;
    border-radius: 8px;
    background: #f8f5f5;
  }
  .text-bg-box:last-child {
    margin-bottom: 0;
  }
  .text-bg-box--constant {
    margin-top: 8.5333333333vw;
  }
  .text-bg-box--white {
    background: #fff;
  }
  .text-bg-box--white-narrow {
    background: #fff;
  }
  .text-bg-box__image {
    margin-bottom: 6.4vw;
    overflow: hidden;
    border-radius: 8px;
  }
  .text-bg-box__2column {
    display: block;
    margin-bottom: 4.2666666667vw;
  }
  .text-bg-box__2column:last-child {
    margin-bottom: 0;
  }
  .text-bg-box--far {
    margin-bottom: 6.4vw;
  }
  .text-title-bg-box {
    margin-bottom: 6.4vw;
    padding: 4.2666666667vw;
    border-radius: 8px;
    background: #f8f5f5;
    font-weight: 700;
  }
  .text-title-bg-box--flex-far {
    margin-bottom: 14.9333333333vw;
  }
  .text-title-bg-box__sub-text {
    display: block;
    margin-top: 2.1333333333vw;
    font-size: 3.7333333333vw;
  }
  .text-title-bg-box__num {
    display: inline-block;
    margin: 0 1.0666666667vw;
    font-family: "Montserrat", sans-serif;
    font-size: 6.4vw;
    font-weight: 500;
  }
  .text-title-bg-box__image {
    margin-top: 4.2666666667vw;
    overflow: hidden;
    border-radius: 8px;
  }
  .text-definition-list {
    margin-bottom: 6.4vw;
  }
  .text-definition-list:last-child {
    margin-bottom: 0;
  }
  .text-definition-list--small {
    font-size: 3.7333333333vw;
  }
  .text-definition-list--vertical {
    margin-bottom: 4.2666666667vw;
  }
  .text-definition-list--stock {
    margin-bottom: 4.2666666667vw;
  }
  .text-definition-list__item {
    margin-bottom: 4.2666666667vw;
  }
  .text-definition-list--small .text-definition-list__item {
    display: flex;
    margin-bottom: 3.2vw;
  }
  .text-definition-list--stock .text-definition-list__item {
    margin-bottom: 2.1333333333vw;
  }
  .text-definition-list__item:last-child {
    margin-bottom: 0;
  }
  .text-definition-list__term {
    margin-bottom: 1.0666666667vw;
    font-weight: 700;
  }
  .text-definition-list--small .text-definition-list__term {
    flex-shrink: 0;
    width: 29.8666666667vw;
  }
  .text-definition-list--stock .text-definition-list__item:nth-child(n+2) .text-definition-list__term {
    margin: 0 0 0 2.1333333333vw;
    font-size: 3.7333333333vw;
  }
  .text-definition-list__desc.is-cautioned {
    color: #ef4c46;
  }
  .text-definition-list--th-more-large .text-definition-list__desc {
    margin-left: 8.5333333333vw;
  }
  .text-definition-list--stock .text-definition-list__item:nth-child(n+2) .text-definition-list__desc {
    margin-left: 2.1333333333vw;
    font-size: 3.7333333333vw;
  }
  .text-definition-list__price {
    display: inline-block;
    margin-right: 0.5333333333vw;
    font-family: "Montserrat", sans-serif;
    font-size: 6.4vw;
    font-weight: 500;
    line-height: 1.1;
  }
  .text-modal {
    display: block;
    margin-top: 1.0666666667vw;
    color: #8c8888;
    font-size: 3.7333333333vw;
  }
  .text-modal::after {
    content: "";
    display: inline-block;
    width: 4.2666666667vw;
    height: 4.2666666667vw;
    margin-left: 1.6vw;
    transform: translateY(0.5333333333vw);
    background: url("../img/icon/gray/ico_faq.svg") no-repeat center/contain;
  }
  .text-note {
    display: block;
    position: relative;
    margin-bottom: 2.1333333333vw;
    padding-left: 1.25em;
    font-size: 3.7333333333vw;
  }
  .text-note::before {
    content: "※";
    position: absolute;
    top: 0;
    left: 0;
  }
  .text-note:last-child {
    margin-bottom: 0;
  }
  .text-note--far {
    margin-bottom: 4.2666666667vw;
  }
  .text-note--caution {
    color: #ef4c46;
  }
  .text-note--caution-large {
    color: #ef4c46;
  }
  .text-caution-box {
    margin-bottom: 6.4vw;
    padding: 4.2666666667vw;
    border-radius: 8px;
    background: #ffe5e5;
  }
  .text-caution {
    position: relative;
    margin-bottom: 2.1333333333vw;
    padding-left: 8.5333333333vw;
    color: #ef4c46;
    font-weight: 700;
  }
  .text-caution:last-child {
    margin-bottom: 0;
  }
  .text-caution::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 6.4vw;
    height: 6.4vw;
    background: url("../img/icon/main/ico_caution.svg") no-repeat center/contain;
  }
  .text-link-box {
    margin-top: 6.4vw;
  }
  .text-link {
    color: #1d7dff;
  }
  .text-link-black {
    position: relative;
    font-size: 3.2vw;
    font-weight: 700;
  }
  .text-link-black::before {
    content: "";
    position: absolute;
    bottom: -1.0666666667vw;
    width: 100%;
    height: 0.2666666667vw;
    background: #3d3333;
  }
  .text-link-black-box {
    text-align: center;
  }
  .text-title-center {
    margin-bottom: 8.5333333333vw;
    font-size: 4.8vw;
    font-weight: 700;
    text-align: center;
  }
  .text-title-center:last-child {
    margin-bottom: 0;
  }
  .text-center {
    margin-bottom: 2.1333333333vw;
    text-align: center;
  }
  .text-center:last-child {
    margin-bottom: 0;
  }
  .text-center--bold {
    font-weight: 700;
  }
  .text-center--sp-small {
    font-size: 3.7333333333vw;
  }
  /* ------------------------------
    トップページ
  ------------------------------ */
  .top-section {
    padding: 21.3333333333vw 4.2666666667vw;
    background: #f8f5f5;
  }
  .top-section--news {
    background: #fff;
  }
  .top-section--beginner {
    padding-bottom: 0;
    background: #fff;
  }
  .top-section--service {
    padding-top: 10.6666666667vw;
    background: #fff;
  }
  .top-section--detail-line-up {
    padding-top: 25.6vw;
  }
  .top-section:last-child {
    padding-bottom: 0;
  }
  .top-section__inner {
    position: relative;
    margin: 0 auto;
  }
  .top-button-box {
    display: flex;
    justify-content: flex-end;
  }
  .top-beginner {
    display: flex;
    position: relative;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4.2666666667vw;
    padding: 8.5333333333vw 8.5333333333vw 8.5333333333vw 25.6vw;
    border-radius: 16px;
    background: linear-gradient(to bottom right, #ff6558, #df98ff);
    color: #fff;
    font-size: 3.2vw;
    font-weight: 700;
  }
  .top-beginner::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 8.5333333333vw;
    width: 10.6666666667vw;
    height: 12.2666666667vw;
    transform: translateY(-45%);
    background: url("../img/icon/white/ico_beginner.svg") no-repeat center/contain;
  }
  .top-beginner--trial {
    padding-left: 26.6666666667vw;
  }
  .top-beginner--trial::before {
    width: 12.8vw;
    height: 14.9333333333vw;
    background: url("../img/icon/white/ico_trial.svg") no-repeat center/contain;
  }
  .top-beginner:last-child {
    margin-bottom: 0;
  }
  .top-beginner__title {
    margin-right: 20px;
  }
  .top-beginner__en {
    display: block;
    margin-bottom: 0.5333333333vw;
    font-family: "Montserrat", sans-serif;
    font-size: 9.6vw;
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
  }
  .top-beginner__arrow {
    box-sizing: border-box;
    width: 17.0666666667vw;
    height: 17.0666666667vw;
    border: 1px solid #fff;
    border-radius: 50%;
    background: url("../img/icon/white/ico_arrow.svg") center/4.2666666667vw 3.2vw no-repeat;
  }
  .top-heading {
    margin-bottom: 6.4vw;
    text-align: center;
  }
  .top-heading__en {
    position: relative;
    z-index: 1;
    font-family: "Montserrat", sans-serif;
    font-size: 7.4666666667vw;
    font-weight: 500;
    text-transform: uppercase;
  }
  .top-heading__en::before {
    content: "";
    position: absolute;
    z-index: -1;
    right: 50%;
    bottom: 0;
    width: calc(100% + 8.5333333333vw);
    height: 3.2vw;
    transform: translateX(50%);
    border-radius: 50vh;
    background: #ebe8e8;
  }
  .top-service-box {
    display: flex;
    flex-wrap: wrap;
    gap: 2.1333333333vw;
  }
  .top-service {
    display: block;
    width: calc(50% - 1.0666666667vw);
  }
  .is-onlyPC {
    display: none;
  }
}
