/* =======================================================
any
======================================================= */
.p-any__list {
  display: grid;
  gap: 1rem;
}
@media (width >= 768px) {
  .p-any__list {
    grid-template-columns: repeat(4, 1fr);
  }
}
.p-any__item {
  padding: 2rem 1.5rem;
  background: var(--gray-50);
  border: 0.125rem solid transparent;
  border-radius: 1.25rem;
  transition-timing-function: ease;
  transition-duration: var(--transition-duration);
  transition-property: border-color translate;
  will-change: border-color translate box-shadow;
}
.p-any__item:focus-visible {
  border-color: #ef4444;
  box-shadow: 0 0.625rem 1.875rem rgba(239, 68, 68, 0.15);
  translate: 0 -0.25rem;
}
@media (any-hover: hover) {
  .p-any__item:hover {
    border-color: #ef4444;
    box-shadow: 0 0.625rem 1.875rem rgba(239, 68, 68, 0.15);
    translate: 0 -0.25rem;
  }
}
.p-any__item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.375rem;
  aspect-ratio: 1;
  margin-bottom: 1.5rem;
  font-size: 1.75rem;
  color: #ef4444;
  background: #fee2e2;
  border-radius: 0.9375rem;
}
.p-any__item-ttl {
  margin-bottom: 1.5rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary);
}

/* =======================================================
cases
======================================================= */
.p-cases__btn {
  margin-inline: auto;
}

/* =======================================================
common
======================================================= */
section {
  padding: var(--spacing-xl) 0;
}
@media (width <= 767px) {
  section {
    padding: 3rem 0;
  }
}

.fas {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}

.fa-arrow-right::before {
  content: "\f061";
}

.fa-arrow-left::before {
  content: "\f060";
}

.fa-check::before {
  content: "\f00c";
}

.fa-circle-xmark::before,
.fa-times-circle::before,
.fa-xmark-circle::before {
  content: "\f057";
}

.fa-circle-question::before,
.fa-question-circle::before {
  content: "\f059";
}

.fa-chevron-down::before {
  content: "\f078";
}

/* =======================================================
faq
======================================================= */
.p-faq {
  max-width: 56.25rem;
}

/* =======================================================
flow
======================================================= */
.p-flow__list {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}
.p-flow__item:has(.fas) {
  display: flex;
  gap: 1rem;
}
@media (width <= 767px) {
  .p-flow__item:has(.fas) {
    display: grid;
  }
}
.p-flow__item-inner {
  padding: 2rem 1.5rem;
  background: var(--gray-50);
  border-radius: 1.25rem;
  transition-timing-function: ease;
  transition-duration: var(--transition-duration);
  transition-property: background box-shadow translate;
  will-change: background box-shadow translate;
}
.p-flow__item-inner:focus-visible {
  background: var(--white);
  box-shadow: 0 0.5rem 1.5625rem rgba(107, 79, 187, 0.15);
  translate: 0 -0.25rem;
}
@media (any-hover: hover) {
  .p-flow__item-inner:hover {
    background: var(--white);
    box-shadow: 0 0.5rem 1.5625rem rgba(107, 79, 187, 0.15);
    translate: 0 -0.25rem;
  }
}
@media (width >= 768px) {
  .p-flow__item-inner {
    max-width: 15rem;
  }
}
.p-flow__item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5rem;
  aspect-ratio: 1;
  margin: 0 auto 1rem;
  font-size: 2rem;
  color: var(--white);
  background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
  border-radius: 50%;
}
.p-flow__item-hgroup {
  font-weight: 700;
  text-align: center;
}
.p-flow__item-hgroup-txt {
  margin-bottom: 0.5rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--primary-color);
}
.p-flow__item-hgroup-ttl {
  margin-bottom: 0.75rem;
  font-size: 1.25rem;
  color: var(--text-primary);
}
.p-flow__item .fas {
  display: grid;
  align-items: center;
}
@media (width <= 767px) {
  .p-flow__item .fas {
    justify-self: center;
    rotate: 90deg;
  }
}

/* =======================================================
mv
======================================================= */
.p-mv {
  padding: 11rem 0 6.75rem;
  margin-bottom: 2rem;
  background: linear-gradient(145deg, #ede1f7 0%, #bddff8 100%);
}
@media (width <= 767px) {
  .p-mv {
    padding: 6.5625rem 0 13.125rem;
    background: linear-gradient(315deg, rgba(189, 223, 248, 0.8) 0%, rgba(237, 225, 247, 0.8) 100%);
  }
}
.p-mv .l-inner {
  position: relative;
}
.p-mv .l-inner::before {
  position: absolute;
  width: 52.5rem;
  height: 41.25rem;
  content: "";
  background-image: url("../images/top/mv-bg-deco.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  translate: 0 -50%;
}
@media (width >= 768px) {
  .p-mv .l-inner::before {
    top: 50%;
    right: -5rem;
  }
}
@media (width <= 767px) {
  .p-mv .l-inner::before {
    top: 6.1875rem;
    left: 50%;
    translate: -50%;
    width: 23.4375rem;
    height: 24.125rem;
    background-image: url("../images/top/mv-bg-deco-sp.svg");
  }
}
.p-mv .l-inner::after {
  position: absolute;
  width: 33.375rem;
  height: 20.1875rem;
  content: "";
  background-image: url("../images/top/mv-img01.webp");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
@media (width >= 768px) {
  .p-mv .l-inner::after {
    top: 2.25rem;
    right: 5.5rem;
  }
}
@media (width <= 767px) {
  .p-mv .l-inner::after {
    bottom: -13.125rem;
    left: 50%;
    width: 19.25rem;
    height: 11.125rem;
    background-image: url("../images/top/mv-img01-sp.webp");
    translate: -50%;
  }
}
.p-mv__ttl {
  position: relative;
  z-index: var(--z-index-on);
  width: 29.375rem;
  margin-bottom: 2.5rem;
}
@media (width <= 767px) {
  .p-mv__ttl {
    width: 21rem;
    margin-bottom: 2rem;
  }
}
.p-mv__txt {
  position: relative;
  z-index: var(--z-index-on);
  margin-bottom: 2.5rem;
  font-size: 0.875rem;
  line-height: calc(22/14);
}
@media (width <= 767px) {
  .p-mv__txt {
    margin-bottom: 2rem;
  }
}
.p-mv__imgwrapper {
  width: 20.875rem;
  margin-bottom: 3rem;
}
.p-mv__btn {
  position: relative;
  z-index: var(--z-index-on);
  min-width: 16rem;
  text-align: center;
  border-radius: calc(infinity * 1rem);
}
@media (width <= 767px) {
  .p-mv__btn {
    margin-inline: auto;
  }
}

/* =======================================================
news
======================================================= */
.l-news {
  background: linear-gradient(to bottom, var(--gray-50), var(--white));
}
@media (width <= 767px) {
  .l-news {
    padding-bottom: 4rem;
  }
}

.p-news .c-lead {
  margin-bottom: 2rem;
}
.p-news__btn {
  margin-inline: auto;
}
.p-news .c-news__article-wrapper {
  margin-bottom: 4rem;
}
@media (width <= 767px) {
  .p-news .c-news__article-wrapper {
    margin-bottom: 3rem;
  }
}

/* =======================================================
solution
======================================================= */
.p-solution__ba-wrapper {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 2rem;
  align-items: center;
  padding: 3rem;
  margin-bottom: 4rem;
  background: var(--white);
  border-radius: 1.25rem;
  box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.05);
}
.p-solution__ba.--before .p-solution__ba-head {
  color: #ef4444;
}
.p-solution__ba.--after .p-solution__ba-head {
  color: #10b981;
}
.p-solution__ba-head {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
  font-size: 1.25rem;
  font-weight: 700;
}
.p-solution__ba-box {
  padding: 2rem;
  margin-bottom: 1.5rem;
  text-align: center;
  background: var(--gray-50);
  border-radius: 0.9375rem;
}
.p-solution__ba-box .fas {
  margin-bottom: 0.5rem;
  color: var(--primary-color);
}
.p-solution__ba-txt {
  font-weight: 600;
  color: var(--text-primary);
}
.p-solution .fa-arrow-right {
  font-size: 2rem;
  color: var(--primary-color);
}
.p-solution__list {
  display: grid;
  gap: 2rem;
}
.p-solution__item {
  display: grid;
  gap: 2rem;
  align-items: center;
  padding: 2.5rem;
  background: var(--white);
  border-radius: 1.25rem;
  box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.05), 0 0.5rem 1.5625rem transparent;
  transition-timing-function: ease;
  transition-duration: var(--transition-duration);
  transition-property: translate box-shadow;
  will-change: translate box-shadow;
}
.p-solution__item:focus-visible {
  box-shadow: 0 0.125rem 0.5rem transparent, 0 0.5rem 1.5625rem rgba(107, 79, 187, 0.15);
  translate: 0 -0.25rem;
}
@media (any-hover: hover) {
  .p-solution__item:hover {
    box-shadow: 0 0.125rem 0.5rem transparent, 0 0.5rem 1.5625rem rgba(107, 79, 187, 0.15);
    translate: 0 -0.25rem;
  }
}
@media (width >= 768px) {
  .p-solution__item {
    grid-template-columns: 6.25rem 1fr;
  }
}
@media (width <= 767px) {
  .p-solution__item {
    gap: 1rem;
  }
}
.p-solution__item-num {
  font-size: 3.5rem;
  font-weight: 900;
  text-align: center;
  background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.p-solution__item-ttl {
  margin-bottom: 1rem;
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--text-primary);
}
@media (width <= 767px) {
  .p-solution__item-ttl {
    font-size: 1.2rem;
  }
}
.p-solution__item-txt {
  color: var(--text-secondary);
}
@media (width >= 768px) {
  .p-solution__item-txt {
    font-size: 1.05rem;
  }
}

/* =======================================================
structure
======================================================= */
.l-structure {
  background: linear-gradient(to bottom, var(--gray-50), var(--white));
}

@media (width <= 767px) {
  .p-structure {
    padding: 0;
  }
}
.p-structure .fa-arrow-right,
.p-structure .fa-arrow-left {
  font-size: 2rem;
}
@media (width <= 767px) {
  .p-structure .fa-arrow-right,
  .p-structure .fa-arrow-left {
    justify-self: center;
    rotate: 90deg;
  }
}
.p-structure .fas {
  color: var(--accent-color);
}
.p-structure-imgwrapper {
  justify-content: center;
}
.p-structure__conts-wrapper {
  display: grid;
  gap: 1.5rem;
}
.p-structure__conts {
  padding: 3rem 2rem;
  color: var(--white);
  text-align: center;
  background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
  border-radius: 1.25rem;
  box-shadow: 0 0.625rem 1.875rem rgba(30, 58, 138, 0.3);
}
.p-structure__conts-imgwrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 9.375rem;
  aspect-ratio: 1;
  padding: 1.25rem;
  margin: 0 auto 1.5rem;
  background: white;
  border-radius: 1.25rem;
}
.p-structure__conts-ttl {
  margin-bottom: 0.5rem;
  font-size: 2rem;
  font-weight: 700;
  color: var(--white);
}
.p-structure__conts-txt {
  color: var(--white);
  opacity: 0.9;
}
.p-structure__label-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}
.p-structure__label-item {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  padding: 0.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--primary-color);
  background: var(--white);
  border-radius: 1.25rem;
}