.main_header_h1 {
  font-weight: 700;
  text-shadow: none;
}
@media (min-width: 768px) {
  .main_header_h1 {
    line-height: 1.209;
    font-size: 4.8rem;
  }
}
@media screen and (max-width: 767px) {
  .main_header_h1 {
    line-height: 1.278;
    font-size: 3.6rem;
  }
}
@media (min-width: 768px) {
  .main_header_h1 + .main_header_h2 {
    padding-top: 1rem;
  }
}

.main_header_h2 {
  font-family: "Viga", sans-serif;
  color: #b3d0f2;
}
@media (min-width: 768px) {
  .main_header_h2 {
    line-height: 1.625;
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 767px) {
  .main_header_h2 {
    line-height: 1.715;
    font-size: 1.4rem;
  }
}

.solution_section {
  position: relative;
}
@media (min-width: 768px) {
  .solution_section {
    padding: 0 2rem 10rem;
  }
}
@media screen and (max-width: 767px) {
  .solution_section {
    padding: 0 2rem 6rem;
  }
}
.solution_section.bg1 {
  background: #f7f7f7;
  padding-bottom: 0;
}
@media (min-width: 768px) {
  .solution_section.bg1 {
    padding-top: 12rem;
  }
}
@media screen and (max-width: 767px) {
  .solution_section.bg1 {
    padding-top: 6rem;
  }
}
.solution_section .sub01 + .txt01 {
  padding-top: 3rem;
}

.solution_inner {
  position: relative;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .solution_inner {
    max-width: 120rem;
  }
}
@media screen and (max-width: 767px) {
  .solution_inner {
    max-width: 67rem;
  }
}

.solution_item {
  position: relative;
}
@media (min-width: 768px) {
  .solution_item {
    margin-top: 6rem;
  }
}
@media screen and (max-width: 767px) {
  .solution_item {
    margin-top: 4rem;
  }
}
@media (min-width: 768px) {
  + .solution_item {
    margin-top: 6rem;
  }
}
@media screen and (max-width: 767px) {
  + .solution_item {
    margin-top: 4rem;
  }
}

.solution_item_head {
  display: flex;
  background: #0363d5;
  color: #fff;
}
@media (min-width: 768px) {
  .solution_item_head {
    align-items: center;
    gap: 3rem;
    border-radius: 0.4rem;
    padding: 2rem 3rem;
  }
}
@media screen and (max-width: 767px) {
  .solution_item_head {
    flex-direction: column;
    gap: 1rem;
    margin: 0 -2rem;
    padding: 2rem;
  }
}

.solution_item_h3 {
  flex-shrink: 0;
  letter-spacing: 0.05em;
  font-weight: 700;
}
@media (min-width: 768px) {
  .solution_item_h3 {
    line-height: 1.154;
    font-size: 2.6rem;
  }
  .solution_item_h3 > h3 {
    font: inherit;
  }
  .solution_item_h3 > h3:first-of-type {
    margin-top: -0.076em;
  }
  .solution_item_h3 > h3:last-of-type {
    margin-bottom: -0.076em;
  }
}
@media screen and (max-width: 767px) {
  .solution_item_h3 {
    line-height: 1.429;
    font-size: 2.1rem;
  }
  .solution_item_h3 > h3 {
    font: inherit;
  }
  .solution_item_h3 > h3:first-of-type {
    margin-top: -0.214em;
  }
  .solution_item_h3 > h3:last-of-type {
    margin-bottom: -0.214em;
  }
}

.solution_item_p {
  width: 100%;
  letter-spacing: 0.05em;
  text-align: justify;
}
@media (min-width: 768px) {
  .solution_item_p {
    line-height: 1.688;
    font-size: 1.6rem;
  }
  .solution_item_p > p {
    font: inherit;
  }
  .solution_item_p > p:first-of-type {
    margin-top: -0.343em;
  }
  .solution_item_p > p:last-of-type {
    margin-bottom: -0.343em;
  }
}
@media screen and (max-width: 767px) {
  .solution_item_p {
    line-height: 1.429;
    font-size: 1.4rem;
  }
  .solution_item_p > p {
    font: inherit;
  }
  .solution_item_p > p:first-of-type {
    margin-top: -0.214em;
  }
  .solution_item_p > p:last-of-type {
    margin-bottom: -0.214em;
  }
}

.solution_cards {
  display: grid;
}
@media (min-width: 768px) {
  .solution_cards {
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem;
    margin-top: 4rem;
  }
}
@media screen and (max-width: 767px) {
  .solution_cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin-top: 2rem;
  }
}

.solution_card {
  display: flex;
  flex-direction: column;
}
.solution_card:hover {
  color: #0363d5;
}

.solution_card_image {
  position: relative;
  border-radius: 0.4rem;
  overflow: hidden;
}
.solution_card_image img {
  transition: 0.2s linear;
}
.solution_card:hover .solution_card_image img {
  scale: 1.05;
}

.solution_card_link {
  position: relative;
  fill: #0363d5;
  letter-spacing: 0.05em;
  font-weight: 700;
  text-align: justify;
}
@media (min-width: 768px) {
  .solution_card_link {
    margin-top: 2.5rem;
    padding: 0 3rem 0 0;
    line-height: 1.4;
    font-size: 2rem;
  }
  .solution_card_link > p {
    font: inherit;
  }
  .solution_card_link > p:first-of-type {
    margin-top: -0.2em;
  }
  .solution_card_link > p:last-of-type {
    margin-bottom: -0.2em;
  }
}
@media screen and (max-width: 767px) {
  .solution_card_link {
    margin-top: 1.5rem;
    padding: 0 2rem 0 0;
    line-height: 1.375;
    font-size: 1.6rem;
  }
  .solution_card_link > p {
    font: inherit;
  }
  .solution_card_link > p:first-of-type {
    margin-top: -0.187em;
  }
  .solution_card_link > p:last-of-type {
    margin-bottom: -0.187em;
  }
}

.solution_card_arrow {
  position: absolute;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  width: 2.1rem;
  height: 1.2rem;
  right: -0.3rem;
  top: 50%;
  padding: 0 0.3rem;
  line-height: 0;
  translate: 0 -50%;
}
.solution_card_arrow svg {
  position: relative;
  transition: 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}
.solution_card_arrow svg:nth-of-type(2) {
  position: absolute;
  width: 71.429%;
  inset: 0 0 0 auto;
  translate: -150% 0;
}
.solution_card:hover .solution_card_arrow svg:nth-of-type(1) {
  translate: 150% 0;
}
.solution_card:hover .solution_card_arrow svg:nth-of-type(2) {
  translate: 0 0;
}

.solution_card_text {
  letter-spacing: 0.05em;
  text-align: justify;
}
@media (min-width: 768px) {
  .solution_card_text {
    padding-top: 2rem;
    line-height: 1.5;
    font-size: 1.6rem;
  }
  .solution_card_text > p {
    font: inherit;
  }
  .solution_card_text > p:first-of-type {
    margin-top: -0.25em;
  }
  .solution_card_text > p:last-of-type {
    margin-bottom: -0.25em;
  }
}
@media screen and (max-width: 767px) {
  .solution_card_text {
    padding-top: 1rem;
    line-height: 1.539;
    font-size: 1.3rem;
  }
  .solution_card_text > p {
    font: inherit;
  }
  .solution_card_text > p:first-of-type {
    margin-top: -0.269em;
  }
  .solution_card_text > p:last-of-type {
    margin-bottom: -0.269em;
  }
}

.solution_block {
  position: relative;
  margin-top: 6rem;
}
.solution_block .sub02 + .txt01 {
  padding-top: 2rem;
}
.solution_block .pnl01-items {
  padding-top: 4rem;
}
.solution_block.last {
  display: flex;
}
@media (min-width: 768px) {
  .solution_block.last {
    justify-content: center;
    gap: 5rem;
    margin-bottom: -14rem;
    padding: 16.5rem 0 23rem;
  }
}
@media screen and (max-width: 767px) {
  .solution_block.last {
    flex-direction: column;
    gap: 4rem;
    margin-top: 4rem !important;
    margin-bottom: -5.5rem;
    padding: 7.5rem 0 13rem;
  }
}
.solution_block.last::before {
  content: "";
  position: absolute;
  background: linear-gradient(135deg, #0091ff 0%, #0363d5 80%);
  width: 100vw;
  left: 50%;
  top: 0;
  translate: -50% 0;
  pointer-events: none;
}
@media (min-width: 768px) {
  .solution_block.last::before {
    clip-path: polygon(0 13.5rem, 50% 0, 100% 13.5rem, 100% 100%, 0 100%);
    bottom: -29rem;
  }
}
@media screen and (max-width: 767px) {
  .solution_block.last::before {
    clip-path: polygon(0 5.5rem, 50% 0, 100% 5.5rem, 100% 100%, 0 100%);
    bottom: 0;
  }
}
.solution_block.last .pnl01-head {
  background: #4f92e2;
}
@media (min-width: 768px) {
  + .solution_block {
    margin-top: 5.5rem;
  }
}
@media screen and (max-width: 767px) {
  + .solution_block {
    margin-top: 6rem;
  }
}

.solution_block_caption {
  display: flex;
  flex-direction: column;
  position: relative;
  color: #fff;
}
@media (min-width: 768px) {
  .solution_block_caption {
    gap: 3rem;
    width: 31.25%;
  }
}
@media screen and (max-width: 767px) {
  .solution_block_caption {
    gap: 2rem;
  }
}

.solution_block_h3 {
  letter-spacing: 0.05em;
  font-weight: 700;
  line-height: 1.154;
  font-size: 2.6rem;
}
.solution_block_h3 > h3 {
  font: inherit;
}
.solution_block_h3 > h3:first-of-type {
  margin-top: -0.076em;
}
.solution_block_h3 > h3:last-of-type {
  margin-bottom: -0.076em;
}
@media (min-width: 768px) {
  .solution_block_h3 {
    white-space: nowrap;
  }
}
@media screen and (max-width: 767px) {
  .solution_block_h3 {
    text-align: center;
  }
}

.solution_block_panel {
  position: relative;
}
@media (min-width: 768px) {
  .solution_block_panel {
    max-width: calc(50% - 1rem);
  }
}

.banner_section {
  position: relative;
  background: #fff;
}
@media (min-width: 768px) {
  .banner_section {
    padding: 12rem 2rem;
  }
}
@media screen and (max-width: 767px) {
  .banner_section {
    padding: 6rem 2rem;
  }
}
.banner_section.small {
  background: #f7f7f7;
  padding: 6rem 2rem;
}

.banner_inner {
  position: relative;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .banner_inner {
    max-width: 120rem;
  }
}
@media screen and (max-width: 767px) {
  .banner_inner {
    max-width: 67rem;
  }
}