/* ========================================
   フロントページ専用スタイル
   ======================================== */

/* フロントページのスタイルをここに記述 */

/* 回転アニメーション */
@keyframes ms-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* オープニングアニメーション */
@keyframes ms-cover-slide-out {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(100%, -100%);
  }
}

@keyframes ms-cover-border-radius {
  0% {
    border-bottom-left-radius: 0;
  }
  100% {
    border-bottom-left-radius: 50%;
  }
}

@keyframes ms-image-scale {
  0% {
    transform: scale(0.7);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes ms-fade-up {
  0% {
    transform: translateY(2rem);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

/****************************
mainvisualセクション
****************************/
.ms-front-mainvisual {
  margin: 0;
  position: relative;
  overflow: hidden;

  padding: 0;
  padding-bottom: 4.6875rem; /* 75px */
  margin-top: -6.25rem; /* 100px */

  /* オープニングカバー */
  &::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--color-primary);
    z-index: 9999;
    animation: ms-cover-slide-out 2s cubic-bezier(0.4, 0, 0.2, 1) 1s forwards,
      ms-cover-border-radius 0.5s cubic-bezier(0.4, 0, 0.2, 1) 1s forwards;
    transform-origin: top left;
  }

  .ms-front-mainvisual__titlearea {
    position: absolute;
    top: 50%;
    left: 5rem; /* 80px */
    opacity: 0;
    animation: ms-fade-up 1s ease-out 2.3s forwards;
  }
  .ms-front-mainvisual__text1 {
    font-size: 1.5625rem; /* 25px */
    line-height: 2;
    letter-spacing: 0.02em;
    font-weight: 700;
  }
  .ms-front-mainvisual__text2 {
    font-size: 3.3125rem; /* 53px */
    line-height: 1.3;
    letter-spacing: 0.02em;
    font-weight: 700;
    color: var(--color-primary-dark);
  }
  .ms-front-mainvisual__text3 {
  }
  .ms-front-mainvisual__subcopy {
    position: absolute;
    top: 6.25rem; /* 100px */
    right: 3.725rem; /* 60px */
    opacity: 0;
    animation: ms-fade-up 1s ease-out 2.7s forwards;

    display: flex;
    flex-direction: row-reverse;
    align-items: flex-end;
    padding-top: 3rem;
    p {
      font-size: 2.25rem; /* 36px */
      letter-spacing: 0.06em;
      font-weight: 500;
      line-height: 1.6;
      color: var(--color-white);
      writing-mode: vertical-rl;
      text-orientation: mixed;
      margin: 0;
    }
  }
  .ms-front-mainvisual__image {
    max-width: clamp(
      57.75rem,
      calc(924 / 1366 * 100cqi),
      calc(924 / 1366 * 100%)
    ); /* 924px = 57.75rem */

    margin-inline: auto 0;
    border-radius: 0 0 0 6.875rem; /* 110px */
    overflow: hidden;
    transform-origin: top right;
    animation: ms-image-scale 1s cubic-bezier(0.4, 0, 0.2, 1) 1.2s forwards;
  }
  .ms-front-mainvisual__icon {
    width: 10.625rem; /* 170px */
    aspect-ratio: 1/1;
    position: absolute;
    right: 5rem; /* 80px */
    bottom: 0;
    animation: ms-rotate 10s linear infinite;
  }
}
@media print, screen and (max-width: 959px) {
  .ms-front-mainvisual {
    padding-bottom: 2.5rem;
    .ms-front-mainvisual__titlearea {
      position: static;
      padding-inline: 1rem;
    }
    .ms-front-mainvisual__text1 {
      font-size: 1rem;
    }
    .ms-front-mainvisual__text2 {
      font-size: 2rem;
    }
    .ms-front-mainvisual__text3 {
    }
    .ms-front-mainvisual__subcopy {
      position: absolute;
      top: 4rem;
      right: 2.25rem;
      filter: drop-shadow(0 0 0.75rem rgba(0, 0, 0, 1));
      p {
        font-size: 1.55rem; /* 36px */
      }
    }
    .ms-front-mainvisual__image {
      width: 100%;
      max-width: 100%;
      margin-bottom: 2rem;
      margin-top: 6rem;

      img {
        width: 100%;
        height: auto;
      }
    }
    .ms-front-mainvisual__icon {
      width: 7rem;
      right: 0.625rem;
      bottom: 10rem;
    }
  }
}

.ms-front-4buttons {
  .ms-front-4buttons__cover {
    min-height: unset;
    border-radius: 0.625rem; /* 10px */
    padding: 0;

    > .wp-block-cover__background {
      transition: opacity 0.3s ease;
      background-color: var(--color-core-black);
      &:has(+ .wp-block-cover__inner-container a:hover) {
        opacity: 0.2 !important;
      }
    }
  }
  .ms-front-4buttons__list {
    margin-bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.3125rem; /* 5px */
  }
  .ms-front-4buttons__item {
    width: calc(25% - 0.15625rem); /* 2.5px */
    min-height: 5rem; /* 80px */
    margin-block-start: 0;
  }
  .ms-front-4buttons__text {
    line-height: 1.6;

    a {
      display: grid;
      place-items: center;
      /* height: 100%; */
      min-height: 5rem; /* 80px */
    }
  }
}
@media print, screen and (max-width: 959px) {
  .ms-front-4buttons {
    .ms-front-4buttons__cover {
      min-height: unset;
      border-radius: 0.3125rem; /* 5px */
      padding: 0;

      > .wp-block-cover__background {
        background-color: var(--color-core-black);
      }
    }
    .ms-front-4buttons__list {
      gap: 0 0.625rem;
      flex-wrap: wrap;
    }
    .ms-front-4buttons__item {
      width: calc(50% - 0.3125rem); /* 5px */
    }
    .ms-front-4buttons__text {
      line-height: 1.6;
      font-size: 0.75rem;

      a {
        display: grid;
        place-items: center;
        /* height: 100%; */
        min-height: 3.75rem; /* 60px */
      }
    }
  }
}
/****************************
Aboutセクション
****************************/
.ms-front-about {
  align-items: flex-start;
  gap: 3.125rem; /* 50px */
  margin-bottom: 3.125rem; /* 50px */
  padding-block: 6.25rem; /* 100px */

  .ms-front-about__image {
    width: calc(50% - 3.125rem); /* 50px */
    border-radius: 0 6.875rem 0 0; /* 110px */
    filter: drop-shadow(
      1.25rem 1.25rem 0.625rem rgba(0, 0, 0, 0.04)
    ); /* 20px 20px 10px */

    img {
      border-radius: 0 6.875rem 0 0;
    }
  }
  .ms-front-about__contents {
    width: 50%;
    padding-left: 0.9375rem; /* 15px */
    max-width: 36.875rem; /* 590px */
    margin-inline: 0 auto;
    padding-top: 2.5rem; /* 40px */
  }
  .ms-front-about__title {
    align-items: flex-start;
    justify-content: flex-start;
  }
  .ms-front-about__logo {
    margin-bottom: 0.625rem; /* 10px */
  }
  .ms-front-about__text1 {
    font-size: 1.5625rem; /* 25px */
    margin-bottom: 2.5rem; /* 40px */
  }
  .ms-front-about__text2 {
    font-size: 1rem; /* 16px */
    letter-spacing: 0.1em;
    line-height: 2.25rem; /* 36px */

    font-feature-settings: "palt";
    margin-bottom: 3.125rem; /* 50px */
  }
  .ms-front-about__button {
    justify-content: center;
  }
}
@media print, screen and (max-width: 959px) {
  .ms-front-about {
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 2.5rem; /* 40px */
    /* margin-bottom: 3.125rem; */
    padding-block: 1rem;

    .ms-front-about__image {
      width: calc(100% - 2.25rem);
    }
    .ms-front-about__contents {
      width: 100%;
      padding-inline: 0.625rem; /* 10px */
      max-width: 750px;
      margin-inline: auto;
      padding-top: 0;
    }
    .ms-front-about__title {
      align-items: flex-start;
    }
    .ms-front-about__logo {
      margin-bottom: 0.3125rem; /* 5px */
      margin-right: 50%;
    }
    .ms-front-about__text1 {
      font-size: 1.5rem; /* 24px */
      margin-bottom: 2.25rem; /* 36px */
      margin-top: 1rem;
      font-weight: 700;
      line-height: 1;
    }
    .ms-front-about__text2 {
      font-size: 0.875rem; /* 14px */
      letter-spacing: 0.04em;
      line-height: 1.8em;

      font-feature-settings: "palt";
      margin-bottom: 1.5625rem; /* 25px */

      mark {
        font-weight: 700;
      }
    }
    .ms-front-about__button {
      justify-content: center;
    }
  }
}
/****************************
how to useセクション
****************************/
.ms-front-howtouse {
  position: relative;
  padding-block: 5rem 4.6875rem; /* 80px 75px */
  padding-inline-end: 5rem; /* 80px */
  position: relative;
  &::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    background-image: url(../images/ms-front-howtouse__bg.png);
    background-size: cover;
    border-radius: 2.5rem; /* 40px */
    width: calc(100cqi - 9.375rem); /* 150px */
    height: 100%;
  }
  .ms-front-howtouse__titlearea {
    position: sticky;
    top: 3.75rem; /* 60px */
    left: -1.875rem; /* -30px */
    padding-block: 1.875rem; /* 30px */
    background-color: var(--color-primary-sub);
    border-radius: 0 2.5rem 0 0; /* 40px */
  }
  .ms-front-howtouse__title {
    font-size: 2.9375rem; /* 47px */
    font-weight: 500;
    color: var(--color-white);
    line-height: 1.4;
  }
  .ms-front-howtouse__title-en {
    font-size: 1.375rem; /* 22px */
    font-weight: 500;
    color: var(--color-primary-light);
    line-height: 1.5;
    letter-spacing: 0.04em;
  }

  .ms-front-howtouse__contents {
    gap: 2.1875rem !important; /* 35px */
    max-width: 100%;
    padding-right: 8cqi;
  }
  .ms-front-howtouse__contents-item {
    --color-main: var(--color-primary-dark);
    --color-sub: var(--color-primary-dark);
    background-color: var(--color-bg-cream);
    border-radius: 1.25rem; /* 20px */
    border-top: 0.125rem solid var(--color-sub); /* 2px */
    border-left: 0.125rem solid var(--color-sub);
    border-right: 0.25rem solid var(--color-sub); /* 4px */
    border-bottom: 0.25rem solid var(--color-sub);
    padding-inline: 1.875rem; /* 30px */
    padding-block: 5.625rem 3.125rem; /* 90px 50px */
    margin-top: 3.125rem; /* 50px */
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 2.1875rem; /* 35px */
    filter: drop-shadow(
      0.3125rem 0.3125rem 0.4375rem rgba(0, 0, 0, 0.2)
    ); /* 5px 5px 7px */

    &.ms-front-howtouse__contents-item--visitor {
      --color-main: var(--color-primary-sub);
      --color-sub: var(--color-primary-sub);
    }
  }
  .ms-front-howtouse__contents-title {
    font-size: 1.375rem; /* 22px */
    letter-spacing: 0.02em;
    color: var(--color-white);
    background-color: var(--color-main);
    border-radius: 0.625rem; /* 10px */
    text-align: center;
    padding-block: 0.625rem; /* 10px */
    width: 100%;
    max-width: calc(100% - 3.75rem); /* 60px */
    position: absolute;
    top: 0;
    left: 50%;
    translate: -50% -50%;
  }
  .ms-front-howtouse__step-list {
    display: flex;
    flex-direction: column;
    gap: 3.125rem; /* 50px */
  }
  .ms-front-howtouse__step-item {
    background-color: var(--color-white);
    border: 0.125rem solid var(--color-sub); /* 2px */
    border-radius: 1.25rem; /* 20px */
    position: relative;
    padding: 2.5rem 1.5rem 1.5625rem; /* 40px 20px 25px */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem; /* 20px */
    width: 100%;
  }
  .ms-front-howtouse__step-item-icon {
    width: 2.8125rem; /* 45px */
    aspect-ratio: 1/1;
    border-radius: 6.25rem; /* 100px */
    background-color: var(--color-main);
    position: absolute;
    top: -1.375rem; /* -22px */
    left: 50%;
    translate: -50% 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    p:nth-child(1) {
      font-size: 0.6875rem; /* 11px */
      line-height: 1;
      margin-bottom: 0;
      color: var(--color-white);
      letter-spacing: 0.02em;
    }
    p:nth-child(2) {
      font-size: 1.25rem; /* 20px */
      line-height: 1;
      margin-block: 0;
      color: var(--color-white);
      letter-spacing: 0.02em;
    }
  }
  .ms-front-howtouse__step-item-image {
  }
  h4.ms-front-howtouse__step-item-title {
    font-size: 1.5rem; /* 24px */
    font-weight: 500;
    letter-spacing: 0.02em;
    text-align: center;
  }
  .ms-front-howtouse__step-item-text {
    font-size: 1rem; /* 16px */
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.6;
    text-align: center;
    margin-block: 0.5rem; /* 8px */
  }
  .ms-front-howtouse__step-item-button {
    width: 100%;
    /* max-width: 16.875rem; */
    margin-inline: auto;

    .wp-block-button {
      width: 100%;
    }
    a {
      font-size: 1rem; /* 18px */
      text-align: center;
      color: var(--color-white);
      background-color: var(--color-button-primary);
      margin-inline: auto;
      border: 0.125rem solid var(--color-white); /* 2px */
      filter: drop-shadow(
        0.25rem 0.25rem 0.75rem rgba(0, 0, 0, 0.1)
      ); /* 4px 4px 12px */
      padding-inline: 0;
    }
  }
  .ms-front-howtouse__contents-item-button {
    width: 100%;
    justify-content: center;
    color: var(--color-white);
    .wp-block-button {
      width: 100%;
    }
    .wp-block-button__link {
      width: 100%;
      background-color: var(--color-main);
      font-size: 1rem; /* 16px */
    }
  }
}
@media print, screen and (max-width: 959px) {
  .ms-front-howtouse {
    position: relative;
    padding-block: 2.5rem 2.34375rem; /* 40px 37.5px */
    padding-inline: 1rem; /* 40px */
    position: relative;
    &::before {
      border-radius: 0 2.5rem 2.5rem 0; /* 40px */
      width: 100%;
    }
    .ms-front-howtouse__titlearea {
      position: relative;
      top: unset;
      left: -1rem; /* -20px */
      padding-block: 0.65rem; /* 28px */
      padding-inline: 2rem 5rem;
      width: 15.625rem; /* 250px */

      width: fit-content;
      margin-inline: 2rem auto;
      translate: -2rem 0;
    }
    .ms-front-howtouse__title {
      font-size: 1.7rem;
    }
    .ms-front-howtouse__title-en {
      font-size: 0.8rem;
    }
    .ms-front-howtouse__contents {
      gap: 1.09375rem !important; /* 17.5px */
      padding-inline: 4cqi;
    }
    .ms-front-howtouse__dummy {
      margin-bottom: -4.5rem;
      z-index: 1;
      position: relative;
    }

    .ms-front-howtouse__contents-item {
      padding-inline: 1.5rem; /* 24px */
      padding-block: 2.8125rem 1.5625rem; /* 45px 25px */
      margin-top: 0;
      gap: 2.5rem;

      &.ms-front-howtouse__contents-item--member {
        padding-top: 5rem;
      }
      &.ms-front-howtouse__contents-item--visitor {
        --color-main: var(--color-primary-sub);
        --color-sub: var(--color-primary-dark);
      }
    }
    .ms-front-howtouse__contents-title {
      font-size: 1.1875rem; /* 19px */
      padding-block: 0.9375rem;
      margin-bottom: 0.8rem;
      max-width: 100%;
      position: static;
      top: unset;
      left: unset;
      translate: unset;
    }
    .ms-front-howtouse__step-list {
      display: flex;
      flex-direction: column;
      gap: 2.5625rem; /* 25px */
    }
    .ms-front-howtouse__step-item {
      background-color: var(--color-white);
      border: 0.0625rem solid var(--color-sub); /* 2px */
      border-radius: 0.625rem; /* 10px */
      position: relative;

      /* height: 100%; */
      padding: 2rem 1.25rem 1rem; /* 20px 12.5px 24px */
      gap: 1.15rem;
    }
    .ms-front-howtouse__step-item-icon {
      width: 2.375rem; /* 38px */
      position: absolute;
      top: -1.1875rem; /* -19px */
      left: 50%;
      translate: -50% 0;

      p:nth-child(1) {
        font-size: 0.5625rem; /* 9px */
      }
      p:nth-child(2) {
        font-size: 1.0625rem; /* 17px */
      }
    }
    .ms-front-howtouse__step-item-image {
    }
    h4.ms-front-howtouse__step-item-title {
      font-size: 1.25rem; /* 21px */
      font-weight: 700;
    }
    .ms-front-howtouse__step-item-text {
      font-size: 0.625rem; /* 10px */
      margin-block: 0.25rem; /* 4px */
    }
    .ms-front-howtouse__step-item-button {
      width: 100%;
      max-width: unset;
      a {
        font-size: 0.875rem;
        border: none;
      }
    }
    .ms-front-howtouse__contents-item-button {
      .wp-block-button__link {
        font-size: 0.875rem; /* 14px */
      }
    }
  }
}

.ms-front-uservoice {
  padding-block: 6.875rem; /* 110px */

  .ms-front-uservoice__titlearea {
    margin-bottom: 4.375rem; /* 70px */
  }

  .ms-front-uservoice__text1 {
    font-size: 1.25rem; /* 20px */
    line-height: 1.5;
    letter-spacing: 0.04em;
    text-align: center;
    font-weight: 500;
    margin-bottom: 3.125rem; /* 50px */
  }

  .ms-front-uservoice__list {
    gap: 0.9375rem; /* 15px */
    margin-bottom: 6.875rem; /* 110px */
  }
}

@media print, screen and (max-width: 959px) {
  .ms-front-uservoice {
    padding-block: 3.5rem;

    .ms-front-uservoice__titlearea {
      margin-bottom: 2.1875rem; /* 35px */
    }

    .ms-front-uservoice__text1 {
      font-size: 1.125rem; /* 18px */
      font-weight: 700;
      line-height: 1.6;
      margin-bottom: 1.5625rem; /* 25px */
      margin-inline: auto;
    }

    .ms-front-uservoice__list {
      gap: 2.5rem;
      margin-bottom: 3.4375rem; /* 55px */
    }

    .ms-front-uservoice__item {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: flex-start;
      gap: 1.375rem; /* 22px */
    }
    .ms-front-uservoice__item-image {
      filter: none;
    }
    .ms-front-uservoice__item-text {
      font-size: 0.9375rem; /* 15px */
      line-height: 1.6;

      strong {
        font-size: 1.1875rem; /* 19px */
      }
    }
  }
}
.ms-front-faq {
  background-color: var(--color-bg-cream);
  padding-block: 6.875rem; /* 110px */

  .ms-front-faq__titlearea {
    margin-bottom: 4.375rem; /* 70px */
  }

  .ms-front-faq__list {
    width: 100%;
    margin-bottom: 2.5rem; /* 40px */
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 0.9375rem; /* 15px */
  }

  .ms-front-faq__item {
    width: 100%;
  }

  .ms-front-faq__button {
    justify-content: center;
    filter: drop-shadow(
      0.3125rem 0.3125rem 0.4375rem rgba(0, 0, 0, 0.2)
    ); /* 5px 5px 7px */

    a {
      display: block;
      width: 18.75rem; /* 300px */
      padding: 1.1em 1.9em;
      border: 0.125rem solid var(--color-white); /* 2px */
    }
  }
}
@media print, screen and (max-width: 959px) {
  .ms-front-faq {
    background-color: var(--color-bg-cream);
    padding-block: 3.4375rem; /* 55px */

    .ms-front-faq__titlearea {
      margin-bottom: 2.1875rem; /* 35px */
    }

    .ms-front-faq__list {
      width: 100%;
      margin-bottom: 2.5rem; /* 20px */
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-items: center;
      gap: 0.46875rem; /* 7.5px */
    }

    .ms-front-faq__item {
      width: 100%;
    }

    .ms-front-faq__button {
      justify-content: center;
      filter: drop-shadow(
        0.15625rem 0.15625rem 0.21875rem rgba(0, 0, 0, 0.1)
      ); /* 5px 5px 7px */

      a.wp-block-button__link {
        display: block;
        width: 20rem; /* 640px */
        padding: 0.55em 0.5em;
        border: none;
        font-size: 0.875rem;

        &::after {
          right: 1.5rem;
          width: 0.4rem;
          height: 0.7rem;
        }
      }
    }
  }
}
