@charset "UTF-8";
/*--------------------------------------------------------------
Foundation
--------------------------------------------------------------*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, b, em, i, font, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, mark, time, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td, figure, figcaption,
button, input, textarea, select, i {
  border: 0;
  font-style: inherit;
  font-weight: inherit;
  font-size: inherit;
  line-height: inherit;
  font-family: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
  outline: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-size: 10px;
  scroll-behavior: smooth;
}

@media screen and (min-width: 768px) and (max-width: 1380px) {
  html {
    font-size: calc(100vw * 10 / 1380);
  }
}

@media screen and (max-width: 767px) {
  html {
    font-size: calc(100vw * 10 / 500);
  }
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

body {
  font-size: 1.6rem;
  line-height: 1.5;
  background: #fff;
  color: #131834;
  overflow-x: hidden;
  overflow-y: scroll;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
}

ul, li {
  list-style: none;
}

table {
  border-collapse: collapse;
  width: 100%;
}

a:hover,
a:active,
a:focus {
  outline: 0;
}

a {
  backface-visibility: hidden;
  transition: .2s ease-in;
  transition-property: opacity, color, border, background, transform, box-shadow;
  opacity: 1;
  line-height: inherit;
}

img {
  vertical-align: middle;
}

img,
input[type="image"] {
  border: 0;
  height: auto;
  max-width: 100%;
}

input[type="submit"], input[type="button"], button {
  cursor: pointer;
  -webkit-appearance: none;
  border-radius: 0;
  font-size: inherit;
  letter-spacing: inherit;
  background: none;
}

strong {
  font-weight: bold;
}

a {
  text-decoration: none;
}

a:hover,
input[type="image"]:hover {
  opacity: 0.7;
}

p {
  line-height: 2.125;
  letter-spacing: .12em;
}

@media screen and (max-width: 767px) {
  p {
    line-height: 1.875;
  }
}

@media screen and (max-width: 767px) {
  main {
    overflow: hidden;
  }
}

.ft_e {
  font-family: "Montserrat", "Zen Kaku Gothic Antique", sans-serif;
}

/*--------------------------------------------------------------
Component
--------------------------------------------------------------*/
.evt {
  visibility: hidden;
}

.evt.done {
  visibility: visible;
}

.c_anchor {
  position: absolute;
  width: 100%;
  left: 0;
  margin-top: -13.4rem;
}

@media screen and (max-width: 767px) {
  .c_anchor {
    margin-top: -8.3rem;
  }
}

.c_btn a {
  height: 8.4rem;
  display: inline-flex;
  align-items: center;
  padding-left: 2.5em;
  background: #131834 url(../img/arrow-right01.svg) no-repeat calc(100% - 3rem) center/1.125em;
  color: #fff;
  font-weight: 500;
  border-radius: 3em;
  letter-spacing: .16em;
  width: 34rem;
  max-width: 100%;
}

@media screen and (max-width: 767px) {
  .c_btn a {
    height: 7rem;
    width: 31rem;
    background-size: 1.4rem;
    padding-left: 2em;
  }
}

.c_btn a:hover {
  background-color: #2a4aa6;
  opacity: 1;
}

.c_btn a.b {
  border: solid 1px #131834;
  background-color: transparent;
  color: #131834;
  background-image: url(../img/arrow-right02.svg);
}

.c_btn a.b:hover {
  background-color: #131834;
  background-image: url(../img/arrow-right01.svg);
  color: #fff;
}

.c_btn a.w {
  background-color: transparent;
  border: solid 1px #fff;
}

.c_btn a.w:hover {
  background-color: #fff;
  background-image: url(../img/arrow-right02.svg);
  color: #131834;
}

.c_btn a.link {
  gap: .6em;
}

.c_btn a.link:hover:after {
  background-image: url(../img/ico-link-w.svg);
}

.c_btn a.link:after {
  content: '';
  background: url(../img/ico-link.svg) no-repeat 50%/contain;
  width: .875em;
  height: .75em;
  transition: background .3s;
}

.c_ttl {
  line-height: 1;
  margin-bottom: 9rem;
}

@media screen and (max-width: 767px) {
  .c_ttl {
    margin-bottom: 5rem;
  }
}

.c_ttl.w {
  color: #fff;
}

.c_ttl small {
  font-weight: bold;
  letter-spacing: .16em;
  position: relative;
  padding-left: 1em;
  color: #2a4aa6;
  display: block;
  margin-bottom: 1em;
}

@media screen and (max-width: 767px) {
  .c_ttl small {
    font-size: 1.3rem;
  }
}

.c_ttl small:before {
  content: '';
  position: absolute;
  width: .375em;
  height: .375em;
  border-radius: 50%;
  left: 0;
  top: .4em;
  background: #2a4aa6;
}

.c_ttl i {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 7rem;
  letter-spacing: .16em;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .c_ttl i {
    font-size: 5.2rem;
  }
}

.c_ttl2 {
  font-weight: bold;
  font-size: 4.2rem;
  letter-spacing: .06em;
  margin-bottom: .8em;
}

@media screen and (min-width: 768px) {
  .c_ttl2 {
    white-space: nowrap;
  }
}

@media screen and (max-width: 767px) {
  .c_ttl2 {
    font-size: 3.6rem;
  }
}

.c_ttl2 i {
  font-family: "Montserrat", sans-serif;
  letter-spacing: .16em;
  position: relative;
  padding-left: 1em;
  font-size: 1.8rem;
  color: #2a4aa6;
  display: block;
  margin-bottom: 1em;
}

@media screen and (max-width: 767px) {
  .c_ttl2 i {
    font-size: 1.3rem;
  }
}

.c_ttl2 i:before {
  content: '';
  position: absolute;
  width: .375em;
  height: .375em;
  border-radius: 50%;
  left: 0;
  top: .5em;
  background: #2a4aa6;
}

.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}

.c_slide {
  display: flex;
  overflow: hidden;
}

.c_slide p {
  animation: scroll-left 70s infinite linear .5s both;
  white-space: nowrap;
  padding-right: 25rem;
}

@media screen and (max-width: 767px) {
  .c_slide p {
    padding-right: 15rem;
  }
}

.c_slide img {
  height: 14.5rem;
  max-width: none;
}

@media screen and (max-width: 767px) {
  .c_slide img {
    height: 9.8rem;
  }
}

@keyframes scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

.c_img {
  position: relative;
  overflow: hidden;
}

.c_img.ma .c_slide {
  bottom: -2rem;
}

.c_img figure img {
  width: 100%;
}

.c_img .c_slide {
  position: absolute;
  bottom: -4rem;
  left: 0;
}

/*--------------------------------------------------------------
Utility
--------------------------------------------------------------*/
.u_wrap {
  overflow: hidden;
}

@media screen and (min-width: 768px) {
  .u_inner {
    width: 120rem;
    max-width: calc(100% - 4rem);
    margin: 0 auto;
  }
}

@media screen and (max-width: 767px) {
  .u_inner {
    margin: 0 4.7rem;
  }
}

.u_switch_img {
  opacity: 1;
}

.u_relative {
  position: relative;
}

@media screen and (min-width: 768px) {
  .is_sp {
    display: none;
  }
  .is_tel {
    pointer-events: none;
    cursor: default;
  }
  .is_tel:hover {
    opacity: 1;
  }
}

@media screen and (max-width: 767px) {
  .is_pc {
    display: none;
  }
}

/*--------------------------------------------------------------
Layout/PageBase
--------------------------------------------------------------*/
:where(#header, #footer) a {
  display: block;
}

#header {
  position: fixed;
  width: 100%;
  top: 0;
  z-index: 66;
  height: 13.4rem;
  transition: background .2s;
}

@media screen and (min-width: 768px) {
  #header {
    display: flex;
    justify-content: space-between;
    padding: 3.6rem 5rem 3.6rem 4.2rem;
  }
}

@media screen and (max-width: 767px) {
  #header {
    height: 8.3rem;
  }
}

header.fixed #header {
  background: rgba(255, 255, 255, 0.5);
}

@media screen and (max-width: 767px) {
  .h_logo {
    position: absolute;
    left: 2.7rem;
    top: 2.1rem;
    z-index: 1;
  }
}

.h_logo img {
  width: 9.6rem;
}

@media screen and (max-width: 767px) {
  .h_logo img {
    width: 6.7rem;
  }
}

@media screen and (min-width: 768px) {
  .h_nav {
    display: flex;
    gap: 2.5em;
    font-size: 1.4rem;
    font-weight: 500;
    justify-content: flex-end;
    padding-top: .3rem;
  }
}

@media screen and (max-width: 767px) {
  .h_nav {
    margin-bottom: 7rem;
  }
  .h_nav a {
    background: url(../img/arrow-right03.svg) no-repeat calc(100% - .4em) center/1.6rem;
    font-size: 2.2rem;
    padding: 1.3em .3em;
    font-weight: 500;
  }
  .h_nav li {
    border-bottom: solid 1px #e8ecf3;
  }
}

.h_mail a {
  display: flex;
  align-items: center;
  height: 8rem;
  padding: 0 2rem;
  font-size: 2.2rem;
  letter-spacing: .12em;
  font-weight: 500;
  color: #fff;
  border-radius: 3em;
  background: #2a4aa6 url(../img/arrow-right04.svg) no-repeat calc(100% - 2.8rem) center/1.6rem;
  gap: .6em;
}

.h_mail i {
  color: #2a4aa6;
  background: #fff;
  font-size: 1.6rem;
  border-radius: 3em;
  padding: .2em .8em .3em 1.1em;
  font-weight: bold;
  letter-spacing: .16em;
}

@media screen and (min-width: 768px) {
  .h_mail {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .h_menu {
    position: absolute;
    right: 2.7rem;
    top: 3rem;
    cursor: pointer;
  }
  .h_menu img {
    width: 4.1rem;
  }
  #toggle_menu {
    position: fixed;
    overflow-y: auto;
    top: 0;
    height: 100%;
    left: 0;
    width: 100%;
    background: #fff;
    padding: 12rem 4.7rem 5rem;
  }
  body.open {
    overflow-y: hidden;
  }
  body.open #toggle_menu {
    display: block;
    animation: itemFadeIn 1s;
  }
  body:not(.open) #toggle_menu {
    display: none;
    animation: itemFadeOut .8s;
  }
}

#gototop {
  position: fixed;
  right: 2rem;
  bottom: 2rem;
  z-index: 10;
}

@media screen and (min-width: 768px) {
  body:has(.fixed_mail) #gototop {
    bottom: 21rem;
  }
}

#gototop img {
  width: 8rem;
}

@media screen and (max-width: 767px) {
  #gototop img {
    width: 5.4rem;
  }
}

@media screen and (max-width: 767px) {
  body:has(.fixed_footer) #gototop {
    bottom: 10rem;
  }
}

#gototop.show {
  display: block;
  animation: itemFadeIn 1s;
}

#gototop:not(.show) {
  display: none;
  animation: itemFadeOut .8s;
}

@keyframes itemFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes itemFadeOut {
  from {
    opacity: 1;
    display: block;
  }
  to {
    opacity: 0;
  }
}

.f_cta {
  background: url(../img/idx-consult-bg.png) no-repeat 50%/cover;
  padding: 12rem 0;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .f_cta {
    padding: 8rem 0;
    background-image: url(../img/idx-consult-bg-sp.png);
  }
}

@media screen and (min-width: 768px) {
  .f_cta .u_inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .f_cta .desc {
    width: 55rem;
  }
}

.f_cta .ttl {
  font-weight: bold;
  font-size: 4.6rem;
  letter-spacing: .14em;
  display: flex;
  align-items: center;
  gap: .3em;
}

@media screen and (max-width: 767px) {
  .f_cta .ttl {
    font-size: 3.6rem;
    white-space: nowrap;
    letter-spacing: .03em;
    margin-bottom: .8em;
  }
}

.f_cta .ttl img {
  width: 7.8rem;
}

@media screen and (max-width: 767px) {
  .f_cta .ttl img {
    width: 5.4rem;
  }
}

.f_cta p {
  font-size: 1.5rem;
}

.f_cta p + p {
  margin-top: 1em;
}

.f_cta .c_btn {
  margin-top: 4rem;
}

.f_cta .c_btn a {
  background-image: url(../img/arrow-right05.svg);
  background-color: #fff;
  color: #2a4aa6;
  padding-left: 1.8em;
  letter-spacing: .12em;
  gap: .6em;
}

@media screen and (max-width: 767px) {
  .f_cta .c_btn a {
    padding-left: 1.2em;
  }
}

.f_cta .c_btn a:hover {
  opacity: .7;
}

.f_cta .c_btn i {
  background: #2a4aa6;
  color: #fff;
  border-radius: 3em;
  padding: .3em .8em .4em 1em;
  font-weight: bold;
}

#footer {
  padding: 12rem 0 11rem;
}

@media screen and (max-width: 767px) {
  #footer {
    padding: 8rem 0;
  }
}

@media screen and (min-width: 768px) {
  .f_row {
    display: flex;
    justify-content: space-between;
  }
  .f_row .right {
    width: 74rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
}

.f_logo img {
  width: 17.4rem;
}

@media screen and (max-width: 767px) {
  .f_logo img {
    width: 13.3rem;
  }
}

.f_logo p {
  font-size: 1.9rem;
  font-weight: bold;
  margin-top: 1em;
}

@media screen and (max-width: 767px) {
  .f_logo p {
    font-size: 1.6rem;
    margin-top: .6em;
  }
}

.f_info {
  margin: 6.5rem 0 5rem;
}

.f_info p {
  margin-bottom: 2.2em;
}

@media screen and (max-width: 767px) {
  .f_info p {
    margin-bottom: 1.2em;
  }
}

@media screen and (max-width: 767px) {
  .f_info {
    margin: 4rem 0 0;
    font-size: 1.5rem;
  }
}

.f_info address {
  display: block;
  line-height: 2.25;
}

@media screen and (max-width: 767px) {
  .f_info address {
    line-height: 2;
  }
}

.f_nav {
  gap: 3.5rem 0;
}

@media screen and (min-width: 768px) {
  .f_nav {
    gap: 3.2rem 0;
    display: flex;
    flex-wrap: wrap;
  }
}

@media screen and (max-width: 767px) {
  .f_nav {
    margin: 5.5rem 0;
    font-size: 1.5rem;
  }
}

@media screen and (min-width: 768px) {
  .f_nav li {
    width: 30rem;
  }
  .f_nav li:nth-child(3n) {
    width: 14rem;
  }
}

@media screen and (max-width: 767px) {
  .f_nav li {
    width: 60%;
    margin-bottom: 2.5rem;
  }
  .f_nav li.a {
    position: absolute;
    right: 0;
    top: 0;
    width: 38%;
  }
  .f_nav li.b {
    width: 38%;
    position: absolute;
    right: 0;
    top: 4.8rem;
  }
}

.f_nav a {
  display: block;
  position: relative;
  white-space: nowrap;
  letter-spacing: .04em;
  background: url(../img/arrow-right06.svg) no-repeat left center/0.5rem;
  padding-left: 1.2em;
  font-weight: 500;
}

@media screen and (max-width: 767px) {
  .f_nav a {
    background-size: .6rem;
  }
}

.f_nav a:hover {
  color: inherit;
}

@media screen and (max-width: 767px) {
  .f_box {
    position: relative;
  }
}

.f_link {
  display: flex;
}

@media screen and (min-width: 768px) {
  .f_link {
    margin-top: 5rem;
  }
  .f_link li {
    width: 30rem;
  }
}

@media screen and (max-width: 767px) {
  .f_link {
    flex-direction: column;
    position: absolute;
    right: 0;
    bottom: .2rem;
    font-size: 1.3rem;
    width: 38%;
  }
  .f_link a {
    text-decoration: underline;
  }
  .f_link li {
    margin-top: 2.8rem;
  }
}

.f_copy {
  font-size: 1.2rem;
  color: #999ba7;
  letter-spacing: .04em;
}

@media screen and (min-width: 768px) {
  .f_copy {
    text-align: right;
  }
}

@media screen and (max-width: 767px) {
  .f_copy {
    text-align: left;
    font-size: 1.1rem;
  }
}

/*--------------------------------------------------------------
Project
--------------------------------------------------------------*/
@media screen and (min-width: 768px) {
  .fixed_footer {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .fixed_footer {
    transform: translateY(150%);
    transition: transform .3s;
    position: fixed;
    width: 100%;
    z-index: 65;
    bottom: 0;
    left: 0;
  }
  .fixed_footer a {
    display: flex;
    align-items: center;
    height: 8rem;
    padding: 0 2rem;
    font-size: 2.2rem;
    letter-spacing: .12em;
    font-weight: 500;
    color: #fff;
    background: #2a4aa6 url(../img/arrow-right04.svg) no-repeat calc(100% - 2rem) center/1.6rem;
    gap: .6em;
  }
  .fixed_footer i {
    color: #2a4aa6;
    background: #fff;
    font-size: 1.6rem;
    border-radius: 3em;
    padding: .2em .8em .3em 1.1em;
    font-weight: bold;
    letter-spacing: .16em;
  }
}

body:has(#gototop.show) .fixed_footer {
  transform: none;
}

.fixed_mail {
  position: absolute;
  right: 5rem;
  bottom: 4rem;
  width: 28rem;
  border: solid 1px #131834;
  border-radius: 1.2rem;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .fixed_mail {
    z-index: 50;
    position: fixed;
  }
}

@media screen and (max-width: 767px) {
  .fixed_mail {
    display: none;
    right: 0;
    bottom: 0;
    border-radius: .8rem 0 0 0;
    width: 19.3rem;
  }
}

.fixed_mail a {
  display: block;
}

.fixed_mail dt {
  background: #e5e7f0;
  font-size: 1.5rem;
  font-weight: 500;
  position: relative;
  line-height: 4rem;
  border-bottom: solid 1px #2a4aa6;
  border-radius: 1.2rem 1.2rem 0 0;
}

@media screen and (max-width: 767px) {
  .fixed_mail dt {
    font-size: 1.2rem;
    line-height: 2.8rem;
    border-radius: .8rem 0 0 0;
  }
}

.fixed_mail dt img {
  position: absolute;
  width: 7.9rem;
  bottom: 0;
  right: .5rem;
}

@media screen and (max-width: 767px) {
  .fixed_mail dt img {
    width: 5.3rem;
    right: .3rem;
  }
}

.fixed_mail dd {
  background: #f9f9fb;
  border-radius: 0 0 1.2rem 1.2rem;
  font-size: 2rem;
  font-weight: 500;
  padding: 1em 0;
  line-height: 1.8;
}

@media screen and (max-width: 767px) {
  .fixed_mail dd {
    font-size: 1.5rem;
    border-radius: 0;
  }
}

.top_main {
  position: relative;
}

@media screen and (min-width: 768px) {
  .top_main {
    background-image: -moz-linear-gradient(90deg, white 0%, #f5f5f8 100%);
    background-image: -webkit-linear-gradient(90deg, white 0%, #f5f5f8 100%);
    background-image: -ms-linear-gradient(90deg, white 0%, #f5f5f8 100%);
  }
}

.top_main .bg {
  mask: url(../img/idx-mv-mask.svg) no-repeat 50%/cover;
  aspect-ratio: 1600 / 1066;
}

@media screen and (max-width: 767px) {
  .top_main .bg {
    mask-image: url(../img/idx-mv-mask-sp.svg);
    aspect-ratio: 750 / 1305;
  }
}

.top_main .bg img {
  width: 100%;
  height: 100%;
  opacity: 0;
  object-fit: cover;
}

.top_main:has(.load) .bg img {
  opacity: 1;
  transition: .3s .7s ease-in;
}

.top_main .svg svg {
  position: absolute;
  aspect-ratio: 1600 / 1066;
  aspect-ratio: 1590 / 1057;
  width: 100%;
  top: 1px;
  left: 0;
}

@media screen and (max-width: 767px) {
  .top_main .svg svg {
    aspect-ratio: 750 / 1305;
  }
}

.top_main .svg #outline {
  transition: 0.8s cubic-bezier(0.5, 1, 0.89, 1);
  vector-effect: non-scaling-stroke;
  stroke-width: 1px;
  stroke: #2a4aa6;
}

.top_main .svg.pc #outline {
  stroke-dashoffset: -4128;
  stroke-dasharray: 4128;
}

.top_main .svg.sp #outline {
  stroke-dashoffset: -2883;
  stroke-dasharray: 2883;
}

.top_main .svg.sp #logo {
  fill-opacity: 1;
}

.top_main .svg.load #mask, .top_main .svg.load #idx-mv-mask-sp > g {
  opacity: 0;
  transition: .4s .7s ease-in;
}

.top_main .svg.load #outline {
  stroke-dashoffset: 0 !important;
}

.top_main .fv {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
  padding: 17rem 10rem;
}

@media screen and (min-width: 768px) {
  .top_main .fv {
    height: 100vh;
    height: 100svh;
    min-height: 60rem;
  }
}

@media screen and (max-width: 767px) {
  .top_main .fv {
    padding: 11rem 2.7rem;
    aspect-ratio: 750 / 1335;
  }
}

.top_main .catch dt {
  font-size: 4.8rem;
  font-weight: bold;
  letter-spacing: .16em;
  margin-bottom: .8em;
}

@media screen and (max-width: 767px) {
  .top_main .catch dt {
    font-size: 3.6rem;
    letter-spacing: .14em;
    white-space: nowrap;
  }
}

.top_main .catch dt em {
  color: #2a4aa6;
}

@media screen and (max-width: 767px) {
  .top_main .catch dt em {
    margin: 0 -.2em;
  }
}

.top_main .catch dd {
  line-height: 1.875;
  font-weight: 500;
  letter-spacing: .02em;
}

@media screen and (max-width: 767px) {
  .top_main .catch dd {
    font-size: 1.5rem;
    letter-spacing: .08em;
    white-space: nowrap;
  }
}

.top_main .scroll {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  right: 4rem;
  font-size: 1.4rem;
  z-index: 1;
}

@media screen and (max-width: 767px) {
  .top_main .scroll {
    font-size: 1.2rem;
    right: 2rem;
    translate: 0;
    top: auto;
    bottom: 14.7rem;
  }
}

.top_main .scroll a {
  display: block;
  padding-bottom: 11.5rem;
  position: relative;
}

@media screen and (max-width: 767px) {
  .top_main .scroll a {
    padding-bottom: 9.5rem;
  }
}

.top_main .scroll a:before, .top_main .scroll a:after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  margin-left: -.15em;
  bottom: 0;
  background: #131834;
  width: 1px;
  height: 10rem;
}

@media screen and (max-width: 767px) {
  .top_main .scroll a:before, .top_main .scroll a:after {
    height: 8rem;
  }
}

.top_main .scroll a:before {
  opacity: .2;
}

.top_main .scroll a:after {
  animation: scroll 2s infinite;
}

.top_main .scroll i {
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  letter-spacing: .16em;
}

@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

.top_banner {
  margin-top: 12rem;
}

@media screen and (max-width: 767px) {
  .top_banner {
    margin-top: 8rem;
  }
}

.scroll_wrap {
  position: relative;
}

.scroll_wrap.scrolling .bg {
  position: fixed;
}

.scroll_wrap.scrolling .top_vision {
  opacity: 1;
}

.scroll_wrap.scrolling.abs .bg {
  position: absolute;
  bottom: 0;
  top: auto;
}

.scroll_wrap.b {
  height: 200vh;
}

.scroll_wrap.b.scrolling .top_lead {
  position: fixed;
  top: 0;
  width: 100%;
}

.scroll_wrap.b.scrolling .top_lead p {
  opacity: 1;
}

.scroll_wrap.b.scrolling .top_lead.a2 .a {
  opacity: 1;
}

.scroll_wrap.b.scrolling .top_lead.a4 .b {
  opacity: 1;
}

.scroll_wrap.b.scrolling .top_lead.a6 .c {
  opacity: 1;
}

.scroll_wrap.b.scrolling .top_lead.a8 .d {
  opacity: 1;
}

.scroll_wrap.b.abs .top_lead {
  position: absolute;
  bottom: 0;
  top: auto;
}

.scroll_wrap .bg {
  position: absolute;
  width: 100%;
  z-index: -1;
  top: 0;
  left: 0;
}

.scroll_wrap .top_vision {
  opacity: 0;
  transition: opacity .4s;
}

.scroll_wrap .top_vision .u_inner {
  transform: translateY(10rem);
}

.scroll_wrap .c_slide {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  width: 100%;
  left: 0;
  z-index: -1;
}

.scroll_wrap .sec {
  height: 100vh;
  height: 100svh;
  min-height: 60rem;
}

.top_vision {
  position: relative;
  text-align: center;
  display: flex;
  align-items: center;
}

.top_vision .lead {
  padding-top: 10rem;
}

@media screen and (max-width: 767px) {
  .top_vision .lead {
    white-space: nowrap;
  }
}

.top_vision .lead p {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 2.44;
  letter-spacing: .1em;
  margin-bottom: 1.5em;
}

@media screen and (max-width: 767px) {
  .top_vision .lead p {
    font-size: 1.7rem;
    line-height: 2.17;
  }
}

.top_vision .c_btn {
  margin-top: 7rem;
}

@media screen and (max-width: 767px) {
  .top_vision .c_btn {
    margin-top: 6rem;
  }
}

.top_lead {
  position: relative;
  text-align: center;
}

.top_lead .box {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  width: 100%;
  left: 0;
}

.top_lead .img {
  position: absolute;
  border-radius: 50%;
  opacity: 0;
  transition: opacity .4s;
  z-index: -1;
}

.top_lead .a {
  right: calc(50% + 57rem);
  width: 24rem;
}

@media screen and (max-width: 767px) {
  .top_lead .a {
    width: 12.6rem;
    right: auto;
    left: 3.5rem;
    top: -17rem;
  }
}

.top_lead .b {
  left: calc(50% + 45rem);
  top: 2.5rem;
  width: 12rem;
}

@media screen and (max-width: 767px) {
  .top_lead .b {
    width: 7.3rem;
    left: auto;
    right: 3rem;
    top: -7rem;
  }
}

.top_lead .c {
  left: calc(50% + 55rem);
  top: 22.5rem;
  width: 20rem;
}

@media screen and (max-width: 767px) {
  .top_lead .c {
    width: 12rem;
    left: auto;
    right: 8.5rem;
    top: auto;
    bottom: -16rem;
  }
}

.top_lead .d {
  right: calc(50% + 39rem);
  top: 30rem;
  width: 18rem;
}

@media screen and (max-width: 767px) {
  .top_lead .d {
    width: 7.3rem;
    right: auto;
    left: 4.7rem;
    top: auto;
    bottom: .5rem;
  }
}

.top_lead p {
  font-size: 3.6rem;
  letter-spacing: .16em;
  line-height: 2.33;
  font-weight: bold;
  opacity: 0;
  transition: opacity .4s;
}

@media screen and (max-width: 767px) {
  .top_lead p {
    font-size: 2.4rem;
    line-height: 2;
  }
}

.top_bg {
  background: linear-gradient(0deg, transparent calc(14.5rem - 1px), #f0f0f0 14.5rem), linear-gradient(90deg, transparent calc(14.5rem - 1px), #f0f0f0 14.5rem);
  background-size: 14.5rem 14.5rem;
  background-position: center -1px;
}

@media screen and (max-width: 767px) {
  .top_bg {
    background: linear-gradient(0deg, transparent calc(10rem - 1px), #f0f0f0 10rem), linear-gradient(90deg, transparent calc(10rem - 1px), #f0f0f0 10rem);
    background-size: 10rem 10rem;
    background-position: center -1px;
  }
}

.top_service {
  padding: 20rem 0;
}

@media screen and (max-width: 767px) {
  .top_service {
    padding: 12.5rem 0;
  }
}

.top_service .c_ttl {
  border-bottom: solid 1px #131834;
  padding-bottom: 3em;
}

@media screen and (max-width: 767px) {
  .top_service .c_ttl {
    padding-bottom: 2.4em;
    margin-bottom: 8rem;
  }
}

.top_service li {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media screen and (max-width: 767px) {
  .top_service li {
    flex-direction: column;
    gap: 4rem;
  }
  .top_service li + li {
    margin-top: 7.5rem;
  }
}

@media screen and (min-width: 768px) {
  .top_service li + li {
    margin-top: 12rem;
  }
  .top_service li:nth-child(even) {
    flex-direction: row-reverse;
  }
}

@media screen and (max-width: 767px) {
  .top_service figure {
    text-align: center;
  }
  .top_service figure img {
    width: 36.8rem;
  }
}

@media screen and (min-width: 768px) {
  .top_service figure {
    width: 55rem;
  }
  .top_service .desc {
    width: calc(100% - 65rem);
  }
}

.top_service .ttl {
  font-weight: bold;
  font-size: 4.2rem;
  line-height: 1.42;
  letter-spacing: .16em;
  margin-bottom: .8em;
}

@media screen and (max-width: 767px) {
  .top_service .ttl {
    font-size: 3.3rem;
    margin-bottom: .6em;
  }
}

.top_service .ttl small {
  display: block;
  font-size: 1.8rem;
  color: #2a4aa6;
  font-weight: 500;
  letter-spacing: .16em;
  background: url(../img/ico-biz.svg) no-repeat left 0.3em/0.944em;
  padding-left: 1.5em;
  margin-bottom: .7em;
}

@media screen and (max-width: 767px) {
  .top_service .ttl small {
    font-size: 1.3rem;
  }
}

.top_service .c_btn {
  margin-top: 5rem;
}

@media screen and (max-width: 767px) {
  .top_service .c_btn {
    margin-top: 3.5rem;
  }
}

.top_service .c_btn a {
  height: 7rem;
  width: 27rem;
  padding-left: 2em;
}

@media screen and (max-width: 767px) {
  .top_service .c_btn a {
    padding-left: 1.5em;
    height: 6rem;
    width: 23rem;
  }
}

.top_ma {
  padding: 19rem 0;
  background: #f3f4f8;
  border-radius: 12rem 0 0 0;
}

@media screen and (max-width: 767px) {
  .top_ma {
    padding: 12rem 0;
    border-radius: 8rem 0 0 0;
  }
}

.top_ma .u_inner {
  position: relative;
}

.top_ma .ttl {
  font-size: 4.6rem;
  line-height: 1.95;
  font-weight: bold;
  letter-spacing: .16em;
  margin-bottom: .6em;
}

@media screen and (max-width: 767px) {
  .top_ma .ttl {
    font-size: 3.6rem;
    line-height: 1.83;
  }
}

.top_ma figure {
  aspect-ratio: 550 / 578;
  position: relative;
  z-index: 0;
}

@media screen and (max-width: 767px) {
  .top_ma figure {
    width: 36.8rem;
    margin: 3rem auto 4rem;
  }
}

.top_ma figure img {
  width: 62%;
  display: block;
}

.top_ma figure .b {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: -1;
}

@media screen and (min-width: 768px) {
  .top_ma figure {
    width: 55rem;
    position: absolute;
    right: 0;
    top: 3rem;
  }
}

.top_ma p {
  letter-spacing: .1em;
}

.top_ma p + p {
  margin-top: 2em;
}

.top_ma .c_btn {
  margin-top: 9rem;
}

@media screen and (max-width: 767px) {
  .top_ma .c_btn {
    margin-top: 4.5rem;
  }
}

.top_profile {
  position: relative;
  padding: 19rem 0 16rem;
}

@media screen and (max-width: 767px) {
  .top_profile {
    padding: 12rem 0 13rem;
  }
  .top_profile .c_btn {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }
}

.top_profile .row {
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .top_profile .row {
    flex-direction: column;
    gap: 4rem;
  }
}

@media screen and (min-width: 768px) {
  .top_profile .row > * {
    width: 53rem;
  }
}

@media screen and (min-width: 768px) {
  .top_profile .u_inner {
    position: relative;
  }
  .top_profile .c_btn {
    position: absolute;
    right: 0;
    top: 2.5rem;
    width: 53rem;
    display: flex;
    justify-content: space-between;
  }
  .top_profile .c_btn a {
    width: 26rem;
    height: 7rem;
    padding-left: 2em;
  }
}

@media screen and (min-width: 768px) {
  .top_profile .desc {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
}

.top_profile p {
  letter-spacing: .1em;
}

.top_profile p + p {
  margin-top: 1.4em;
}

.top_profile dl {
  border: solid 1px #131834;
  border-radius: 1rem;
  overflow: hidden;
  margin-top: 4rem;
}

@media screen and (max-width: 767px) {
  .top_profile dl {
    margin: 4rem 0 4.5rem;
    border-radius: .66rem;
  }
}

.top_profile dt {
  background: #131834;
  text-align: center;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 500;
  padding: .7em 0;
  letter-spacing: .1em;
}

.top_profile dd {
  font-size: 1.4rem;
  line-height: 2;
  letter-spacing: .06em;
  padding: 3.5rem 4rem;
}

@media screen and (max-width: 767px) {
  .top_profile dd {
    padding: 2.5rem 3rem;
  }
}

.top_profile dd small {
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .top_profile dd {
    white-space: nowrap;
  }
}

.top_profile dd p {
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: .1em;
  margin-top: .5em;
}

.top_profile figure img {
  border-radius: 1rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .top_profile figure img {
    border-radius: .66rem;
  }
}

.top_bg2 {
  background: #eef0f7;
  border-radius: 0 12rem 0 0;
}

@media screen and (max-width: 767px) {
  .top_bg2 {
    border-radius: 0 8rem 0 0;
  }
}

.top_seminar {
  position: relative;
  padding: 19rem 0 20rem;
}

@media screen and (max-width: 767px) {
  .top_seminar {
    padding: 12rem 0 13rem;
  }
}

.top_seminar .row {
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .top_seminar .row {
    flex-direction: column;
    gap: 4rem;
  }
}

@media screen and (min-width: 768px) {
  .top_seminar .row {
    flex-direction: row-reverse;
  }
  .top_seminar .row > * {
    width: 53rem;
  }
}

.top_seminar p {
  letter-spacing: .1em;
}

.top_seminar p + p {
  margin-top: 1.4em;
}

.top_seminar .c_btn {
  margin-top: 7rem;
}

@media screen and (max-width: 767px) {
  .top_seminar .c_btn {
    margin-top: 4.5rem;
  }
}

.top_seminar figure img {
  border-radius: 1rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .top_seminar figure img {
    border-radius: .66rem;
  }
}

.top_company {
  background: url(../img/idx-company-bg.png) no-repeat 50%/cover;
  padding: 19rem 0;
}

@media screen and (max-width: 767px) {
  .top_company {
    padding: 12rem 0;
    background-image: url(../img/idx-company-bg-sp.png);
  }
  .top_company .c_btn {
    margin-top: 4.5rem;
  }
}

@media screen and (min-width: 768px) {
  .top_company .u_inner {
    position: relative;
  }
  .top_company .c_btn {
    position: absolute;
    right: 0;
    top: 2.5rem;
  }
  .top_company .c_btn a {
    width: 26rem;
    height: 7rem;
    padding-left: 2em;
  }
}

.top_company ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}

@media screen and (max-width: 767px) {
  .top_company ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 1.2rem;
  }
}

.top_company li img {
  width: 100%;
  transition: transform .3s;
}

.top_company li a {
  display: block;
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  .top_company li a {
    border-radius: .66rem;
  }
}

.top_company li a:hover {
  opacity: 1;
}

.top_company li a:hover img {
  transform: scale(1.05);
}

.top_company li a:hover em:before {
  animation-name: transformRightLeft;
}

.top_company li a:hover em:after {
  animation-name: transformLeftRight;
}

.top_company li p {
  position: absolute;
  bottom: 0;
  width: 100%;
  color: #fff;
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: .06em;
  padding: 0 3rem 3rem;
}

@media screen and (max-width: 767px) {
  .top_company li p {
    font-size: 2.1rem;
    padding: 0 2.4rem 2rem;
  }
}

.top_company li em {
  position: absolute;
  height: 100%;
  right: 3rem;
  top: 0;
  overflow: hidden;
  width: 1.9rem;
}

@media screen and (max-width: 767px) {
  .top_company li em {
    width: 1.4rem;
    right: 2.8rem;
  }
}

.top_company li em:before, .top_company li em:after {
  content: '';
  position: absolute;
  background: url(../img/arrow-right01.svg) no-repeat 50%/contain;
  width: 100%;
  height: 100%;
  right: 0;
  animation-fill-mode: forwards;
  animation-duration: 0.6s;
}

.top_company li em:after {
  transform: translateX(-100%);
  animation-delay: 0.2s;
}

.top_company li i {
  display: block;
  font-family: "Montserrat", sans-serif;
  letter-spacing: .08em;
  font-size: 1.2rem;
  font-weight: 500;
}

@media screen and (max-width: 767px) {
  .top_company li i {
    font-size: 1.3rem;
  }
}

@keyframes transformLeftRight {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes transformRightLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}

.top_partner {
  padding: 10rem 0 15rem;
  background: url(../img/partner-bg.png) no-repeat 50%/100%;
}

@media screen and (max-width: 767px) {
  .top_partner {
    padding: 12rem 0;
    background-image: url(../img/partner-bg-sp.png);
    text-align: center;
  }
  .top_partner .c_btn {
    text-align: center;
    margin-top: 4.5rem;
  }
  .top_partner .c_btn a {
    justify-content: center;
    padding-left: 0;
  }
}

@media screen and (min-width: 768px) {
  .top_partner .u_inner {
    position: relative;
    display: flex;
    justify-content: space-between;
  }
  .top_partner .desc {
    margin-top: 3rem;
  }
  .top_partner .c_btn {
    position: absolute;
    bottom: 0;
  }
}

.top_partner .ttl {
  font-weight: bold;
  font-size: 4.6rem;
  margin-bottom: .8em;
  letter-spacing: .16em;
}

@media screen and (max-width: 767px) {
  .top_partner .ttl {
    font-size: 3.6rem;
    margin-bottom: .6em;
  }
}

.top_partner .ttl + p {
  letter-spacing: .04em;
}

.top_partner .catch {
  text-align: center;
  font-weight: bold;
  font-size: 2.2rem;
  line-height: 1.5;
}

@media screen and (max-width: 767px) {
  .top_partner .catch {
    font-size: 1.8rem;
  }
}

.top_partner .catch small {
  display: block;
  font-size: 2rem;
  letter-spacing: .12em;
}

@media screen and (max-width: 767px) {
  .top_partner .catch small {
    font-size: 1.7rem;
  }
}

.top_partner .catch em {
  color: #2a4aa6;
  font-size: 3.4rem;
  letter-spacing: .12em;
}

@media screen and (max-width: 767px) {
  .top_partner .catch em {
    font-size: 2.6rem;
  }
}

.top_partner figure {
  position: relative;
  margin: 4rem 0;
}

@media screen and (min-width: 768px) {
  .top_partner figure {
    width: 62.2rem;
    margin: 0 0 4rem;
  }
}

.top_partner figure.show img:not(.a) {
  transform: none;
  opacity: 1;
}

.top_partner figure img:not(.a) {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  transform: scale(0.8);
  transition: .2s;
  transition-property: opacity, transform;
}

.top_partner figure img:not(.a):nth-of-type(2) {
  transition-delay: 0;
}

.top_partner figure img:not(.a):nth-of-type(3) {
  transition-delay: .3s;
}

.top_partner figure img:not(.a):nth-of-type(4) {
  transition-delay: .6s;
}

.low_header {
  background: #f7f8fb;
  height: 53rem;
  position: relative;
  display: flex;
  align-items: center;
  padding-left: 10rem;
  z-index: 0;
  margin-bottom: 16rem;
}

.low_header.serv .c_ttl {
  letter-spacing: -.06em;
}

@media screen and (max-width: 1400px) {
  .low_header {
    padding-left: 5rem;
  }
}

@media screen and (max-width: 767px) {
  .low_header {
    height: 30rem;
    padding-left: 2.7rem;
    margin-bottom: 10rem;
    padding-top: 4rem;
  }
}

.low_header.b {
  margin-bottom: 0;
}

.low_header:before {
  content: '';
  position: absolute;
  inset: 0;
  background: #f0f1f7;
  clip-path: polygon(75% 0, 100% 0, 100% 100%, 9.1875% 100%);
  z-index: -1;
}

.low_header .c_ttl {
  margin: 0;
  font-size: 7rem;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .low_header .c_ttl {
    font-size: 3.6rem;
    line-height: 1.4;
  }
}

.low_header .c_ttl small {
  color: #131834;
  line-height: 1;
}

.low_header .c_ttl small:before {
  background: #131834;
}

@media screen and (min-width: 768px) {
  .low_header .c_ttl small {
    font-size: 1.8rem;
  }
}

.low_header .c_ttl i {
  line-height: 1;
}

@media screen and (min-width: 768px) {
  .low_header .c_ttl i {
    font-size: 8rem;
  }
}

.c_sec {
  padding: 16rem 0;
}

@media screen and (max-width: 767px) {
  .c_sec {
    padding: 10rem 0;
  }
}

.c_bg {
  background: #f2f4f8;
  border-radius: 12rem 0 0 0;
}

@media screen and (max-width: 767px) {
  .c_bg {
    border-radius: 8rem 0 0 0;
  }
}

.low_nav {
  border-bottom: solid 1px #dcdcdc;
  padding: 3rem 10rem;
  display: flex;
  font-weight: 500;
  letter-spacing: .12em;
  margin-bottom: 12rem;
}

@media screen and (max-width: 767px) {
  .low_nav {
    padding: 2rem 0;
    justify-content: center;
    margin-bottom: 10rem;
  }
  .low_nav.b a {
    padding: 0 .5em;
  }
}

.low_nav li {
  line-height: 1.25;
  border-right: solid 1px #dcdcdc;
}

.low_nav li:first-child {
  border-left: solid 1px #dcdcdc;
}

.low_nav a {
  display: block;
  padding: 0 3em;
}

.low_nav a:hover {
  text-decoration: underline;
  text-underline-offset: .5em;
  color: #2a4aa6;
  opacity: 1;
}

@media screen and (max-width: 767px) {
  .low_nav a {
    padding: 0 1.5em;
  }
}

.ma_ttl {
  font-weight: bold;
  font-size: 3.6rem;
  letter-spacing: .16em;
  position: relative;
  padding-left: 1.3em;
  margin-bottom: 7rem;
}

@media screen and (max-width: 767px) {
  .ma_ttl {
    font-size: 3rem;
    margin-bottom: 4rem;
  }
}

.ma_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  top: .8em;
  width: .83em;
  border-bottom: solid 2px #2a4aa6;
}

.ma_lead {
  padding-bottom: 8rem;
}

.ma_lead p {
  letter-spacing: .12em;
}

.ma_about ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 7rem 6rem;
}

@media screen and (max-width: 767px) {
  .ma_about ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 5rem;
  }
}

.ma_about figure {
  background: #fff;
  padding-top: 3rem;
  margin-bottom: 3rem;
  border-radius: 1rem;
}

@media screen and (max-width: 767px) {
  .ma_about figure {
    border-radius: .66rem;
  }
}

.ma_about figcaption {
  text-align: center;
  font-weight: bold;
  font-size: 1.4rem;
  margin-bottom: 1em;
}

.ma_sec ul {
  border-top: solid 1px #dcdcdc;
}

.ma_sec li {
  border-bottom: solid 1px #dcdcdc;
  padding: 7rem 0;
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .ma_sec li {
    padding: 4rem 0;
    flex-direction: column;
    gap: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .ma_sec .desc {
    width: calc(100% - 60rem);
  }
}

.ma_sec .ttl {
  position: relative;
  letter-spacing: .12em;
  font-weight: bold;
  color: #bb0f0f;
  padding-left: 1.5em;
  font-size: 2.8rem;
  margin-bottom: .8em;
}

.ma_sec .ttl i {
  font-family: "Montserrat", sans-serif;
  font-size: 1.3rem;
  font-weight: 400;
  letter-spacing: .12em;
  width: 2.3em;
  height: 2.3em;
  line-height: 2.3;
  border-radius: 50%;
  position: absolute;
  color: #fff;
  text-align: center;
  background: #bb0f0f;
  left: 0;
  top: .6em;
}

.ma_sec p {
  letter-spacing: .1em;
}

.ma_sec dl {
  margin-top: 3rem;
}

.ma_sec dt {
  font-weight: 500;
  letter-spacing: .1em;
  position: relative;
  line-height: 1;
  border-left: solid 0.25em #131834;
  padding-left: .6em;
  font-size: 1.7rem;
  margin-bottom: 1.2em;
}

.ma_sec dd {
  font-size: 1.4rem;
  position: relative;
  padding-left: 1.2em;
  line-height: 1.6;
  letter-spacing: .1em;
  margin-top: .7em;
}

.ma_sec dd:before {
  content: '';
  position: absolute;
  width: .42em;
  height: .42em;
  border-radius: 50%;
  left: 0;
  top: .6em;
  background: #bb0f0f;
}

@media screen and (min-width: 768px) {
  .ma_sec figure {
    width: 53rem;
  }
}

.ma_sec figure img {
  border-radius: 1rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .ma_sec figure img {
    border-radius: .66rem;
  }
}

.ma_issue .ma_ttl:before {
  border-color: #bb0f0f;
}

.ma_issue .ma_ttl em {
  color: #bb0f0f;
}

.ma_sol {
  background: #f3f4f8;
  border-radius: 12rem 0 0 0;
}

@media screen and (max-width: 767px) {
  .ma_sol {
    border-radius: 8rem 0 0 0;
  }
}

.ma_sol .ttl {
  color: #2a4aa6;
}

.ma_sol .ttl i {
  background: #2a4aa6;
}

.ma_msg {
  text-align: center;
}

.ma_msg .ttl {
  font-size: 4rem;
  font-weight: bold;
  letter-spacing: .16em;
  margin-bottom: 1.3em;
}

@media screen and (max-width: 767px) {
  .ma_msg .ttl {
    font-size: 3.6rem;
  }
}

.ma_msg p {
  font-size: 1.7rem;
  letter-spacing: .08em;
  margin-bottom: 1.8em;
}

.ma_msg .c_btn {
  margin-top: 6rem;
}

@media screen and (max-width: 767px) {
  .ma_msg .c_btn {
    margin-top: 5rem;
  }
}

.ma_msg .c_btn a {
  width: 70rem;
}

.pro_lead figure img {
  border-radius: 1rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .pro_lead figure img {
    border-radius: .66rem;
  }
}

@media screen and (max-width: 767px) {
  .pro_lead figure {
    margin-top: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .pro_lead .u_inner {
    padding-right: 67rem;
    position: relative;
  }
  .pro_lead .u_inner figure {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 53rem;
  }
}

.pro_lead .name {
  font-weight: bold;
  font-size: 4rem;
  letter-spacing: .1em;
  margin-bottom: 1em;
}

@media screen and (max-width: 767px) {
  .pro_lead .name {
    font-size: 3.6rem;
  }
}

.pro_lead .name small {
  display: block;
  font-size: .5em;
  letter-spacing: .1em;
  margin-bottom: .3em;
}

.pro_lead .name i {
  font-size: .45em;
  color: #2a4aa6;
  font-weight: 600;
  letter-spacing: .16em;
  margin-left: 1.5em;
}

.pro_lead p {
  margin-top: 1.5em;
  letter-spacing: .1em;
}

.pro_lead .c_slide {
  margin: 16rem 0;
}

@media screen and (max-width: 767px) {
  .pro_lead .c_slide {
    margin: 10rem 0;
  }
}

.pro_ttl {
  font-weight: bold;
  font-size: 3rem;
  letter-spacing: .16em;
  position: relative;
  padding-left: 1.3em;
  margin-bottom: .8em;
}

@media screen and (max-width: 767px) {
  .pro_ttl {
    font-size: 2.8rem;
  }
}

.pro_ttl:before {
  content: '';
  position: absolute;
  left: 0;
  top: .8em;
  width: .666em;
  border-bottom: solid 2px #2a4aa6;
}

.pro_history {
  background: #f3f4f8;
  border-radius: 12rem 0 0 0;
}

@media screen and (max-width: 767px) {
  .pro_history {
    border-radius: 8rem 0 0 0;
  }
}

.pro_history .list {
  display: flex;
  flex-wrap: wrap;
  gap: 6rem;
}

@media screen and (max-width: 767px) {
  .pro_history .list {
    flex-direction: column;
  }
}

@media screen and (min-width: 768px) {
  .pro_history .list > * {
    width: calc(50% - 3rem);
  }
  .pro_history .list > *:nth-child(5), .pro_history .list > *:nth-child(6) {
    width: 100%;
  }
}

.pro_history .bg {
  background: #fff;
  border-radius: 1rem;
  padding: 4rem;
  font-size: 1.5rem;
}

@media screen and (min-width: 768px) {
  .pro_history .bg {
    height: calc(100% - 6.9rem);
  }
}

@media screen and (max-width: 767px) {
  .pro_history .bg {
    border-radius: .66rem;
    padding: 4rem 2.7rem;
  }
}

.pro_history .bg p {
  margin-left: 1.5em;
  margin-top: .9em;
}

.pro_history .bg li {
  position: relative;
  position: relative;
  padding-left: 1.5em;
  line-height: 1.6;
  letter-spacing: .16em;
}

.pro_history .bg li + li {
  margin-top: .9em;
}

.pro_history .bg li:before {
  content: '';
  position: absolute;
  width: .53em;
  height: .53em;
  border-radius: 50%;
  left: 0;
  top: .5em;
  background: #2a4aa6;
}

.pro_history .history {
  font-size: 1.5rem;
  letter-spacing: .16em;
}

@media screen and (max-width: 767px) {
  .pro_history .history {
    border-top: solid 1px #c8c8c8;
  }
}

.pro_history .history i {
  font-weight: 500;
  left: 0;
  position: absolute;
}

.pro_history .history li {
  border-bottom: solid 1px #c8c8c8;
  padding: 2em 0;
  line-height: 1.6;
  position: relative;
  padding-left: 7em;
}

@media screen and (max-width: 767px) {
  .pro_history .history li {
    padding-left: 5em;
  }
}

@media screen and (min-width: 768px) {
  .pro_history .history {
    position: relative;
    column-count: 2;
    gap: 6rem;
  }
  .pro_history .history:before, .pro_history .history:after {
    content: '';
    position: absolute;
    width: calc(50% - 3rem);
    border-top: solid 1px #c8c8c8;
    top: 0;
  }
  .pro_history .history:after {
    right: 0;
  }
}

.pro_history .media {
  font-size: 1.5rem;
  letter-spacing: .12em;
  border-top: solid 1px #c8c8c8;
}

.pro_history .media a {
  text-decoration: underline;
}

.pro_history .media li {
  border-bottom: solid 1px #c8c8c8;
  padding: 2em 0;
  line-height: 1.6;
  position: relative;
}

.pro_history .media li:has(i) {
  padding-left: 7em;
}

.pro_history .media i {
  position: absolute;
  left: 0;
}

.pro_info .row {
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .pro_info .row {
    flex-direction: column;
    gap: 3rem;
  }
}

.pro_info dl {
  border-top: solid 1px #c8c8c8;
}

@media screen and (min-width: 768px) {
  .pro_info dl {
    display: flex;
    flex-wrap: wrap;
    width: calc(100% - 55rem);
  }
}

.pro_info dt, .pro_info dd {
  border-bottom: solid 1px #c8c8c8;
  padding: 2em 0;
  letter-spacing: .16em;
}

@media screen and (max-width: 767px) {
  .pro_info dt, .pro_info dd {
    padding: 1.2em 0;
  }
}

.pro_info dt {
  font-weight: 500;
}

@media screen and (min-width: 768px) {
  .pro_info dt {
    width: 12em;
  }
}

@media screen and (max-width: 767px) {
  .pro_info dt {
    border: none;
    padding-bottom: 0;
    margin-bottom: -.8em;
  }
}

@media screen and (min-width: 768px) {
  .pro_info dd {
    width: calc(100% - 12em);
  }
}

@media screen and (min-width: 768px) {
  .pro_info figure {
    width: 44rem;
  }
}

.pro_info figure img {
  border-radius: 1rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .pro_info figure img {
    border-radius: .66rem;
  }
}

.pro_memory {
  background: #f2f4f8;
  position: relative;
  z-index: 0;
  padding-bottom: 30rem;
}

@media screen and (max-width: 767px) {
  .pro_memory {
    padding-bottom: 15rem;
  }
}

.pro_memory p {
  line-height: 1.86;
  font-size: 1.5rem;
  margin-top: 1.5em;
  letter-spacing: .02em;
}

.pro_memory .lead {
  font-weight: bold;
  font-size: 1.5rem;
  line-height: 2.4;
  letter-spacing: .04em;
  margin: 0 0 3em;
}

@media screen and (min-width: 768px) {
  .pro_memory .lead {
    position: absolute;
  }
}

.pro_memory .c_slide {
  z-index: -1;
  position: absolute;
  top: 44rem;
  width: 100%;
  left: 0;
}

.pro_memory .box {
  background: #fff;
  border-radius: 1rem;
  padding: 7.5rem 8rem;
}

@media screen and (max-width: 767px) {
  .pro_memory .box {
    border-radius: .66rem;
    padding: 5rem 2.7rem;
    margin: 0 -2rem;
  }
}

@media screen and (min-width: 768px) {
  .pro_memory .box {
    margin-left: 34rem;
  }
}

.pro_memory article + article {
  margin-top: 6.5rem;
}

.pro_memory .ttl {
  font-weight: bold;
  font-size: 2.6rem;
  padding-bottom: .8em;
  border-bottom: solid .154em #e4ebf4;
  margin-bottom: 1.5em;
  position: relative;
}

.pro_memory .ttl:before {
  content: '';
  position: absolute;
  width: 3.5em;
  border-bottom: solid 0.154em #2a4aa6;
  bottom: -.154em;
}

.pro_memory .ttl + figure {
  margin-top: 5rem;
}

.pro_memory figure {
  margin: 6rem 0 4rem;
}

.pro_memory figure img {
  width: 100%;
}

.pp_body {
  padding-top: 0;
}

.pp_body a {
  color: #2a4aa6;
  text-decoration: underline;
  letter-spacing: inherit;
}

.pp_body p, .pp_body dd, .pp_body li {
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: .03em;
}

.pp_body dl {
  margin-top: 4.5rem;
}

.pp_body dt {
  margin-bottom: .6em;
  color: #2a4aa6;
  font-size: 2.2rem;
  font-weight: 500;
}

@media screen and (max-width: 767px) {
  .pp_body dt {
    font-size: 2rem;
  }
}

.pp_body dd {
  margin-bottom: 3.5em;
}

.pp_body li {
  position: relative;
  padding-left: 1.4em;
}

.pp_body li li {
  padding-left: 2em;
  margin-left: 2em;
}

.pp_body li li li {
  font-size: 1.4rem;
}

.pp_body li li li + li {
  margin-top: 0;
}

.pp_body li ul {
  margin: 1em 0;
  margin-top: .5em;
}

.pp_body li + li {
  margin-top: .3em;
}

.pp_body li i {
  position: absolute;
  left: 0;
  line-height: inherit;
}

.serv_lead {
  text-align: center;
  margin-bottom: 16rem;
}

@media screen and (max-width: 767px) {
  .serv_lead {
    margin-bottom: 10rem;
  }
}

.serv_lead .ttl {
  font-weight: bold;
  font-size: 5.8rem;
  letter-spacing: .06em;
  margin-bottom: .8em;
}

@media screen and (max-width: 767px) {
  .serv_lead .ttl {
    font-size: 4.2rem;
  }
}

@media screen and (max-width: 767px) {
  .serv_lead .ttl + p {
    text-align: left;
  }
}

.serv_lead .ttl2 {
  text-align: center;
  margin-bottom: 6.5rem;
}

@media screen and (max-width: 767px) {
  .serv_lead .ttl2 {
    margin: 0 -2rem 4rem;
  }
}

.serv_lead .ttl2 i {
  display: inline-block;
  position: relative;
  background: #d93131;
  font-weight: bold;
  color: #fff;
  border-radius: 3em;
  font-size: 1.8rem;
  letter-spacing: .06em;
  padding: .5em 1.6em;
}

@media screen and (max-width: 767px) {
  .serv_lead .ttl2 i {
    font-size: 1.6rem;
  }
}

.serv_lead .ttl2 i:before {
  content: '';
  position: absolute;
  left: 50%;
  translate: -50% 0;
  width: 1.1rem;
  height: 1.1rem;
  background: inherit;
  bottom: -1.05rem;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.serv_lead .ttl2 small {
  display: block;
  font-weight: 500;
  margin: 1.6em 0 .2em;
  font-size: 2.2rem;
}

@media screen and (max-width: 767px) {
  .serv_lead .ttl2 small {
    font-size: 2rem;
  }
}

.serv_lead .ttl2 em {
  color: #d93131;
  display: block;
  font-weight: 900;
  letter-spacing: .06em;
  font-size: 6rem;
}

@media screen and (max-width: 767px) {
  .serv_lead .ttl2 em {
    font-size: 5rem;
  }
}

.serv_lead .ttl2 b {
  font-size: 1.56em;
  line-height: 1;
}

.serv_lead .ttl2 span {
  font-size: 1.43em;
  line-height: 1;
}

.serv_lead .ttl2 span.a {
  margin-left: -.5em;
  margin-right: .25em;
}

.serv_lead .ttl2 span.b {
  margin-left: .2em;
  margin-right: -.5em;
}

.serv_lead p {
  letter-spacing: .1em;
}

@media screen and (max-width: 767px) {
  .serv_lead p {
    text-align: left;
  }
}

.serv_lead .fig {
  margin-top: 7rem;
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .serv_lead .fig {
    flex-direction: column;
    margin-top: 5rem;
    gap: 3rem;
  }
}

.serv_lead figcaption {
  background: #131834;
  color: #fff;
  font-weight: 500;
  padding: .8em 0;
}

.serv_lead figure {
  background: #f2f4f8;
  border-radius: 1.2rem;
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  .serv_lead figure {
    flex-direction: column;
    border-radius: .8rem;
  }
}

@media screen and (min-width: 768px) {
  .serv_lead figure {
    width: 57rem;
  }
}

.serv_lead figure img {
  padding: 3rem 6.45rem;
}

.serv_sec ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}

@media screen and (max-width: 767px) {
  .serv_sec ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 1.5rem;
  }
}

.serv_sec li {
  background: #fff url(../img/arrow-right07.svg) no-repeat 3rem center/5rem;
  border-radius: 1.2rem;
  font-size: 2.2rem;
  font-weight: bold;
  letter-spacing: .06em;
  height: 18rem;
  display: flex;
  align-items: center;
  padding-left: 10rem;
  text-align: left;
}

@media screen and (max-width: 767px) {
  .serv_sec li {
    border-radius: .8rem;
    height: 12rem;
    font-size: 2rem;
  }
}

.serv_sec li small {
  font-size: .5454em;
}

.serv_problem {
  background: #f2f4f8;
  padding-bottom: 28rem;
  clip-path: polygon(100% 0, 100% calc(100% - 10rem), 50% 100%, 0 calc(100% - 10rem), 0 0);
}

@media screen and (max-width: 767px) {
  .serv_problem {
    padding-bottom: 14rem;
    clip-path: polygon(100% 0, 100% calc(100% - 6rem), 50% 100%, 0 calc(100% - 6rem), 0 0);
  }
}

.serv_problem p {
  letter-spacing: .04em;
}

.serv_problem .row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 12rem;
}

@media screen and (max-width: 767px) {
  .serv_problem .row {
    gap: 3rem;
    flex-direction: column;
    margin-bottom: 8rem;
  }
}

@media screen and (min-width: 768px) {
  .serv_problem .desc {
    width: 53rem;
  }
}

@media screen and (min-width: 768px) {
  .serv_problem figure {
    width: 53rem;
  }
}

.serv_problem figure img {
  border-radius: 1rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .serv_problem figure img {
    border-radius: .66rem;
  }
}

.serv_sol {
  text-align: center;
}

@media screen and (min-width: 768px) {
  .serv_sol {
    padding-top: 14rem;
  }
}

.serv_sol .ttl {
  font-size: 4.2rem;
  font-weight: bold;
  letter-spacing: .02em;
  margin-bottom: .8em;
}

@media screen and (max-width: 767px) {
  .serv_sol .ttl {
    font-size: 3.2rem;
  }
}

.serv_sol .ttl em {
  color: #eb6d29;
}

@media screen and (max-width: 767px) {
  .serv_sol .ttl + p {
    text-align: left;
  }
}

.serv_sol .ttl2 {
  font-size: 2.6rem;
  letter-spacing: .08em;
  font-weight: 500;
  color: #333333;
  position: relative;
  overflow: hidden;
  margin: 10rem 0 1.5em;
}

@media screen and (max-width: 767px) {
  .serv_sol .ttl2 {
    margin: 8rem 0 1.5em;
    font-size: 2.4rem;
  }
}

.serv_sol .ttl2:before, .serv_sol .ttl2:after {
  content: '';
  position: absolute;
  border-bottom: solid 1px #a8abc3;
  width: 50%;
  top: .8em;
  margin-left: 2em;
}

@media screen and (max-width: 767px) {
  .serv_sol .ttl2:before, .serv_sol .ttl2:after {
    width: 4rem;
  }
}

.serv_sol .ttl2:before {
  transform: translateX(-100%);
  margin-left: -2em;
}

@media screen and (max-width: 767px) {
  .serv_sol .ttl2:before {
    margin: 0;
    left: 0;
    transform: none;
  }
}

@media screen and (max-width: 767px) {
  .serv_sol .ttl2:after {
    margin: 0;
    right: 0;
  }
}

.serv_sol li {
  background-image: url(../img/ico-check01.svg);
  background-color: #fff7e4;
  color: #eb6d29;
}

.serv_sol .list2 {
  grid-template-columns: repeat(1, 1fr);
}

.serv_sol .list2 li {
  background-image: url(../img/ico-check02.svg);
  height: 10rem;
  background-color: #eb6d29;
  color: #fff;
  font-size: 2.8rem;
}

@media screen and (max-width: 767px) {
  .serv_sol .list2 li {
    font-size: 2.2rem;
  }
}

.serv_pile {
  background: #f2f4f8;
  padding-bottom: 28rem;
  clip-path: polygon(100% 0, 100% calc(100% - 10rem), 50% 100%, 0 calc(100% - 10rem), 0 0);
}

@media screen and (max-width: 767px) {
  .serv_pile {
    padding-bottom: 14rem;
    clip-path: polygon(100% 0, 100% calc(100% - 6rem), 50% 100%, 0 calc(100% - 6rem), 0 0);
  }
}

.serv_pile .ttl {
  text-align: center;
  font-size: 4.2rem;
  font-weight: bold;
  letter-spacing: .06em;
  margin-bottom: 1em;
}

@media screen and (max-width: 767px) {
  .serv_pile .ttl {
    font-size: 3.6rem;
  }
}

.serv_pile .ttl em {
  color: #2a4aa6;
}

.serv_pile p {
  text-align: center;
  list-style-type: .06em;
}

@media screen and (max-width: 767px) {
  .serv_pile p {
    text-align: left;
  }
}

.serv_pile ul {
  margin-top: 7rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media screen and (max-width: 767px) {
  .serv_pile ul {
    grid-template-columns: repeat(1, 1fr);
  }
}

.serv_pile li {
  background: #d1d9e9 url(../img/ico-spiral01.png) no-repeat 2.5rem center/2.4rem;
  font-size: 1.8rem;
  letter-spacing: .06em;
  height: 8rem;
  display: flex;
  align-items: center;
  padding-left: 7rem;
  padding-right: 1.2em;
  font-weight: 500;
  color: #4d586d;
  border-radius: 1.2rem;
}

@media screen and (max-width: 767px) {
  .serv_pile li {
    border-radius: .8rem;
  }
}

.serv_info {
  text-align: center;
}

.serv_info .ttl {
  font-weight: bold;
  margin-bottom: 3.5rem;
}

.serv_info .ttl i {
  display: inline-block;
  position: relative;
  background: #2a4aa6;
  color: #fff;
  border-radius: 3em;
  font-size: 2rem;
  letter-spacing: .06em;
  padding: .5em 1.3em;
}

@media screen and (max-width: 767px) {
  .serv_info .ttl i {
    font-size: 1.8rem;
  }
}

.serv_info .ttl i:before {
  content: '';
  position: absolute;
  left: 50%;
  translate: -50% 0;
  width: 1.5rem;
  height: 1.5rem;
  background: inherit;
  bottom: -1.45rem;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.serv_info .ttl em {
  display: block;
  font-size: 5.8rem;
  letter-spacing: .06em;
  margin-top: .35em;
}

@media screen and (max-width: 767px) {
  .serv_info .ttl em {
    font-size: 4.6rem;
  }
}

.serv_info .ttl + p {
  letter-spacing: .04em;
}

@media screen and (max-width: 767px) {
  .serv_info .ttl + p {
    text-align: left;
  }
}

.serv_info ul {
  margin-top: 8.5rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4.5rem 4rem;
}

@media screen and (max-width: 767px) {
  .serv_info ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 3rem;
  }
}

.serv_info li {
  position: relative;
}

.serv_info li img {
  width: 100%;
  border-radius: 1.2rem;
}

@media screen and (max-width: 767px) {
  .serv_info li img {
    border-radius: .8rem;
  }
}

.serv_info li i {
  position: absolute;
  background: #2a4aa6;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  border-radius: 1.2rem 0 1.2rem 0;
  width: 4em;
  height: 4em;
  left: 0;
  top: 0;
  line-height: 4;
  font-size: 1.5rem;
  letter-spacing: .12em;
}

@media screen and (max-width: 767px) {
  .serv_info li i {
    border-radius: .8rem 0 .8rem 0;
  }
}

.serv_info li p {
  font-weight: bold;
  font-size: 2rem;
  letter-spacing: .04em;
  margin-top: .7em;
  text-align: left;
  line-height: 1.7;
}

.serv_info dt {
  font-size: 2.8rem;
  font-weight: bold;
  text-align: left;
  color: #2a4aa6;
  letter-spacing: .04em;
  margin: .8em 0 .4em;
}

.serv_info dt.s {
  letter-spacing: .02em;
}

.serv_info dd {
  text-align: left;
  line-height: 2.125;
}

.serv_feature ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}

@media screen and (max-width: 767px) {
  .serv_feature ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
  }
}

.serv_feature li {
  background: #fff;
  padding: 5rem;
  border-radius: 1.2rem;
}

.serv_feature li small {
  font-size: .53em;
}

@media screen and (max-width: 767px) {
  .serv_feature li small {
    display: block;
  }
  .serv_feature li small + br {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .serv_feature li {
    border-radius: .8rem;
    padding: 3.5rem;
  }
}

.serv_feature .ttl {
  font-weight: bold;
  color: #2a4aa6;
  font-size: 2.8rem;
  letter-spacing: .12em;
  margin-bottom: .8em;
}

@media screen and (max-width: 767px) {
  .serv_feature .ttl {
    font-size: 2.3rem;
  }
}

.serv_feature .ttl i {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 1.1rem;
  width: 2.36em;
  height: 2.36em;
  line-height: 2.36;
  border-radius: 50%;
  text-align: center;
  background: #2a4aa6;
  color: #fff;
  letter-spacing: .12em;
  font-weight: 400;
  margin-bottom: .6em;
}

.serv_dif {
  background: #f5f5f5;
  padding-bottom: 28rem;
  clip-path: polygon(100% 0, 100% calc(100% - 10rem), 50% 100%, 0 calc(100% - 10rem), 0 0);
}

@media screen and (max-width: 767px) {
  .serv_dif {
    padding-bottom: 14rem;
    clip-path: polygon(100% 0, 100% calc(100% - 6rem), 50% 100%, 0 calc(100% - 6rem), 0 0);
  }
}

.serv_dif .ttl2 {
  text-align: center;
  font-weight: bold;
  font-size: 4.2rem;
  letter-spacing: .06em;
  margin-bottom: 7.5rem;
}

@media screen and (max-width: 767px) {
  .serv_dif .ttl2 {
    font-size: 3.2rem;
    margin-bottom: 5rem;
  }
}

.serv_dif .ttl2 em {
  color: #d93131;
}

.serv_dif ul {
  display: flex;
}

@media screen and (max-width: 767px) {
  .serv_dif ul {
    flex-direction: column;
  }
}

@media screen and (min-width: 768px) {
  .serv_dif ul {
    flex-wrap: wrap;
  }
}

.serv_dif .ttl {
  color: #bb0f0f;
}

.serv_dif .ttl i {
  background: #bb0f0f;
}

@media screen and (min-width: 768px) {
  .serv_dif li {
    width: calc(50% - 1.5rem);
  }
  .serv_dif li:nth-child(1) {
    width: 100%;
    display: flex;
    justify-content: space-between;
  }
  .serv_dif li .desc {
    width: 51rem;
  }
  .serv_dif li dl {
    width: 55rem;
  }
}

.serv_dif li p em {
  color: #bb0f0f;
}

.serv_dif dl {
  font-size: 1.5rem;
  font-weight: 500;
  margin-top: 3.5rem;
}

.serv_dif dt {
  text-align: center;
  background: #eb6d29;
  padding: .6em;
  color: #fff;
  letter-spacing: .1em;
}

.serv_dif dd {
  background: #fff2e8;
  padding: 3.2rem 4rem;
  display: flex;
  flex-wrap: wrap;
  gap: .5em 0;
}

@media screen and (max-width: 767px) {
  .serv_dif dd {
    padding: 2.5rem 2.7rem;
  }
}

.serv_dif dd p {
  position: relative;
  padding-left: 1.2em;
  letter-spacing: .08em;
}

@media screen and (min-width: 768px) {
  .serv_dif dd p {
    width: 60%;
  }
  .serv_dif dd p:nth-child(even) {
    width: 40%;
  }
}

.serv_dif dd p:before {
  content: '';
  position: absolute;
  width: .46em;
  height: .46em;
  border-radius: 50%;
  left: 0;
  top: .8em;
  background: #eb6d29;
}

.serv_sol2 .ttl2 {
  text-align: center;
  font-weight: bold;
  font-size: 4.2rem;
  letter-spacing: .06em;
  margin-bottom: 4rem;
}

@media screen and (max-width: 767px) {
  .serv_sol2 .ttl2 {
    font-size: 3.2rem;
    margin-bottom: 3rem;
  }
}

.serv_sol2 .ttl2 em {
  color: #eb6d29;
}

.serv_sol2 .ttl2 + p {
  margin-bottom: 7.5rem;
  letter-spacing: .04em;
}

@media screen and (min-width: 768px) {
  .serv_sol2 .ttl2 + p {
    text-align: center;
  }
}

.serv_sol2 .ttl {
  color: #eb6d29;
}

.serv_sol2 .ttl i {
  background: #eb6d29;
}

.serv_sol2 li {
  background: #fdf8eb;
}

.serv_feature2 li {
  border-top: solid 1px #dcdcdc;
  border-bottom: solid 1px #dcdcdc;
  padding: 7rem 0;
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .serv_feature2 li {
    flex-direction: column;
    gap: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .serv_feature2 li figure {
    width: 53rem;
  }
  .serv_feature2 li .desc {
    width: calc(100% - 60rem);
  }
}

.serv_feature2 li p {
  letter-spacing: .08em;
}

.serv_feature2 figure img {
  border-radius: 1.2rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .serv_feature2 figure img {
    border-radius: .8rem;
  }
}

.serv_feature2 .ttl {
  font-weight: bold;
  color: #2a4aa6;
  font-size: 2.8rem;
  line-height: 1.71;
  letter-spacing: .12em;
  margin-bottom: .6em;
  position: relative;
  padding-left: 1.5em;
}

@media screen and (max-width: 767px) {
  .serv_feature2 .ttl {
    font-size: 2.4rem;
  }
  .serv_feature2 .ttl br {
    display: none;
  }
}

.serv_feature2 .ttl i {
  position: absolute;
  left: 0;
  top: .8em;
  font-family: "Montserrat", sans-serif;
  font-size: .45em;
  width: 2.36em;
  height: 2.36em;
  line-height: 2.36;
  border-radius: 50%;
  text-align: center;
  background: #2a4aa6;
  color: #fff;
  letter-spacing: .12em;
  font-weight: 400;
}

@media screen and (min-width: 768px) {
  .serv_profile .row {
    margin-top: 9rem;
  }
  .serv_profile .desc {
    width: calc(100% - 60rem);
  }
  .serv_profile .c_btn {
    top: 0;
  }
}

.serv_profile .ttl {
  font-weight: bold;
  letter-spacing: .1em;
  font-weight: bold;
  font-size: 4.2rem;
  margin-bottom: .7em;
}

@media screen and (max-width: 767px) {
  .serv_profile .ttl {
    font-size: 3.6rem;
  }
}

.serv_profile p {
  letter-spacing: .02em;
}

.serv_profile dd {
  padding: 1.8rem 5rem 3rem;
}

@media screen and (max-width: 767px) {
  .serv_profile dd {
    padding: 2rem 3rem 3rem 4rem;
  }
}

.serv_profile dd p {
  margin: .3em 0;
  position: relative;
  line-height: 1.8;
}

.serv_profile dd p:before {
  content: '◯';
  font-size: 1.1rem;
  position: absolute;
  left: -1.6em;
  top: .7em;
}

.serv_profile .sign {
  text-align: right;
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.8;
  margin-top: 2.2em;
}

@media screen and (max-width: 767px) {
  .serv_profile .sign {
    margin-top: -1.5em;
  }
}

.serv_profile .sign em {
  display: block;
  letter-spacing: .12em;
  font-size: 1.5em;
}

@media screen and (max-width: 767px) {
  .serv_price .scroll {
    margin-right: -4.7rem;
    overflow-x: auto;
  }
  .serv_price .scroll table {
    width: 80rem;
  }
}

.serv_price tr > * {
  padding: 2em 1.5em;
  border-right: solid 1px #d1d9e9;
  line-height: 1.875;
  width: 30%;
}

.serv_price tr + tr > * {
  border-top: solid 1px #d1d9e9;
}

.serv_price th {
  background: #131834;
  color: #fff;
  font-weight: 500;
  text-align: left;
}

.serv_price td {
  background: #fff;
  letter-spacing: .06em;
}

.serv_price td + td {
  width: auto;
}

.serv_price small {
  display: block;
  font-size: 1.2rem;
  line-height: 1.66;
  margin-top: 1em;
  letter-spacing: .04em;
}

.serv_price p small {
  text-align: right;
  letter-spacing: .16em;
}

.serv_flow ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5rem;
  padding-right: 3.6rem;
}

@media screen and (max-width: 767px) {
  .serv_flow ul {
    grid-template-columns: repeat(1, 1fr);
    padding: 0;
  }
}

.serv_flow li {
  background: #f2f4f8;
  border-radius: 1rem;
  height: 18rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  letter-spacing: .16em;
  font-weight: 500;
  position: relative;
  text-align: center;
  line-height: 2;
}

@media screen and (max-width: 767px) {
  .serv_flow li {
    height: 12rem;
  }
}

.serv_flow li:before {
  content: '';
  height: 2rem;
  width: 1.6rem;
  background: #131834;
}

@media screen and (min-width: 768px) {
  .serv_flow li:before {
    position: absolute;
    top: 50%;
    translate: 0 -50%;
    right: -3.1rem;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
  }
}

@media screen and (max-width: 767px) {
  .serv_flow li:before {
    position: absolute;
    left: 50%;
    translate: -50% 0;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
    width: 2rem;
    height: 1.6rem;
    bottom: -3.1rem;
  }
}

.serv_flow li:last-child {
  background: #2a4aa6;
  color: #fff;
}

.serv_flow li:last-child i {
  color: #fff;
}

.serv_flow li:last-child:before {
  content: none;
}

.serv_flow li.s {
  font-size: 1.6rem;
  line-height: 1.875;
}

@media screen and (max-width: 767px) {
  .serv_flow li {
    border-radius: .66rem;
  }
}

.serv_flow li i {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 1.8rem;
  color: #686d8b;
  letter-spacing: .16em;
  padding: .6em 1em;
}

.serv_faq {
  padding-top: 0;
}

.faq_list dl {
  background: #f2f4f8;
  border-radius: .5rem;
  padding: 3.5rem 6rem 3.5rem 4rem;
  margin-top: 2rem;
  border-radius: 1.2rem;
}

@media screen and (max-width: 767px) {
  .faq_list dl {
    border-radius: .8rem;
    padding: 3.5rem 3rem 3.5rem 3rem;
  }
}

.faq_list dt, .faq_list dd {
  position: relative;
  padding-left: 6.5rem;
}

@media screen and (max-width: 767px) {
  .faq_list dt, .faq_list dd {
    padding-left: 5rem;
  }
}

.faq_list dt:before, .faq_list dd:before {
  content: 'Q.';
  font-family: "Montserrat", sans-serif;
  position: absolute;
  font-weight: bold;
  font-size: 2.8rem;
  letter-spacing: .16em;
  left: 0;
  top: -.3em;
}

.faq_list dt {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: .16em;
}

.faq_list dd {
  line-height: 1.875;
  color: #2a4aa6;
  letter-spacing: .12em;
  margin: .9em 0 0;
}

.faq_list dd:before {
  content: 'A.';
  color: #2a4aa6;
}

.serv_cta {
  background: url(../img/cta-bg.png) no-repeat 50%/cover;
  text-align: center;
  color: #fff;
}

.serv_cta p {
  font-size: 2rem;
  line-height: 2;
  letter-spacing: .14em;
}

.serv_cta .ttl {
  font-weight: bold;
  font-size: 4.6rem;
  line-height: 1.78;
  letter-spacing: .06em;
  margin-bottom: 1.2em;
}

@media screen and (max-width: 767px) {
  .serv_cta .ttl {
    font-size: 3.5rem;
  }
}

.serv_cta .ttl em {
  background: #fff;
  color: #2a4aa6;
  padding: 0 .4em;
  margin-right: .3em;
}

.serv_cta .c_btn {
  margin-top: 7rem;
}

.serv_cta .c_btn a {
  background-image: url(../img/arrow-right08.svg);
  background-color: #fff;
  background-size: 2.2rem;
  color: #2a4aa6;
  padding-left: 1.8em;
  font-size: 2rem;
  letter-spacing: .12em;
  gap: .9em;
  text-align: left;
  width: 50rem;
  height: 10rem;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .serv_cta .c_btn a {
    padding-left: 1.2em;
    font-size: 1.9rem;
  }
}

.serv_cta .c_btn a:hover {
  opacity: .7;
}

.serv_cta .c_btn i {
  background: #2a4aa6;
  color: #fff;
  border-radius: 3em;
  padding: .3em .8em .4em 1em;
  font-weight: bold;
  font-size: .9em;
}

.com_sec .c_ttl2 {
  font-size: 5.8rem;
}

@media screen and (max-width: 767px) {
  .com_sec .c_ttl2 {
    font-size: 3.8rem;
  }
}

.com_sec .u_inner {
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .com_sec .u_inner {
    flex-direction: column;
    gap: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .com_sec .u_inner.b {
    flex-direction: row-reverse;
  }
}

.com_sec .desc {
  position: relative;
}

@media screen and (min-width: 768px) {
  .com_sec .desc {
    width: 53rem;
  }
}

.com_sec .desc img {
  position: absolute;
  height: 12.4rem;
  bottom: -2rem;
  z-index: -1;
}

@media screen and (max-width: 767px) {
  .com_sec .desc img {
    height: 8rem;
    margin-left: 4rem;
    bottom: -4rem;
  }
}

@media screen and (min-width: 768px) {
  .com_sec figure {
    width: 53rem;
  }
}

.com_sec figure img {
  border-radius: 1rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .com_sec figure img {
    border-radius: .66rem;
  }
}

.com_sec p {
  letter-spacing: .1em;
  margin-top: 1.5em;
}

@media screen and (max-width: 767px) {
  .com_guide .c_ttl i {
    font-size: 4.8rem;
  }
}

.com_guide ul {
  display: flex;
}

@media screen and (min-width: 768px) {
  .com_guide ul {
    border-left: solid 1px #878b9e;
  }
}

@media screen and (max-width: 767px) {
  .com_guide ul {
    flex-direction: column;
    border-bottom: solid 1px #878b9e;
  }
}

.com_guide .ttl {
  font-weight: bold;
  color: #2a4aa6;
  font-size: 3.4rem;
  letter-spacing: .1em;
  margin-bottom: .6em;
}

@media screen and (max-width: 767px) {
  .com_guide .ttl {
    font-size: 3rem;
  }
}

.com_guide li {
  text-align: center;
}

@media screen and (max-width: 767px) {
  .com_guide li {
    border-top: solid 1px #878b9e;
    padding: 4rem 0;
  }
}

.com_guide li i {
  display: block;
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  font-style: italic;
  font-size: 5rem;
  text-decoration: underline;
  text-underline-offset: .2em;
  margin-bottom: .8em;
  line-height: 1;
}

@media screen and (min-width: 768px) {
  .com_guide li {
    border-right: solid 1px #878b9e;
    gap: 1;
    padding: 4rem 4.2rem;
  }
}

.com_guide li p {
  text-align: left;
  letter-spacing: .1em;
}

.com_msg .c_ttl {
  border-bottom: solid 1px #131834;
  padding-bottom: 3em;
}

@media screen and (max-width: 767px) {
  .com_msg .c_ttl {
    padding-bottom: 2.4em;
    margin-bottom: 8rem;
  }
}

.com_msg .ttl {
  font-weight: bold;
  font-size: 6rem;
  letter-spacing: .1em;
  line-height: 1.33;
  margin-bottom: .75em;
}

@media screen and (max-width: 767px) {
  .com_msg .ttl {
    font-size: 5rem;
  }
}

.com_msg .row {
  display: flex;
  justify-content: space-between;
  position: relative;
}

@media screen and (max-width: 767px) {
  .com_msg .row {
    flex-direction: column;
    gap: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .com_msg .desc {
    width: 53rem;
  }
}

.com_msg .desc img {
  position: absolute;
  height: 12.4rem;
  bottom: -.5rem;
  max-width: none;
  right: calc(50% - 23rem);
  z-index: -1;
}

@media screen and (min-width: 768px) {
  .com_msg figure {
    width: 53rem;
  }
}

.com_msg figure img {
  border-radius: 1rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .com_msg figure img {
    border-radius: .66rem;
  }
}

.com_msg .sign {
  text-align: right;
  font-weight: 500;
  line-height: 1.8;
  margin-top: 2.2em;
}

.com_msg .sign em {
  display: block;
  letter-spacing: .12em;
  font-size: 1.5em;
}

@media screen and (max-width: 767px) {
  .com_info .c_ttl i {
    letter-spacing: 0;
  }
}

.com_info dl {
  border-top: solid 1px #c8c8c8;
}

@media screen and (min-width: 768px) {
  .com_info dl {
    display: flex;
    flex-wrap: wrap;
  }
}

.com_info dt, .com_info dd {
  border-bottom: solid 1px #c8c8c8;
  padding: 2.5em 0;
  letter-spacing: .16em;
  line-height: 2.5;
}

@media screen and (max-width: 767px) {
  .com_info dt, .com_info dd {
    padding: 1.2em 0;
  }
}

.com_info dt {
  font-weight: 500;
}

@media screen and (min-width: 768px) {
  .com_info dt {
    width: 26rem;
  }
}

@media screen and (max-width: 767px) {
  .com_info dt {
    border: none;
    padding-bottom: 0;
    margin-bottom: -.8em;
  }
}

@media screen and (min-width: 768px) {
  .com_info dd {
    width: calc(100% - 26rem);
  }
}

.com_info dd a {
  text-decoration: underline;
}

.contact_body {
  padding-top: 0;
}

.contact_body .msg {
  color: #e01313;
  letter-spacing: .16em;
  padding: 0 15rem;
}

@media screen and (max-width: 767px) {
  .contact_body .msg {
    padding: 0;
  }
}

.contact_body:has(.complete) .msg {
  display: none;
}

.form {
  padding: 5rem 15rem;
}

@media screen and (max-width: 767px) {
  .form {
    padding: 5rem 2.7rem;
    margin: 0 -2.7rem;
  }
}

.form:has(.complete) .thanks {
  display: block;
}

.form:has(.complete) form {
  display: none;
}

.form dl {
  border-top: solid 1px #dcdcdc;
  padding: 7rem 0 0;
}

.form dt {
  position: relative;
  font-weight: bold;
  font-size: 1.8rem;
  letter-spacing: .16em;
  margin-bottom: .8em;
}

@media screen and (max-width: 767px) {
  .form dt {
    padding: 0;
  }
}

.form dt em {
  font-size: 1.3rem;
  padding: .15em .7em .2em 1em;
  font-weight: 400;
  background: #131834;
  color: #fff;
  margin-left: 1.2em;
  letter-spacing: .3em;
}

@media screen and (max-width: 767px) {
  .form dt {
    margin: 0 0 .6em;
  }
  .form dt em {
    font-size: 1.6rem;
    margin-left: 1em;
  }
}

.form dd {
  letter-spacing: .06em;
}

@media screen and (max-width: 767px) {
  .form dd {
    font-size: 16px;
  }
}

.form dd + dt {
  margin-top: 5.5rem;
}

@media screen and (max-width: 767px) {
  .form dd + dt {
    margin-top: 3.5rem;
  }
}

.form dd input[type="text"], .form dd input[type="email"], .form dd input[type="tel"], .form dd input[type="url"], .form dd textarea, .form dd select {
  width: 100%;
  background: #f2f4f8;
  padding: 1.5em 1.2em;
  border-radius: .4rem;
}

@media screen and (max-width: 767px) {
  .form dd input[type="text"], .form dd input[type="email"], .form dd input[type="tel"], .form dd input[type="url"], .form dd textarea, .form dd select {
    padding: .6em 1em;
  }
}

.form dd select {
  width: auto;
  padding-right: 4em;
}

.form dd textarea {
  height: 10em;
}

.form dd.s {
  display: flex;
  align-items: center;
  gap: 1em;
}

@media screen and (max-width: 767px) {
  .form dd.s {
    gap: .5em;
  }
  .form dd.s span {
    font-size: 1.6rem;
  }
}

.form dd.s input[type="text"], .form dd.s input[type="email"], .form dd.s input[type="tel"], .form dd.s input[type="url"], .form dd.s textarea, .form dd.s select {
  width: 16em;
}

@media screen and (max-width: 767px) {
  .form dd.s input[type="text"], .form dd.s input[type="email"], .form dd.s input[type="tel"], .form dd.s input[type="url"], .form dd.s textarea, .form dd.s select {
    width: 12em;
  }
}

.form .check {
  display: flex;
  flex-direction: column;
  gap: 1.5em;
  margin-top: 1.8em;
}

.form .check label {
  display: flex;
  align-items: center;
  gap: .8em;
}

.form .check input {
  width: 1.4em;
  height: 1.4em;
  accent-color: #2a4aa6;
}

.form .doui {
  border-bottom: solid 1px #dcdcdc;
  padding: 5rem 0 7rem;
  margin-bottom: 8rem;
}

.form .doui label {
  display: flex;
  align-items: center;
  gap: .8em;
}

.form .doui input {
  width: 1.4em;
  height: 1.4em;
  accent-color: #2a4aa6;
}

.form .doui a {
  text-decoration: underline;
  color: #2a4aa6;
}

@media screen and (max-width: 767px) {
  .form .btn {
    text-align: center;
  }
}

.form .btn button {
  background: #131834 url(../img/arrow-right01.svg) no-repeat calc(100% - 3rem) center/1.125em;
  color: #fff;
  height: 8.4rem;
  width: 34rem;
  display: inline-flex;
  align-items: center;
  border-radius: 3em;
  font-weight: 500;
  padding: 0 3rem;
  gap: .6em;
  letter-spacing: .12em;
  transition: opacity .2s;
}

@media screen and (max-width: 767px) {
  .form .btn button {
    height: 7rem;
    width: 27rem;
    padding: 0 2rem;
    background-position: calc(100% - 2rem);
  }
}

.form .btn button:hover {
  opacity: .7;
}

.form .btn i {
  color: #131834;
  background: #fff;
  border-radius: 3em;
  padding: .4em 1.1em .45em 1.3em;
  font-weight: bold;
  letter-spacing: .16em;
}

@media screen and (max-width: 767px) {
  .form .btn i {
    font-size: 1.33rem;
  }
}

.form label.error {
  color: #bb0f0f;
  font-size: 1.4rem;
  display: block;
}

.form .thanks {
  text-align: center;
  display: none;
}

.c_form .msg {
  text-align: center;
  color: #e01313;
  letter-spacing: .16em;
}

.c_form .form {
  background: #fff;
  border-radius: 1rem;
  padding-top: 12rem;
  padding-bottom: 12rem;
  margin-top: 4.5rem;
}

@media screen and (max-width: 767px) {
  .c_form .form {
    border-radius: .66rem;
    padding-top: 6rem;
    padding-bottom: 8rem;
  }
}

.c_form dl {
  border-top: none;
  padding-top: 0;
}

.c_form:has(.complete) .msg {
  display: none;
}

.semi_form .ttl {
  text-align: center;
  font-size: 4rem;
  font-weight: bold;
  letter-spacing: .16em;
  margin-bottom: 1em;
}

@media screen and (max-width: 767px) {
  .semi_form .ttl {
    font-size: 3.6rem;
  }
}

.semi_form .lead {
  text-align: center;
  margin-bottom: 8rem;
}

.semi_form .lead p {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: .12em;
  margin-top: 1.2em;
}

@media screen and (max-width: 767px) {
  .semi_form .lead p {
    font-size: 1.8rem;
  }
}

.semi_form .form {
  background: #f2f4f8;
}

.semi_form .doui1 {
  padding-top: 0;
}

.semi_form .doui2 {
  padding-bottom: 0;
  margin-bottom: 2rem;
  border: none;
}

.semi_form dd input[type="text"], .semi_form dd input[type="email"], .semi_form dd input[type="tel"], .semi_form dd input[type="url"], .semi_form dd textarea, .semi_form dd select {
  background: #fff;
}

.semi_lead {
  padding-top: 0;
}

.semi_lead .ttl {
  text-align: center;
  font-weight: bold;
  font-size: 5.8rem;
  letter-spacing: .06em;
  margin-bottom: .8em;
}

.semi_lead .ttl em {
  display: block;
  margin-top: .5em;
}

.semi_lead .ttl b {
  color: #2a4aa6;
}

@media screen and (max-width: 767px) {
  .semi_lead .ttl {
    font-size: 4.2rem;
  }
}

.semi_lead .ttl i {
  display: inline-block;
  position: relative;
  background: #2a4aa6;
  font-weight: bold;
  color: #fff;
  border-radius: 3em;
  font-size: 2.2rem;
  letter-spacing: .06em;
  padding: .5em 1.6em;
}

@media screen and (max-width: 767px) {
  .semi_lead .ttl i {
    font-size: 1.8rem;
  }
}

.semi_lead .ttl i:before {
  content: '';
  position: absolute;
  left: 50%;
  translate: -50% 0;
  width: 1.5rem;
  height: 1.5rem;
  background: inherit;
  bottom: -1.45rem;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.semi_lead .ttl + p {
  text-align: center;
  letter-spacing: .1em;
  margin-bottom: 8.5rem;
}

.semi_lead .box {
  background: #f2f4f8;
  border-radius: 1.2rem;
  padding: 8rem 10rem;
}

@media screen and (max-width: 767px) {
  .semi_lead .box {
    border-radius: .8rem;
    padding: 4rem 2.7rem;
  }
}

.semi_lead .ttl2 {
  text-align: center;
  margin-bottom: 3rem;
}

.semi_lead .ttl2 em {
  font-size: 2.6rem;
  font-weight: bold;
  display: block;
  letter-spacing: .08em;
  margin-bottom: .9em;
}

@media screen and (max-width: 767px) {
  .semi_lead .ttl2 em {
    font-size: 2.5rem;
  }
}

.semi_lead .ttl2 i {
  display: inline-block;
  position: relative;
  background: #2a4aa6;
  font-weight: bold;
  color: #fff;
  border-radius: 3em;
  font-size: 1.4rem;
  letter-spacing: .06em;
  padding: .5em 1.6em;
}

@media screen and (max-width: 767px) {
  .semi_lead .ttl2 i {
    font-size: 1.8rem;
  }
}

.semi_lead .ttl2 i:before {
  content: '';
  position: absolute;
  left: 50%;
  translate: -50% 0;
  width: .7rem;
  height: .7rem;
  background: inherit;
  bottom: -.67rem;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.semi_lead ul {
  display: flex;
  gap: 2rem;
}

@media screen and (max-width: 767px) {
  .semi_lead ul {
    flex-direction: column;
  }
}

.semi_lead li {
  background: #fff;
  border-radius: 1rem;
  flex: 1;
  padding: 2.5rem;
}

@media screen and (max-width: 767px) {
  .semi_lead li {
    border-radius: .66rem;
  }
}

.semi_lead li p {
  font-weight: 500;
  font-size: 1.7rem;
  line-height: 1.88;
}

.semi_lead .ttl3 {
  display: flex;
  align-items: center;
  gap: 1em;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #2a4aa6;
  margin-bottom: 1em;
}

.semi_lead .ttl3 img {
  border-radius: 50%;
}

.semi_issue {
  text-align: center;
  background: #f2f4f8;
  padding-bottom: 28rem;
  clip-path: polygon(100% 0, 100% calc(100% - 10rem), 50% 100%, 0 calc(100% - 10rem), 0 0);
}

@media screen and (max-width: 767px) {
  .semi_issue {
    padding-bottom: 14rem;
    clip-path: polygon(100% 0, 100% calc(100% - 6rem), 50% 100%, 0 calc(100% - 6rem), 0 0);
  }
}

.semi_issue .ttl {
  font-size: 4.2rem;
  font-weight: bold;
  letter-spacing: .08em;
  margin-bottom: .7em;
}

@media screen and (max-width: 767px) {
  .semi_issue .ttl {
    font-size: 3.6rem;
  }
}

.semi_issue .ttl em {
  color: #f35151;
}

.semi_issue .ttl + p {
  letter-spacing: .1em;
}

.semi_issue .fig {
  margin: 8rem 0;
}

.semi_issue .fig img {
  width: 77.7rem;
}

.semi_issue .list {
  display: flex;
  gap: 3rem;
}

@media screen and (max-width: 767px) {
  .semi_issue .list {
    flex-direction: column;
  }
}

.semi_issue .list figcaption {
  color: #818497;
  font-size: 1rem;
  display: inline-block;
  text-align: left;
  height: 3em;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.semi_issue dl {
  flex: 1;
  border-radius: 1.2rem;
  overflow: hidden;
  background: #fff;
}

@media screen and (max-width: 767px) {
  .semi_issue dl {
    border-radius: .8rem;
  }
}

.semi_issue dt {
  background: #131834;
  color: #fff;
  letter-spacing: .1em;
  font-size: 1.5rem;
  padding: .8em 1em;
}

.semi_issue dd {
  padding-bottom: 1.8rem;
}

.semi_solu {
  text-align: center;
  padding-bottom: 10rem;
}

@media screen and (max-width: 767px) {
  .semi_solu {
    padding-bottom: 6rem;
  }
}

.semi_solu .ttl {
  text-align: center;
  font-size: 4.2rem;
  font-weight: bold;
  letter-spacing: .02em;
  margin-bottom: .7em;
}

@media screen and (min-width: 768px) {
  .semi_solu .ttl {
    background: url(../img/slash-left01.svg) no-repeat left center, url(../img/slash-right01.svg) no-repeat right center;
    background-size: 7.7rem;
  }
}

@media screen and (max-width: 767px) {
  .semi_solu .ttl {
    font-size: 3.6rem;
  }
}

.semi_solu .ttl em {
  color: #13993c;
}

.semi_solu p {
  letter-spacing: .1em;
  margin-bottom: 9rem;
}

.semi_solu figure img {
  width: 81.1rem;
}

@media screen and (min-width: 768px) {
  .semi_profile .c_btn {
    width: auto;
  }
}

@media screen and (max-width: 767px) {
  .semi_profile .c_btn {
    margin-top: 3rem;
  }
}

@media screen and (min-width: 768px) {
  .semi_profile .desc {
    justify-content: flex-start;
  }
}

.semi_profile .desc p {
  letter-spacing: .12em;
}

.semi_profile .ttl2 {
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: .1em;
  margin: 4rem 0 0;
}

.semi_profile li {
  margin-top: 1.2em;
  font-size: 1.4rem;
  line-height: 1.71;
  margin-left: 1em;
  text-indent: -1em;
  letter-spacing: .06em;
}

.semi_info {
  position: relative;
  z-index: 0;
  background: #f2f4f8;
}

.semi_info:before {
  content: '';
  position: absolute;
  z-index: 0;
  inset: 0;
  background: #fff;
  z-index: -1;
  border-radius: 0 12rem 0 0;
}

@media screen and (max-width: 767px) {
  .semi_info:before {
    border-radius: 0 8rem 0 0;
  }
}

.semi_info .ma_ttl {
  margin-bottom: 4rem;
}

.semi_info .ma_ttl + p {
  letter-spacing: .08em;
  margin-bottom: 8rem;
}

@media screen and (max-width: 767px) {
  .semi_info .ma_ttl + p {
    margin-bottom: 6rem;
  }
}

.semi_info .list {
  border-bottom: solid 1px #dcdcdc;
}

.semi_info .list > li {
  border-top: solid 1px #dcdcdc;
  padding: 5rem 0 6.5rem;
  display: flex;
  justify-content: space-between;
}

@media screen and (min-width: 768px) {
  .semi_info .list > li {
    align-items: flex-start;
  }
}

@media screen and (max-width: 767px) {
  .semi_info .list > li {
    flex-direction: column;
    gap: 3rem;
  }
}

.semi_info .list p {
  letter-spacing: .1em;
}

.semi_info .list dt {
  font-weight: 500;
  letter-spacing: .1em;
  font-size: 1.7rem;
  line-height: 1;
  border-left: solid 0.236em #131834;
  padding-left: .8em;
  margin: 2em 0 1em;
}

.semi_info .list dd p {
  font-size: 1.4rem;
  line-height: 2.42;
}

@media screen and (min-width: 768px) {
  .semi_info .slide {
    width: 50rem;
    margin-top: 2rem;
  }
}

.semi_info .ttl {
  font-size: 2.8rem;
  font-weight: bold;
  letter-spacing: .12em;
  color: #2a4aa6;
  margin-bottom: .8em;
}

@media screen and (max-width: 767px) {
  .semi_info .ttl {
    font-size: 2.4rem;
  }
}

.semi_info .ttl small {
  font-size: .9rem;
  letter-spacing: .12em;
  display: flex;
  align-items: center;
  gap: 1em;
  font-weight: 500;
  margin-bottom: .5em;
}

.semi_info .ttl i {
  font-family: "Montserrat", sans-serif;
  font-size: 1.1rem;
  letter-spacing: .12em;
  font-weight: 400;
  border-radius: 50%;
  width: 2.36em;
  height: 2.36em;
  line-height: 2.5;
  text-align: center;
  background: #2a4aa6;
  color: #fff;
}

.semi_info .swiper-fade .swiper-slide {
  transition-property: opacity !important;
}

.semi_info .slide {
  position: relative;
}

.semi_info .btn {
  display: flex;
  justify-content: flex-end;
  margin-top: 2rem;
  gap: 1rem;
}

.semi_info .btn i {
  cursor: pointer;
  width: 6.2rem;
  height: 6.2rem;
  background: url(../img/btn-prev01.svg) no-repeat 50%/contain;
}

@media screen and (max-width: 767px) {
  .semi_info .btn .prev {
    left: 0;
  }
}

.semi_info .btn .next {
  background-image: url(../img/btn-next01.svg);
}

@media screen and (max-width: 767px) {
  .semi_info .btn .next {
    right: 0;
  }
}

.semi_flow {
  margin-bottom: 12rem;
}

@media screen and (max-width: 767px) {
  .semi_flow {
    margin-bottom: 8rem;
  }
}

.semi_flow ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 9.33rem;
}

@media screen and (max-width: 767px) {
  .semi_flow ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 5rem;
  }
}

.semi_flow li {
  position: relative;
  padding-top: .5rem;
}

.semi_flow li i {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: .16em;
  position: absolute;
  top: 0;
}

.semi_flow li p {
  text-align: center;
  font-weight: 500;
  letter-spacing: .16em;
  line-height: 1.625;
  margin-top: 1em;
}

@media screen and (max-width: 767px) {
  .semi_flow li {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .semi_flow li figure {
    width: 16rem;
  }
  .semi_flow li figure img {
    width: 100%;
  }
  .semi_flow li p {
    text-align: left;
    width: calc(100% - 20rem);
  }
}

.semi_flow li + li {
  position: relative;
}

.semi_flow li + li:before {
  content: '';
  position: absolute;
  width: 1.6rem;
  height: 2rem;
  background: #131834;
}

@media screen and (min-width: 768px) {
  .semi_flow li + li:before {
    top: 14rem;
    left: -5.2rem;
    width: 1.6rem;
    height: 2rem;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
  }
}

@media screen and (max-width: 767px) {
  .semi_flow li + li:before {
    height: 1.6rem;
    width: 2rem;
    top: -3rem;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
    position: absolute;
    left: 50%;
    translate: -50% 0;
  }
}

@media screen and (min-width: 768px) {
  .semi_faq .ma_ttl {
    margin-bottom: 5.5rem;
  }
}

.semi_faq dl {
  background: #fff;
}

.part_form .ttl {
  text-align: center;
}

.part_form .ttl i {
  display: inline-block;
  position: relative;
  background: #131834;
  font-weight: bold;
  color: #fff;
  border-radius: 3em;
  font-size: 1.5rem;
  letter-spacing: .06em;
  padding: .5em 1.6em;
}

@media screen and (max-width: 767px) {
  .part_form .ttl i {
    padding: .5em 1.6em;
  }
}

.part_form .ttl i:before {
  content: '';
  position: absolute;
  left: 50%;
  translate: -50% 0;
  width: 1.5rem;
  height: 1.1rem;
  background: inherit;
  bottom: -1.05rem;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.part_form .ttl em {
  display: block;
  font-size: 4rem;
  font-weight: bold;
  letter-spacing: .16em;
  margin: .6em 0 1.4em;
}

@media screen and (max-width: 767px) {
  .part_form .ttl em {
    font-size: 3.6rem;
  }
}

.part_form .form {
  background: #fff;
}

.part_lead {
  background: url(../img/partner-message-bg.png) no-repeat 50%/100%;
  text-align: center;
  padding-top: 0;
}

@media screen and (max-width: 767px) {
  .part_lead {
    background-size: 200%;
  }
}

.part_lead .ttl {
  font-weight: bold;
  font-size: 4rem;
  letter-spacing: .1em;
  line-height: 1.85;
}

@media screen and (max-width: 767px) {
  .part_lead .ttl {
    font-size: 3rem;
  }
}

.part_lead figure {
  margin: 6rem 0;
}

@media screen and (max-width: 767px) {
  .part_lead figure {
    margin: 4rem 0;
  }
}

.part_lead figure img {
  widht: 62.2rem;
}

.part_lead .catch {
  text-align: center;
  font-weight: bold;
  font-size: 2.8rem;
  line-height: 1.5;
}

@media screen and (max-width: 767px) {
  .part_lead .catch {
    font-size: 2.2rem;
  }
}

.part_lead .catch small {
  display: block;
  font-size: 2.6rem;
  letter-spacing: .12em;
}

@media screen and (max-width: 767px) {
  .part_lead .catch small {
    font-size: 2rem;
  }
}

.part_lead .catch em {
  color: #2a4aa6;
  font-size: 4rem;
  letter-spacing: .12em;
}

@media screen and (max-width: 767px) {
  .part_lead .catch em {
    font-size: 3rem;
  }
}

.part_ship {
  margin-bottom: 12rem;
}

@media screen and (max-width: 767px) {
  .part_ship {
    margin-bottom: 8rem;
  }
}

@media screen and (min-width: 768px) {
  .part_ship .ma_ttl {
    margin-bottom: 5rem;
  }
}

.part_ship .ma_ttl + p {
  letter-spacing: .08em;
}

.part_ship figure {
  text-align: center;
  background: #fff;
  border-radius: 1.2rem;
  margin: 9rem 0;
  padding: 7rem 2.7rem;
  position: relative;
}

.part_ship figure:before {
  content: '';
  position: absolute;
  left: 50%;
  translate: -50% 0;
  bottom: -7rem;
  width: 10rem;
  height: 4rem;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background: #bb0f0f;
}

@media screen and (max-width: 767px) {
  .part_ship figure {
    margin: 5rem 0 9rem;
    border-radius: .8rem;
    padding: 4rem 2.7rem;
  }
}

.part_ship figure img {
  widht: 83rem;
}

.part_ship figcaption {
  font-weight: bold;
  letter-spacing: .16em;
  font-size: 2.6rem;
  line-height: 1.77;
  margin-bottom: 1.8em;
}

@media screen and (max-width: 767px) {
  .part_ship figcaption {
    font-size: 2.2rem;
  }
}

.part_ship dl {
  border-radius: 1.2rem;
  overflow: hidden;
  background: #fff;
}

@media screen and (max-width: 767px) {
  .part_ship dl {
    border-radius: .8rem;
  }
}

.part_ship dt {
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: .06em;
  color: #fff;
  background: #131834;
  padding: .8em 1em;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .part_ship dt {
    font-size: 2rem;
  }
}

.part_ship dd {
  padding: 6rem 10rem;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .part_ship dd {
    padding: 4rem 2.7rem;
  }
}

.part_ship dd p {
  font-size: 2rem;
  padding-left: 1.5em;
  position: relative;
  letter-spacing: .16em;
  margin-bottom: 1.5em;
}

.part_ship dd p:before {
  content: '●';
  position: absolute;
  color: #2a4aa6;
  left: 0;
}

.part_ship li {
  background: #f2f4f8 url(../img/ico-check03.svg) no-repeat 3rem center/1.166em;
  font-size: 1.8rem;
  letter-spacing: .16em;
  border-radius: 1.2rem;
  padding: 1.6em 4.2em;
  margin-top: 2rem;
}

@media screen and (max-width: 767px) {
  .part_ship li {
    border-radius: .66rem;
    padding: 1.6em 1em 1.6em 3.2em;
    background-position: 2rem center;
    margin-top: 1.5rem;
  }
}

.part_feature ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5rem 6rem;
}

@media screen and (max-width: 767px) {
  .part_feature ul {
    grid-template-columns: repeat(1, 1fr);
    gap: 4rem;
  }
}

.part_feature li {
  position: relative;
}

.part_feature li img {
  width: 100%;
  border-radius: 1.2rem;
}

@media screen and (max-width: 767px) {
  .part_feature li img {
    border-radius: .8rem;
  }
}

.part_feature li i {
  position: absolute;
  background: #2a4aa6;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  border-radius: 1.2rem 0 1.2rem 0;
  width: 4em;
  height: 4em;
  left: 0;
  top: 0;
  line-height: 4;
  text-align: center;
  font-size: 1.5rem;
  letter-spacing: .12em;
}

@media screen and (max-width: 767px) {
  .part_feature li i {
    border-radius: .8rem 0 .8rem 0;
  }
}

.part_feature li p {
  font-weight: bold;
  font-size: 2.4rem;
  letter-spacing: .06em;
  margin-top: .7em;
  text-align: left;
  line-height: 1.7;
}

@media screen and (max-width: 767px) {
  .part_feature li p {
    font-size: 2.2rem;
  }
  .part_feature li p br {
    display: none;
  }
}

.part_feature li em {
  color: #2a4aa6;
}

@media screen and (min-width: 768px) {
  .part_flow ul {
    grid-template-columns: repeat(5, 1fr);
    gap: 7rem;
  }
}

@media screen and (min-width: 768px) {
  .part_flow li + li:before {
    top: 8.5rem;
    left: -4.5rem;
  }
}

@media screen and (min-width: 768px) {
  .part_faq .ma_ttl {
    margin-bottom: 5.5rem;
  }
}

.grecaptcha-badge {
  display: none !important;
}

/*# sourceMappingURL=style.css.map */