/* メインビジュアル */
.p-fp-mv {
  margin-top: 80px;
}

.p-fp-mv-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
}

.p-fp-mv-content {
  display: grid;
  align-content: center;
  row-gap: 40px;
}

.p-fp-mv-content-title {
  font-size: 50px;
  line-height: 1.2;
  color: var(--color-main);
  margin-block: var(--half-read);
  margin-right: -1em;
}

.p-fp-mv-content-subtitle {
  font-size: 20px;
  line-height: 1.7;
  font-weight: 600;
  margin-block: var(--half-read);
  margin-right: -2em;
}

.p-fp-mv-content-desc {
  font-size: 18px;
  line-height: 1.6;
  margin-block: var(--half-read);
}

.p-fp-mv-content-button-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 15px;
  --button-min-width: 100%;
}

.p-fp-mv-content-button-list-dl {
  --button-bg-color: #333;
  --button-hover-bg-color: #000;
}

@media (max-width:991px) {
  .p-fp-mv-inner {
    grid-template-columns: 1fr;
  }
}

@media (max-width:767px) {
  .p-fp-mv {
    margin-block: 60px 20px;
  }

  .p-fp-mv-inner {
    gap: 30px;
  }

  .p-fp-mv-content {
    row-gap: 30px;
  }

  .p-fp-mv-content-title {
    margin-block: var(--half-read) calc(10px + var(--half-read));
  }

  .p-fp-mv-content-subtitle {
    margin-right: -1em;
  }

  .p-fp-mv-content-desc {
    font-size: 13px;
    line-height: 1.8;
    margin-right: -1em;
  }

  .p-fp-mv-content-button-list {
    column-gap: 5px;
    --button-font-size-sp: 12px;
    --button-height: 42px;
    --button-padding: 0px;
  }
}

.p-fp-mv-news {
  overflow: hidden;
  margin-right: calc(-50vw + (1080px / 2));
}

@media not all and (max-width:767px) {

  /* CLS対策 */
  .p-fp-mv-news .swiper:not(.swiper-initialized) {
    display: none;
  }

  .p-fp-mv-news .c-thumbnail {
    border-bottom: 0px;
    border-bottom-left-radius: 0px;
    border-bottom-right-radius: 0px;
  }

  .p-fp-mv-news .p-news-loop-item-content {
    gap: 15px;
    padding: 20px;
    background-color: #fff;
    border: 0.5px solid var(--color-border);
    border-top: none;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
  }

  .p-fp-mv-news .p-news-loop-item-title {
    --line-clamp: 3;
    font-size: 14px;
  }

  .p-fp-mv-news .p-news-loop-item-meta-service {
    font-size: 15px;
  }

  .p-fp-mv-news .p-news-loop-item-meta-date-pc {
    --date-font-size: 9px;
  }

  /* slider */
  .p-fp-mv-news .swiper-slide {
    /* transform-origin: center bottom;
  transition: transform 0.3s ease; */
  }

  .p-fp-mv-news .swiper-slide:not(.swiper-slide-active) {
    /* transform: scale(0.9); */
    /* padding-left: 30px; */
    /* margin-right: -30px; */
  }

  .p-fp-mv-news .swiper-slide-active {
    /* transform: scale(1); */
  }
}

@media (max-width:991px) {
  .p-fp-mv-news {
    margin-right: -20px;
  }
}

@media (max-width:767px) {
  .p-fp-mv-news {
    margin-right: 0px;
  }

  .p-fp-mv-news .swiper-wrapper {
    row-gap: 20px;
    flex-direction: column;
  }

  .p-fp-mv-news .swiper-slide:nth-child(n+4) {
    display: none;
  }
}

/* メイン */
.p-fp-main {
  display: grid;
  align-content: start;
  row-gap: 150px;
}

.p-fp-main-section {
  display: grid;
  align-content: start;
  row-gap: 60px;
}

.p-fp-main-section-button {
  margin-inline: auto;
}

@media (max-width:767px) {
  .p-fp-main {
    row-gap: 60px;
  }

  .p-fp-main-section {
    row-gap: 30px;
  }
}



.p-fp-2col {
  display: grid;
  grid-template-columns: 270px 1fr;
  gap: 0px 30px;
}

.p-fp-2col-main {
  padding: 75px 0px 75px 75px;
}

.p-fp-2col-main-content {}

.p-fp-2col-side {}

/* サイドバー */
.p-fp-2col-side-list {
  display: grid;
  align-content: start;
  row-gap: 20px;
  font-size: 14px;
}

@media (max-width:991px) {

  .p-fp-2col {
    grid-template-columns: 1fr;
  }

  .p-fp-2col-main {
    padding: 75px;
    margin-inline: -20px;
  }

  .p-fp-2col-side-list {
    display: none;
  }
}

@media (max-width:767px) {
  .p-fp-2col-main {
    padding: 30px 0px;
  }
}

/* セクションヘッダー */
.p-fp-main-header {
  margin-top: 0px;
}

*+.p-fp-main-header {
  margin-top: 100px;
}

@media (max-width:991px) {
  .p-fp-main-header .p-archive-header-inner {
    inline-size: 100%;
  }
}

@media (max-width:767px) {
  .p-fp-main-header {
    margin-block: -10px;
  }
}

/* ルール */
.p-fp-rules-list {
  margin-block: -25px;
}

.p-fp-rules-list-item {
  padding-block: 25px;
}

*+.p-fp-rules-list-item {
  border-top: 0.5px solid var(--color-border);
}

.p-fp-rules-list-item-title {
  cursor: pointer;
  display: grid;
  grid-template-columns: auto 70px 1fr;
  align-items: center;
  font-size: 24px;
  line-height: 1.6;
  margin-block: var(--half-read);
}

.p-fp-rules-list-item-title:before {
  content: "";
  font-size: 50px;
  width: 1em;
  height: 1em;
  margin: -0.25em;
  background-color: currentColor;
  mask: var(--icon--arrow-bottom) no-repeat center / contain;
}

.p-fp-rules-list-item-title.is-active:before {
  transform: rotate(180deg);
}

.p-fp-rules-list-item-count {
  justify-self: center;
}

.p-fp-rules-list-item-content {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.2s ease;
  font-size: 16px;
  line-height: 1.8;
  padding-left: 90px;
}

.is-active+.p-fp-rules-list-item-content {
  grid-template-rows: 1fr;
}

.p-fp-rules-list-item-content-inner {
  overflow: hidden;
}

.p-fp-rules-list-item-content-text {
  margin-block: calc(20px + var(--half-read)) var(--half-read);
}

@media (max-width:767px) {
  .p-fp-rules-list {
    margin-block: -20px;
  }

  .p-fp-rules-list-item {
    padding-block: 20px;
  }

  .p-fp-rules-list-item-title {
    grid-template-columns: auto 40px 1fr;
    font-size: 16px;
  }

  .p-fp-rules-list-item-title:before {
    font-size: 30px;
  }

  .p-fp-rules-list-item-content {
    font-size: 14px;
    padding-left: 0px;
  }

  .p-fp-rules-list-item-content-text {
    margin-block: calc(25px + var(--half-read)) var(--half-read);
  }
}

/* faq */
.p-fp-faq-header {
  margin-bottom: 40px;
}

*+.p-fp-faq-header {
  margin-top: 80px;
}

.p-fp-faq-header-title {
  display: grid;
  grid-template-columns: 50px 1fr;
  align-items: center;
  font-size: 24px;
  line-height: 1.6;
  margin-block: var(--half-read);
}

.p-fp-faq-header-desc {
  font-size: 16px;
  line-height: 1.8;
  padding-left: 50px;
  margin-block: calc(30px + var(--half-read)) var(--half-read);
}

@media (max-width:767px) {
  .p-fp-faq-header {
    margin-bottom: 25px;
  }

  *+.p-fp-faq-header {
    margin-top: 60px;
  }

  .p-fp-faq-header-title {
    grid-template-columns: 40px 1fr;
    font-size: 18px;
  }

  .p-fp-faq-header-desc {
    font-size: 14px;
    padding-left: 0px;
    margin-block: calc(25px + var(--half-read)) var(--half-read);
  }
}

/* faq 01 */
.p-fp-2col-main01-copy {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  margin-bottom: 12px;
}

.p-fp-2col-main01-copy-title {
  font-size: 20px;
  font-weight: 600;
  text-align: center;
  padding-block: 30px;
  background-color: var(--color-bg);
  border-radius: 5px;
}

.p-fp-2col-main01-copy-title span {
  display: block;
  font-size: 18px;
  margin-bottom: 15px;
}

.p-fp-2col-main01-copy-symbol {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 60px;
  margin-inline: -24px;
  z-index: 1;
}

@media (max-width:767px) {
  .p-fp-2col-main01-copy {
    grid-template-columns: 1fr;
    margin-bottom: 10px;
  }

  .p-fp-2col-main01-copy-title {
    font-size: 18px;
  }

  .p-fp-2col-main01-copy-title span {
    font-size: 16px;
    margin-bottom: 12px;
  }

  .p-fp-2col-main01-copy-symbol {
    font-size: 50px;
    margin: -20px 0px;
  }
}

.p-fp-2col-main .p-service-header {
  width: 100%;
}

.p-fp-2col-main .p-service-header-list {
  background-color: var(--color-bg);
  border: none;
}

.p-fp-2col-main .p-service-header-copy {
  background-color: #fff;
}

@media not all and (max-width:767px) {
  .p-fp-2col-main .p-service-header-list {
    gap: 8px;
    padding: 15px;
  }

  .p-fp-2col-main .p-service-header-list-item-title {
    height: 50px;
    font-size: 16px;
  }

  .p-fp-2col-main .p-service-header-list-item-list {
    row-gap: 10px;
    margin-top: 20px;
  }

  .p-fp-2col-main .p-service-header-list-item-list-item {
    gap: 7px;
    font-size: 12px;
  }

  .p-fp-2col-main .p-service-header-copy {
    font-size: 14px;
    padding: calc(25px + var(--half-read)) 25px;
  }
}

.p-fp-2col-main01-button {
  margin-top: 20px;
  margin-inline: auto;
}

/* 02 */
.p-fp-2col-main .p-service-header-3col-item {
  background-color: var(--color-bg);
  border: none;
}

@media not all and (max-width:767px) {
  .p-fp-2col-main .p-service-header-3col {
    gap: 15px;
  }

  .p-fp-2col-main .p-service-header-3col-item {
    gap: 10px 3px;
    font-size: 16px;
    padding: 30px 10px;
  }

  .p-fp-2col-main .p-service-header-3col-item-number {
    font-size: 34px;
  }

  .p-fp-2col-main .p-service-header-logo {
    gap: 15px;
    margin-top: 15px;
  }
}

/* faq 03 */
.p-fp-2col-main03-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.p-fp-2col-main03-list-item {
  display: grid;
  grid-template-rows: auto 1fr;
  row-gap: 35px;
  padding: 30px 15px 40px;
  background-color: var(--color-bg);
}

.p-fp-2col-main03-list-item-title {
  font-size: 16px;
  text-align: center;
  font-weight: 600;
}

.p-fp-2col-main03-list-item-01 .p-fp-2col-main03-list-item-image {
  width: 76%;
  justify-self: center;
  align-self: center;
}

@media (max-width:767px) {
  .p-fp-2col-main03-list {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .p-fp-2col-main03-list-item {
    row-gap: 30px;
    padding: 30px 15px;
  }

  .p-fp-2col-main03-list-item-01 .p-fp-2col-main03-list-item-image {
    width: 76%;
    justify-self: center;
    align-self: center;
  }
}

/* faq 04 */
.p-fp-2col-main04-image {
  border-radius: 10px;
  overflow: hidden;
}

.p-fp-2col-main04-button {
  margin-top: 40px;
  margin-inline: auto;
}

@media (max-width:767px) {
  .p-fp-2col-main04-image {
    border-radius: 5px;
  }

  .p-fp-2col-main04-button {
    margin-top: 20px;
  }
}

/* 05 */
.p-fp-2col-main05-list {
  font-size: 16px;
  line-height: 2;
  font-weight: 600;
  border-radius: 5px;
}

@media (max-width:767px) {
  .p-fp-2col-main05-list {
    font-size: 14px;
  }
}

.p-fp-2col-main05-arrow {
  display: block;
  font-size: 30px;
  margin-inline: auto;
  margin-bottom: 10px;
}

.p-fp-2col-main05-method {
  padding: 25px 25px 40px;
  background-color: var(--color-bg);
}

.p-fp-2col-main05-method-title {
  font-size: 14px;
  text-align: center;
  font-weight: 600;
  margin-bottom: 25px;
}

.p-fp-2col-main05-method-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
}

.p-fp-2col-main05-method-item {}

.p-fp-2col-main05-method-item-image {
  aspect-ratio: initial;
  margin-bottom: 15px;
}

.p-fp-2col-main05-method-item-title {
  font-size: 12px;
  line-height: 1.8;
  margin-block: var(--half-read);
}

.p-fp-2col-main05-method-item-title span {
  font-weight: 600;
  color: var(--color-main);
}

@media (max-width:767px) {
  .p-fp-2col-main05-method {
    padding: 20px 15px 30px;
  }

  .p-fp-2col-main05-method-title {
    margin-bottom: 20px;
  }

  .p-fp-2col-main05-method-list {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .p-fp-2col-main05-method-item-title {
    font-size: 14px;
    line-height: 1.6;
  }
}

/* faq06 */
.p-fp-2col-main06-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 20px;
}

.p-fp-2col-main06-list-item {
  display: grid;
  align-content: start;
  row-gap: 30px;
  padding: 35px 30px;
  background-color: var(--color-bg);
  border-radius: 5px;
}

.p-fp-2col-main06-list-item-title {
  font-size: 14px;
  font-weight: 600;
  text-align: center;
}

.p-fp-2col-main06-list-item-list {
  font-size: 12px;
  line-height: 2;
  padding: 0px;
  margin-block: var(--half-read);
}

.p-fp-2col-main06-button {
  margin-inline: auto;
  margin-top: 20px;
}

@media (max-width:767px) {
  .p-fp-2col-main06-list {
    grid-template-columns: 1fr;
    row-gap: 15px;
  }

  .p-fp-2col-main06-list-item {
    row-gap: 20px;
    padding: 20px 30px 30px;
  }
}

/* faq 07 */
.p-fp-2col-main07-image {
  border: 0.5px solid var(--color-border);
  overflow: hidden;
  border-radius: 10px;
  margin-bottom: 50px;
}

.p-fp-2col-main07-desc {
  font-size: 16px;
  line-height: 1.8;
  margin-block: var(--half-read);
}

.p-fp-2col-main07-desc span {
  display: block;
  height: calc(50px - 1lh + 1em);
}

@media (max-width:767px) {
  .p-fp-2col-main07-image {
    border-radius: 5px;
    margin-bottom: 35px;
  }

  .p-fp-2col-main07-desc {
    font-size: 14px;
    line-height: 2;
  }

  .p-fp-2col-main07-desc span {
    height: calc(40px - 1lh + 1em);
  }
}

/* サイドボタン */
.p-fp-side-button {
  position: fixed;
  inset: 0px 0px 0px auto;
  z-index: 100;
  display: flex;
  justify-content: center;
  gap: 12px;
  writing-mode: vertical-rl;
  margin-block: auto;
  --button-min-width: 45px;
  --button-height: 250px;
  transition: transform 0.2s ease;
}

.p-fp-side-button:not(.is-active) {
  transform: translateX(100%);
}

.p-fp-side-button a {
  border-radius: 5px 0px 0px 5px;
}

.p-fp-side-button a+a {
  --button-bg-color: #333;
  --button-hover-bg-color: #000;
}

@media (max-width:767px) {
  .p-fp-side-button {
    display: none;
  }
}