@charset "UTF-8";

@layer components {
  .c-contact-button-for-nav {
    background-color: var(--primary);
    color: var(--primary-foreground);
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.2;
    min-height: 2.875rem;
    padding: 0.75rem 1.5rem;
    border-radius: 5px;

    & > img {
      width: 0.95375rem;
      height: auto;
    }
  }

  .c-contact-button-for-nav--small {
    padding-inline: 1rem;
    font-size: 0.8125rem;
  }

  .c-page-top {
    position: relative;
    padding-inline: clamp(1.5rem, 0.268rem + 5.26vw, 5rem);
    background-color: var(--secondary);
    overflow: hidden;

    .c-page-top__inner {
      position: relative;
      z-index: 1;
      width: 100%;
      max-width: 80rem;
      margin-inline: auto;
      padding-top: clamp(14rem, 13.78rem + 0.94vw, 14.625rem);
      padding-bottom: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
    }

    .c-page-top__title {
      font-size: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
      margin: 0;
      color: var(--foreground-enhanced);
    }

    .c-page-top__en-title {
      color: var(--primary);
      font-size: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem);
      line-height: 1.2;
      margin-bottom: 0.25rem;
      display: block;
    }

    .c-page-top__deco {
      position: absolute;
      transform: rotate(10.81deg);
      width: clamp(23.464rem, 19.335rem + 17.62vw, 35.193rem);
      height: auto;
      right: calc(-1 * clamp(9.112rem, 8.962rem + 0.64vw, 9.537rem));
      bottom: calc(-1 * clamp(7.169rem, 4.245rem + 12.48vw, 15.475rem));
    }
  }

  .c-breadcrumb {
    width: 100%;
    margin-top: calc(64 / 16 * 1rem);
    display: flex;
    column-gap: calc(16 / 16 * 1rem);
    font-size: calc(14 / 16 * 1rem);
    color: #6a6b6e;
    line-height: 1.7;
  }

  .c-breadcrumb__list {
    width: 100%;
  }

  .c-breadcrumb__label {
    flex-shrink: 0;
  }

  .c-breadcrumb__label::after {
    content: '：';
  }

  .c-breadcrumb__item {
    display: inline;
    overflow-wrap: break-word;
  }

  .c-breadcrumb__link:any-link {
    color: var(--primary);
    text-decoration-thickness: calc(1 / 16 * 1rem);
    text-underline-offset: calc(3 / 16 * 1rem);
  }

  @media (hover: hover) {
    .c-breadcrumb__link:hover {
      text-decoration: underline;
    }
  }

  .c-breadcrumb__link:active {
    text-decoration: underline;
  }

  .c-breadcrumb__separator-icon {
    display: inline-block;
    margin-inline: calc(16 / 16 * 1rem);
    width: calc(16 / 16 * 1rem);
    height: calc(1 / 16 * 1rem);
    vertical-align: middle;
    color: var(--primary);
  }

  .c-contact-button-white {
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: calc(8 / 16 * 1rem);
    padding: calc(8 / 16 * 1rem) calc(8 / 16 * 1rem) calc(8 / 16 * 1rem)
      calc(24 / 16 * 1rem);
    width: fit-content;
    min-width: min(clamp(15.625rem, 14.965rem + 2.82vw, 17.5rem), 100%);
    min-height: clamp(3rem, 2.824rem + 0.75vw, 3.5rem);
    background-color: var(--background);
    color: var(--primary);
    border-radius: 3px;
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);

    .c-contact-button-white__icon {
      flex-shrink: 0;
      background-color: var(--primary);
      color: var(--primary-foreground);
      border-radius: 3px;
    }

    .c-contact-button-white__icon__arrow {
      width: calc(32 / 16 * 1rem);
      aspect-ratio: 1;
      display: grid;
      place-items: center;
    }
  }

  .c-section-title {
    text-align: left;
  }

  .c-section-title--center {
    text-align: center;
  }

  .c-section-title__title {
    font-size: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
    font-weight: bold;
    margin: 0;
    color: var(--foreground-enhanced);
  }

  .c-section-title__en-title {
    color: var(--primary);
    font-size: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem);
    line-height: 1.2;
    margin-bottom: 0.25rem;
    display: block;
  }

  .c-button-primary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: calc(8 / 16 * 1rem);
    padding: calc(8 / 16 * 1rem) calc(8 / 16 * 1rem) calc(8 / 16 * 1rem)
      calc(24 / 16 * 1rem);
    width: fit-content;
    min-width: min(clamp(15.625rem, 14.965rem + 2.82vw, 17.5rem), 100%);
    min-height: clamp(3rem, 2.824rem + 0.75vw, 3.5rem);
    background: linear-gradient(120deg, #1259a8 0%, #a8dbf4 100%);
    color: var(--primary-foreground);
    border-radius: 3px;
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);

    .c-button-primary__icon {
      flex-shrink: 0;
      background-color: var(--primary);
      color: var(--primary-foreground);
      border-radius: 3px;
    }

    .c-button-primary__icon__arrow {
      width: calc(32 / 16 * 1rem);
      aspect-ratio: 1;
      display: grid;
      place-items: center;
    }
  }

  .c-section-title-secondary {
    text-align: center;
    font-size: clamp(1.125rem, 1.081rem + 0.19vw, 1.25rem);
    padding-bottom: calc(16 / 16 * 1rem);
    margin-inline: auto;
    position: relative;

    &::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 40px;
      height: 3px;
      background-color: var(--primary);
    }
  }

  .c-campaign {
    padding-top: calc(30 / 16 * 1rem);
    padding-bottom: calc(20 / 16 * 1rem);
    padding-inline: calc(16 / 16 * 1rem);
    position: relative;
    color: var(--primary-foreground);
    max-width: calc(780 / 16 * 1rem);
    margin-inline: auto;

    h3 {
      text-align: center;
      font-size: clamp(1rem, 0.956rem + 0.19vw, 1.125rem);
      font-weight: 500;
      padding: calc(8 / 16 * 1rem) 0;
      border-top: 1px solid var(--primary-foreground);
      border-bottom: 1px solid var(--primary-foreground);
      width: fit-content;
      margin-inline: auto;
    }

    p {
      margin-top: calc(24 / 16 * 1rem);
      display: flex;
      justify-content: center;
      align-items: center;
      flex-wrap: wrap;
      row-gap: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
      column-gap: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);

      .c-campaign__normal-text {
        font-size: calc(14 / 16 * 1rem);
        font-weight: 500;
        width: 100%;
        text-align: center;
      }

      .c-campaign__circle-text {
        display: inline-block;
        font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
        font-weight: 500;
        text-align: center;
        padding: 1.2777777778em;
        aspect-ratio: 1;
        border-radius: 50%;
        display: grid;
        place-items: center;
        width: fit-content;
        height: auto;
        border: 1px solid var(--primary-foreground);
        line-height: 1.3;
      }

      .c-campaign__large-text {
        font-size: clamp(1.5rem, 0.928rem + 2.44vw, 3.125rem);
        font-weight: bold;
        color: #ffea00;
        font-family: 'Noto Sans JP', sans-serif;
      }
    }

    ul {
      margin-top: calc(24 / 16 * 1rem);
      font-size: calc(9 / 16 * 1rem);
      display: block;
      width: fit-content;
      margin-inline: auto;
    }

    img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      z-index: -1;
    }
  }

  .c-joining-costs {
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 0.648rem + 1.5vw, 2rem);
    align-items: center;
    max-width: calc(912 / 16 * 1rem);
    margin-inline: auto;

    @media (min-width: 798px) {
      flex-direction: row;
      justify-content: center;
      align-items: stretch;
    }

    .c-joining-costs__card {
      position: relative;
      display: flex;
      width: 100%;
      flex: 1;
      flex-direction: column;
      max-width: calc(400 / 16 * 1rem);

      .c-joining-costs__limited-label {
        position: absolute;
        width: calc(80 / 16 * 1rem);
        height: auto;
        aspect-ratio: 1;
        border-radius: 50%;
        background-color: #ffea00;
        color: var(--primary);
        display: grid;
        place-items: center;
        font-size: calc(14 / 16 * 1rem);
        font-weight: 500;
        text-align: center;
        line-height: 1.1;
        transform: rotate(-15deg);
        left: 0;
        top: -49px;

        span {
          font-size: calc(18 / 16 * 1rem);
        }
      }

      .c-joining-costs__card__head {
        text-align: center;
        background-color: var(--primary);
        color: var(--primary-foreground);
        border-radius: 10px 10px 0 0;
        font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
        padding: 1rem;
        line-height: 1.2;
      }

      .c-joining-costs__card__body {
        border: 1px solid var(--primary);
        border-radius: 0 0 10px 10px;
        padding: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
        flex: 1;
      }
    }

    .c-joining-costs__plus-icon {
      width: clamp(2.5rem, 2.324rem + 0.75vw, 3rem);
      height: auto;
      aspect-ratio: 1;
    }

    .c-joining-costs__card--admission-fee {
      .c-joining-costs__card__body {
        display: flex;
        flex-direction: column;
        align-items: center;

        img {
          width: 100%;
          height: auto;
          max-width: calc(265 / 16 * 1rem);
          margin-inline: auto;
          display: block;
        }

        p {
          font-size: calc(12 / 16 * 1rem);
          margin-top: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
          display: inline-block;
          width: fit-content;
          margin-inline: auto;
        }
      }
    }

    .c-joining-costs__card--monthly-fee {
      .c-joining-costs__card__body {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: calc(8 / 16 * 1rem);

        img {
          width: calc(40 / 16 * 1rem);
          height: auto;
        }

        p {
          font-size: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem);
        }
      }
    }
  }

  .c-plan-option {
    max-width: calc(1040 / 16 * 1rem);
    margin-inline: auto;

    .c-plan-option__plan {
      display: grid;
      gap: calc(40 / 16 * 1rem);

      @media (min-width: 798px) {
        grid-template-columns: repeat(2, 1fr);
      }

      .c-plan-option__plan__item {
        img {
          display: block;
          border-radius: 10px;
          object-fit: cover;
          object-position: center;
          width: 100%;
          height: auto;
        }

        .c-plan-option__plan__item__caption {
          margin-top: calc(8 / 16 * 1rem);
          font-size: clamp(0.75rem, 0.728rem + 0.09vw, 0.813rem);
          color: var(--foreground-light);
          text-align: end;
          opacity: 0.6;
        }

        .c-plan-option__plan__item__details {
          margin-top: 1rem;
          border-radius: clamp(0.313rem, 0.202rem + 0.47vw, 0.625rem);
          border: 1px solid var(--primary);
          padding: clamp(1rem, 0.824rem + 0.75vw, 1.5rem)
            clamp(1.5rem, 1.148rem + 1.5vw, 2.5rem);

          .c-plan-option__plan__item__details__title {
            font-size: clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem);
            font-weight: 500;
            line-height: 1.2;
          }

          .c-plan-option__plan__item__details__price {
            margin-top: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
            font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
            line-height: 1.3;

            span {
              font-size: clamp(1.75rem, 1.486rem + 1.13vw, 2.5rem);
              color: var(--primary);
              margin-right: 0.5rem;
            }
          }
        }

        .c-plan-option__plan__item__text {
          margin-top: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
          font-size: calc(14 / 16 * 1rem);
          line-height: 1.8;
        }
      }
    }

    .c-plan-option__option {
      margin-top: calc(40 / 16 * 1rem);
      background-color: var(--secondary);
      padding: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);

      .c-plan-option__option__title {
        font-size: clamp(1rem, 0.956rem + 0.19vw, 1.125rem);
        font-weight: 500;
        line-height: 1.2;
        padding-left: 8px;
        position: relative;

        &::before {
          content: '';
          position: absolute;
          left: 0;
          top: 0;
          width: 2px;
          height: 100%;
          background-color: var(--primary);
        }
      }

      .c-plan-option__option__list {
        margin-top: calc(24 / 16 * 1rem);
        display: grid;
        column-gap: calc(24 / 16 * 1rem);

        @media (min-width: 798px) {
          grid-template-columns: repeat(2, 1fr);
        }

        .c-plan-option__option__list__item {
          padding: calc(16 / 16 * 1rem);
          border-bottom: 1px solid #6392c6;
          display: flex;
          flex-direction: column;
          gap: calc(16 / 16 * 1rem);

          &:first-child {
            border-top: 1px solid #6392c6;
          }

          @media (min-width: 798px) {
            &:nth-child(2) {
              border-top: 1px solid #6392c6;
            }
          }

          @media (min-width: 1200px) {
            flex-direction: row;
            justify-content: space-between;
            align-items: center;
          }

          .c-plan-option__option__list__item__details {
            display: flex;
            align-items: flex-start;
            gap: calc(8 / 16 * 1rem);

            img {
              width: calc(24 / 16 * 1rem);
              height: auto;
            }

            p {
              font-size: calc(14 / 16 * 1rem);
            }
          }

          .c-plan-option__option__list__item__price {
            font-size: calc(14 / 16 * 1rem);
            text-align: right;
            line-height: 1.2;

            span {
              font-size: calc(16 / 16 * 1rem);
              font-weight: 500;
              color: var(--primary);
            }
          }
        }

        .c-plan-option__option__list__sub-text {
          display: flex;
          justify-content: flex-end;
          align-items: flex-end;
          padding-top: calc(16 / 16 * 1rem);

          p {
            font-size: calc(13 / 16 * 1rem);
            color: var(--foreground-light);
          }
        }
      }
    }
  }

  .c-equipment {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    row-gap: calc(40 / 16 * 1rem);
    column-gap: calc(4 / 16 * 1rem);
    max-width: calc(1280 / 16 * 1rem);
    margin-inline: auto;

    .c-equipment__item {
      img {
        display: block;
        margin-inline: auto;
        height: clamp(2.5rem, 2.368rem + 0.56vw, 2.875rem);
        width: auto;
      }

      p {
        font-size: clamp(0.625rem, 0.581rem + 0.19vw, 0.75rem);
        line-height: 1.3;
        margin-top: clamp(0.313rem, 0.246rem + 0.28vw, 0.5rem);
        text-align: center;
      }
    }

  }
  .c-equipment__note {
    margin-top: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
    font-size: clamp(0.625rem, 0.559rem + 0.28vw, 0.813rem);
    text-align: center;
    color: var(--foreground-light);
  }

  .c-flow-compact {
    display: grid;
    place-items: center;
    overflow-x: auto;
    position: relative;
    z-index: 1;

    &::-webkit-scrollbar {
      height: 3px;
    }

    &::-webkit-scrollbar-track {
      background-color: white;
      border-radius: 100vmax;
      margin-inline: 24px;
    }

    &::-webkit-scrollbar-thumb {
      background-color: var(--primary);
      border-radius: 100vmax;
    }

    .c-flow-compact__inner__item__step {
      font-size: clamp(0.813rem, 0.79rem + 0.09vw, 0.875rem);
      padding: calc(8 / 16 * 1rem) calc(24 / 16 * 1rem);
      border-radius: 100vmax;
      background-color: #fff;
      color: var(--primary);
      width: fit-content;
      line-height: 1;
      font-weight: 500;
      margin-top: 24px;
      position: relative;

      &::before {
        content: '';
        position: absolute;
        width: 1px;
        height: 24px;
        background-color: var(--primary);
        left: 50%;
        transform: translateX(-50%);
        top: -24px;
      }
    }

    &.c-flow-compact--colored {
      .c-flow-compact__inner__item__icon,
      .c-flow-compact__inner__item__step {
        background-color: var(--secondary);
      }
    }

    .c-flow-compact__wrapper {
      display: grid;
      place-items: center;
      overflow-x: hidden;
      width: 100%;
      min-width: fit-content;
    }

    .c-flow-compact__inner {
      display: inline-flex;
      gap: clamp(2.5rem, 1.62rem + 3.76vw, 5rem);
      padding-inline: 32px;
      padding-bottom: 24px;
    }

    .c-flow-compact__inner__item {
      .c-flow-compact__inner__item__icon {
        width: clamp(7.5rem, 6.62rem + 3.76vw, 10rem);
        aspect-ratio: 1;
        border: 1px solid var(--primary);
        border-radius: 5px;
        display: grid;
        place-items: center;

        img {
          height: clamp(3rem, 2.516rem + 2.07vw, 4.375rem);
          width: auto;
        }
      }

      .c-flow-compact__inner__item__step--blue {
        background-color: var(--primary);
        color: var(--primary-foreground);
      }

      .c-flow-compact__inner__item__text {
        font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
        margin-top: calc(16 / 16 * 1rem);
        font-weight: 500;
      }
    }
  }

  .c-flow-compact__inner__item:first-child {
    .c-flow-compact__inner__item__step::after {
      display: block;
      content: '';
      position: absolute;
      height: 1px;
      width: calc(infinity * 1px);
      top: 50%;
      transform: translateY(-50%);
      left: -9999px;
      background-color: var(--primary);
      z-index: -1;
    }
  }

  .c-flow-item {
    padding: clamp(2.5rem, 2.324rem + 0.75vw, 3rem)
      clamp(1.5rem, 0.796rem + 3vw, 3.5rem);
    background-color: var(--secondary);
    border-radius: 10px;
    display: grid;
    gap: clamp(1.5rem, 0.62rem + 3.76vw, 4rem);

    @media (min-width: 768px) {
      grid-template-columns: auto 1fr;
    }

    .c-flow-item__icon {
      width: clamp(7.5rem, 6.62rem + 3.76vw, 10rem);
      height: auto;
      aspect-ratio: 1;
      border: 1px solid var(--primary);
      border-radius: 5px;
      display: grid;
      place-items: center;

      img {
        width: auto;
        height: clamp(3rem, 2.516rem + 2.07vw, 4.375rem);
        object-fit: contain;
      }
    }

    .c-flow-item__content__step {
      font-size: clamp(0.813rem, 0.79rem + 0.09vw, 0.875rem);
      line-height: 1;
      font-weight: 500;
      padding: clamp(0.375rem, 0.331rem + 0.19vw, 0.5rem);
      border-radius: 100vmax;
      width: fit-content;
      min-width: clamp(5.5rem, 5.456rem + 0.19vw, 5.625rem);
      text-align: center;
    }

    &:first-child .c-flow-item__content__step {
      background-color: var(--primary);
      color: var(--primary-foreground);
    }

    &:not(:first-child) .c-flow-item__content__step {
      background-color: white;
      color: var(--primary);
    }

    .c-flow-item__content__title {
      margin-top: calc(16 / 16 * 1rem);
      font-size: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem);
      font-weight: bold;
      color: var(--foreground-enhanced);
      line-height: 1.3;
    }

    .c-flow-item__content__description {
      font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
      margin-top: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
      line-height: 1.8;
    }

    .c-flow-item__content__button {
      margin-top: calc(32 / 16 * 1rem);

      @media (min-width: 768px) {
        margin-top: calc(24 / 16 * 1rem);
      }
    }
  }

  .c-news-list {
    .c-news-list__container {
      border-top: 1px solid var(--primary);
    }

    .c-news-item {
      display: block;
      padding-top: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
      padding-bottom: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
      border-bottom: 1px solid var(--primary);

      .c-news-item__meta {
        display: flex;
        align-items: center;
        gap: calc(16 / 16 * 1rem);
      }

      .c-news-item__date {
        font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        font-weight: 500;
        color: var(--primary);
      }

      .c-news-item__category {
        font-size: clamp(0.813rem, 0.79rem + 0.09vw, 0.875rem);
        font-weight: 500;
        color: var(--primary);
        line-height: 1;
        padding: calc(8 / 16 * 1rem) calc(16 / 16 * 1rem);
        background-color: #dceaff;
      }

      .c-news-item__title {
        margin-top: calc(24 / 16 * 1rem);
        font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
        font-weight: 500;
        line-height: 1.3;
        color: var(--foreground-enhanced);
      }

      @media (hover: hover) {
        &:hover {
          .c-news-item__title {
            text-decoration: underline;
            text-decoration-color: var(--primary);
            text-decoration-thickness: 1px;
            text-underline-offset: 2px;
          }
        }
      }

      .c-news-item__excerpt {
        margin-top: calc(16 / 16 * 1rem);
        font-size: calc(14 / 16 * 1rem);
        line-height: 1.8;
      }
    }

    .c-news-list__more {
      margin-top: clamp(3rem, 2.824rem + 0.75vw, 3.5rem);
      display: grid;
      place-items: center;
    }
  }

  .c-faq-list {
    display: grid;
    row-gap: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
    column-gap: clamp(1.5rem, 1.148rem + 1.5vw, 2.5rem);

    @media (min-width: 768px) {
      grid-template-columns: repeat(2, 1fr);
    }

    .c-faq {
      background-color: var(--background);
      border-radius: 5px;
      border: 1px solid var(--primary);
      height: fit-content;
      font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);

      .c-faq__summary {
        padding: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
        line-height: 1.3;

        &::before {
          content: 'Q';
          display: block;
          flex-shrink: 0;
          font-size: clamp(0.813rem, 0.768rem + 0.19vw, 0.938rem);
          font-weight: 500;
          background-color: var(--primary);
          color: var(--primary-foreground);
          width: clamp(1.75rem, 1.662rem + 0.38vw, 2rem);
          height: auto;
          aspect-ratio: 1;
          display: grid;
          place-items: center;
          border-radius: 50%;
        }
      }

      .c-faq__summary__icon {
        width: 20px;
        height: auto;
        aspect-ratio: 1;
        position: relative;

        &::before,
        &::after {
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          left: 0;
          content: '';
          display: block;
          width: 100%;
          height: 1.5px;
          background-color: var(--primary);
          border-radius: 1px;
          transition: all 0.3s ease;
        }

        &::after {
          transform: rotate(90deg);
          transform-origin: center;
        }
      }

      &:is([open]) {
        .c-faq__summary__icon {
          &::before {
            transform: rotate(90deg);
            opacity: 0;
          }

          &::after {
            transform: rotate(180deg);
          }
        }
      }

      &::details-content {
        padding-inline: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);

        @media (prefers-reduced-motion: no-preference) {
          overflow: clip;
          transition-duration: 300ms;
          transition-property: content-visibility, block-size;
          transition-behavior: allow-discrete;
        }
      }

      &:not(:open)::details-content {
        block-size: 0;
      }

      .c-faq__content {
        padding: clamp(1rem, 0.824rem + 0.75vw, 1.5rem) 0;
        width: 100%;
        border-top: 1px solid #dceaff;
        display: flex;
        justify-content: flex-start;
        align-items: baseline;
        gap: clamp(0.5rem, 0.324rem + 0.75vw, 1rem);
        line-height: 1.8;

        a {
          text-decoration: underline;

          @media (hover: hover) {
            &:hover {
              opacity: 0.7;
            }
          }
        }

        &::before {
          content: 'A';
          display: block;
          flex-shrink: 0;
          font-size: clamp(0.813rem, 0.768rem + 0.19vw, 0.938rem);
          font-weight: 500;
          background-color: var(--secondary);
          color: var(--primary);
          width: clamp(1.75rem, 1.662rem + 0.38vw, 2rem);
          height: auto;
          aspect-ratio: 1;
          display: grid;
          place-items: center;
          border-radius: 50%;
        }
      }
    }
  }

  .c-access {
    display: grid;
    gap: clamp(1.5rem, 0.972rem + 2.25vw, 3rem);

    @media (min-width: 768px) {
      grid-template-columns: repeat(2, 1fr);
      align-items: center;
    }

    iframe {
      min-height: 260px;
      border-radius: 10px;

      @media (min-width: 768px) {
        min-height: 500px;
      }
    }

    .c-access__content__list {
      container-type: inline-size;
      display: grid;
      gap: calc(24 / 16 * 1rem);

      .c-access__content__list__item {
        display: grid;
        row-gap: calc(8 / 16 * 1rem);
        column-gap: calc(24 / 16 * 1rem);

        @container (inline-size > 25rem) {
          grid-template-columns: auto 1fr;
          align-items: baseline;
        }

        .c-access__content__list__item__label {
          width: fit-content;
          min-width: calc(100 / 16 * 1rem);
          color: var(--primary);
          background-color: var(--secondary);
          font-size: calc(14 / 16 * 1rem);
          font-weight: 500;
          line-height: 1;
          padding: calc(8 / 16 * 1rem);
          text-align: center;
          border-radius: 100vmax;
        }
      }
    }

    .c-access__content__parking {
      margin-top: calc(24 / 16 * 1rem);
      border: 1px solid #e6e6e6;
      width: 100%;
      border-radius: 10px;
      overflow: hidden;

      h3 {
        font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
        text-align: center;
        font-weight: 500;
        line-height: 1.3;
        padding: calc(16 / 16 * 1rem) clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
        background-color: #e6e6e6;
      }

      ul {
        font-size: calc(14 / 16 * 1rem);
        padding: calc(16 / 16 * 1rem) clamp(1rem, 0.824rem + 0.75vw, 1.5rem)
          calc(16 / 16 * 1rem)
          calc(clamp(1rem, 0.824rem + 0.75vw, 1.5rem) + 1em);

        li {
          list-style: disc;
          list-style-position: outside;
          line-height: 1.8;
        }
      }
    }

    .c-access__content__button {
      margin-top: calc(32 / 16 * 1rem);
      margin-inline: auto;

      @media (min-width: 768px) {
        margin-inline: 0;
      }
    }
  }

  .c-cta {
    padding: clamp(5rem, 4.12rem + 3.76vw, 7.5rem)
      clamp(1.5rem, 0.268rem + 5.26vw, 5rem);
    background-color: #282828;
    color: var(--primary-foreground);
    position: relative;
    overflow: hidden;

    .c-cta__inner {
      width: 100%;
      max-width: 80rem;
      margin-inline: auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: clamp(2.5rem, 2.324rem + 0.75vw, 3rem);
      position: relative;
      z-index: 2;
    }

    .c-cta__background {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      z-index: 0;

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: bottom;

        @media (min-width: 768px) {
          object-position: center;
        }
      }
    }

    .c-cta__background-cover {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      background-color: #282828;
      opacity: 0.85;
      z-index: 0;
    }

    .c-cta__deco-left,
    .c-cta__deco-right {
      position: absolute;
      width: clamp(13.611rem, 4.948rem + 36.96vw, 38.212rem);
      height: auto;
      top: 50%;
      transform: translateY(-50%);
      opacity: 0.06;
    }

    .c-cta__deco-left {
      left: calc(-1 * clamp(3.125rem, 0.418rem + 11.55vw, 10.813rem));
    }

    .c-cta__deco-right {
      right: calc(-1 * clamp(4.875rem, 4.611rem + 1.13vw, 5.625rem));
    }

    .c-section-title__en-title,
    .c-section-title__title {
      color: var(--primary-foreground);
    }

    p {
      text-align: center;
    }
  }

  .c-feature-overview {
    display: grid;
    gap: 40px;

    @media (min-width: 768px) {
      grid-template-columns: repeat(2, 1fr);
    }

    @media (min-width: 1200px) {
      grid-template-columns: repeat(3, 1fr);
    }

    .c-feature-overview__item {
      .c-feature-overview__item__number {
        background-color: #dceaff;
        padding: calc(4 / 16 * 1rem) calc(24 / 16 * 1rem);
        font-size: calc(14 / 16 * 1rem);
        border-radius: 100vmax;
        width: fit-content;
        color: var(--primary);
        line-height: 1;
        position: relative;
        margin-inline: auto;

        &::after {
          content: '';
          display: block;
          background-color: #dceaff;
          position: absolute;
          clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
          width: 14px;
          height: 12px;
          bottom: -11px;
          left: 50%;
          transform: translateX(-50%);
        }
      }

      img {
        width: 100%;
        height: auto;
        aspect-ratio: calc(400 / 225);
        object-fit: cover;
        border-radius: 5px;
        margin-top: calc(16 / 16 * 1rem);
      }

      .c-feature-overview__item__title {
        font-size: clamp(1rem, 0.956rem + 0.19vw, 1.125rem);
        margin-top: calc(16 / 16 * 1rem);
        line-height: 1.4;
        font-weight: 500;
        color: var(--foreground-enhanced);
      }

      .c-feature-overview__item__text {
        font-size: calc(14 / 16 * 1rem);
        margin-top: calc(16 / 16 * 1rem);
        line-height: 1.8;
      }
    }
  }
}
