/* -------------------------------------------------- */
/* headimage */

.line-headimage {
  background-image: url(../images/line/line-headimage.webp);
}
.line-headimage h1.global {
  color: var(--line-color);
}

/* -------------------------------------------------- */
/* line */

.line {
  background: #fff;
  padding-bottom: 0;
  padding-top: 0;
}
.line .title {
  line-height: 1;
  position: static;
  text-align: center;
  width: 100%;
}
.line h2.global {
  color: var(--line-color);
}
.line p {
  line-height: 1.8;
  margin-bottom: 20px;
}
.line-content {
  min-height: 502px;
  padding-top: 40px;
  position: relative;
}
.line-content::before {
  background: url(../images/line/line-bg01.webp) no-repeat bottom right / 619px 502px;
  bottom: 0;
  content: '';
  display: block;
  height: 100%;
  left: 0;
  pointer-events: none;
  position: absolute;
  width: 100%;
}
.line-content img {
  display: block;
  margin: 0 auto 40px;
  width: 288px;
}
.line-button a {
  background-color: var(--line-color);
  background-image: url(../images/arrow-right-white.webp);
  border-color: var(--line-color);
  border-radius: 0;
  color: #fff;
  font-size: 2rem;
}

/* -------------------------------------------------- */
/* banner */

.banner {
  background: var(--line-color);
}
.banner .wrapper {
  position: relative;
}
.banner .wrapper::before {
  background: transparent url(../images/line/banner-bg.webp) no-repeat 0 0 / 246px 298px;
  content: '';
  display: block;
  height: 298px;
  left: -110px;
  position: absolute;
  top: -18px;
  width: 246px;
}
.banner img {
  margin: auto;
}

/* -------------------------------------------------- */
/* step */

.step .wrapper {
  position: relative;
}
.step .title {
  left: -100px;
  position: absolute;
  top: -80px;
}
.step h2.global {
  color: var(--line-color);
  margin-bottom: 40px;
}
.step-content {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.step-item {
  background: #fff;
  border: 1px solid #ccc;
  margin-bottom: 60px;
  margin-left: 25px;
  padding: 60px 40px 60px 180px;
  position: relative;
}
.step-item:last-child {
  margin-bottom: 20px;
}
.step-item::after {
  background: url(../images/line/step-arrow.webp) no-repeat 0 0 / 16px 16px;
  bottom: -38px;
  content: '';
  display: block;
  height: 16px;
  left: calc(50% - 8px);
  position: absolute;
  width: 16px;
}
.step-item:last-child::after {
  display: none;
}
.step-image {
  left: -50px;
  position: absolute;
  top: 50px;
  width: 190px;
}
.step-image img {
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,.16);
}
.step-title {
  align-items: center;
  justify-content: flex-start;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 20px;
}
.step-title span {
  background: var(--line-color);
  border-radius: 9999px;
  color: #fff;
  font-size: 1.6rem;
  margin-right: 20px;
  padding: .5em;
  text-align: center;
  width: 120px;
}
.step-note {
  color: var(--line-color);
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 20px;
}
.step-item dd p {
  line-height: 1.8;
  margin-bottom: 30px;
}
.step-step1 {
  align-items: center;
  justify-content: flex-start;
}
.step-step1 img {
  width: 204px;
}
.step-step2 {
  margin-bottom: 20px;
}
.step-step2:last-child {
  margin-bottom: 0;
}
.step-step2::after {
  content: '';
  display: block;
  width: 170px;
}
.step-item dd .step-step2 p {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 5px;
  width: 100%;
}
.step-step2 figure {
  width: 170px;
}
.step-step2 img {
  height: 122px;
  object-fit: cover;
  width: 100%;
}
.step-step2 figcaption {
  padding: .5em 0;
  text-align: center;
}
.step-item dd .step-step3 p {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 0;
}
.step-step3 p a {
  color: var(--main-color2);
  text-decoration: underline;
}
.step-step3 p a:hover {
  text-decoration: none;
}
