@charset "UTF-8";
/* =========================
  LINE consult (top)
========================= */

.l-line{
  background:#CAEAE6;
  /* padding: 5.4rem 0 6rem; */
      padding: 4.5rem 0 7rem;
  text-align:center;
}

.l-line__english{
  margin-bottom:18px;
  text-transform: uppercase;
}

.l-line__badge{
  display:flex;
  justify-content:center;
  margin-bottom:8px;
}

.l-line__badgeTxt{
  display:inline-block;
  background:#1FD0B7;
  color:#fff;
  border-radius:999px;
  padding:5px 30px;
  font-size: 2.4rem;
font-style: normal;
font-weight: 700;
line-height: 160%; /* 38.4px */
letter-spacing: 1.92px;
}

.l-line__ttl{
  margin-bottom:45px;
  line-height: 160%;
}
/* 黄色マーカー（LINE相談 見出し用） */
.l-line__ttl ._marker {
  display: inline-block;
  position: relative;
  font-weight: 800;
  padding: 0 6px;
  line-height: 1.2;
  z-index: 0;
}

/* マーカー本体 */
.l-line__ttl ._marker::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.5rem; /* 文字との距離 */
  width: 100%;
  height: 0.55em; /* 黄色ラインの太さ */
  background: #FFF200;
  z-index: -1;
}

.l-line__steps{
  display: flex;
  gap:45px;
  align-items:start;
  justify-items:center;
  align-items: stretch;
    margin-top: 80px;

}

.l-line__step{
  display: flex;         /* ★ */
  flex-direction: column;/* ★ */
  flex: 1; 
  position:relative;
}
.l-line__step + .l-line__step::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -45px; /* ← 前の step との間 */
  transform: translateY(-50%);
  width: 40px;
  height: 60px;
  background: #2BB9A5;
 clip-path: polygon(0 0, 0% 100%, 100% 50%);
}

.l-line__stepBadge{
  width:80px;
  height:80px;
 z-index: 3;
 position: absolute;
 top: -40px;
 left: 50%;
 transform: translate(-50%, 0);
  
}
.l-line__step:nth-child(1) .l-line__stepBadge {
  background: url(../img/line/step-icon1.png) no-repeat center / contain;
}

.l-line__step:nth-child(2) .l-line__stepBadge {
  background: url(../img/line/step-icon2.png) no-repeat center / contain;
}

.l-line__step:nth-child(3) .l-line__stepBadge {
  background: url(../img/line/step-icon3.png) no-repeat center / contain;
}


.l-line__stepBadge--label{
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1;
}

.l-line__stepBadge--num{
  font-size:22px;
  font-weight:900;
  line-height:1;
  margin-top:4px;
}

.l-line__card{
  background:#fff;
  display: flex;
  flex-direction: column;
  flex: 1;   
}

.l-line__cardHead{
  background:#2BB9A5;
  color:#fff;
  padding:50px 20px 10px;
  /* height: 124px; */
}

.l-line__cardHeadTtl{
  margin:0;
font-size: 20px;
font-weight: 700;
line-height: 160%; /* 32px */
letter-spacing: 1.6px;
  height: 64px;
  align-content: center;
}

.l-line__cardBody{
  padding:20px;
  text-align:left;
}

.l-line__img{
  width:100%;
  height:auto;
  display:block;
  background:#f2f5f6;
}

.l-line__note{
  margin-top: 20px;
font-size: max(15px, 1.5rem);
font-weight: 500;
line-height: 160%; /* 24px */
letter-spacing: 1.2px;
}


.l-line__check{
  margin-top:10px;
  list-style:none;
  padding:10px;
  border:1px solid #2BB9A5;
}

.l-line__check li{
  display: flex;
 gap: 10px;
 font-size: max(15px, 1.5rem);
font-style: normal;
font-weight: 500;
line-height: 160%; /* 24px */
letter-spacing: 1.2px;
}

.l-line__check li::before{
  content:"";
  flex-shrink: 0;
  width:16px;
  height:16px;
  margin-top: 4px;
  background: transparent url(../img/line/line__check.png) no-repeat center center / contain;
}
.l-line__check .l-line__check-head {
  font-weight: 600;
}
.l-line__check .l-line__check-head::before {
  display: none;
}
.l-line__check li + li {
  margin-top: 10px;
}
.l-line__caution {
    margin-top: 8px;
font-size: max(15px, 1.5rem);
font-weight: 500;
line-height: 160%; /* 24px */
letter-spacing: 1.2px;
text-align: left;
}
/* arrows (PC) */
.l-line__arrow{
  width:44px;
  height:44px;
  margin-top:44px;
  position:relative;
}

.l-line__arrow::before{
  content:"";
  position:absolute;
  inset:0;
  background:#1fb9a7;
  clip-path:polygon(0 20%, 62% 20%, 62% 0, 100% 50%, 62% 100%, 62% 80%, 0 80%);
  filter: drop-shadow(0 10px 14px rgba(0,0,0,.10));
}

/* CTA */
.l-line__btn{
  margin-top:60px;
  margin-inline: auto;
max-width: 354px;

}

.l-line__btnLink{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:min(354px, 100%);
  padding:10px 30px;
    border-radius: 5px;
background:#06C755;
color: #fff;
  font-size: 20px;
font-style: normal;
font-weight: 700;
line-height: 160%; /* 32px */
letter-spacing: 1.6px;
}

.l-line__btnLink:hover{opacity:.7;}

.l-line__btnIcon{
width: 40px;
height: 40px;
aspect-ratio: 1/1;
}

.l-line__btnArrow{
  width:10px;
  height:10px;
  border-right:3px solid #fff;
  border-top:3px solid #fff;
  transform:rotate(45deg);
  margin-left:6px;
}

/* SP */
@media (max-width: 1059px){
 .l-line__badgeTxt {
  font-size: 2rem;
  padding: 4px 20px;
 }
}
@media (max-width: 900px) {
  .l-line {
        padding: 6rem 0 8rem;
  }
  .l-line__english {
    /* font-size: 3rem; */
  }
 
  .l-line__badgeTxt {
    /* font-size: 3.5rem; */
    font-size: 3rem;
            padding: 10px 35px;
            line-height: 1.4;

  }
  .l-line__steps {
    flex-direction: column;
    align-items: center;
    gap: 160px;
    margin-top: 130px;
  }
  .l-line__step {
    /* max-width: 500px; */
    width: 100%;
  }
  .l-line__step + .l-line__step::before {
    top: -160px;
    left: 50%;
    transform: translate(-50%);
    width: 100px;
    height: 70px;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
}
.l-line__check {
  padding: 16px;
}
.l-line__note,
.l-line__check li {
  font-size: 2.8rem;

}
.l-line__caution {
  font-size: 2.8rem;
}
.l-line__ttl {
    margin-bottom: 65px;
    
}
.l-line__cardHead {
  height: 200px;
      padding: 80px 20px 10px;
}
.l-line__stepBadge {
  width: 150px;
  height: 150px;
  top: -75px;
}
.l-line__cardHeadTtl {
  font-size: 3.5rem;
  height: calc(3.5rem * 1.6 * 2);
}
.l-line__cardBody {
    padding: 32px;
}
.l-line__check li::before {
  width: 24px;
  height: 24px;
  margin-top: 9px;
}
.l-line__btn{
  margin-top:60px;
  margin-inline: auto;
/* max-width: none; */
max-width: 585px;

}

    .l-line__btnLink {
        gap: 16px;
        width: 100%;
        max-width: none;
        /* padding: 2.6rem 6rem; */
        padding: 2.6rem 4rem;
        border-radius: 10px;
        font-size: 4rem;
        letter-spacing: 3.6px;
    }

.l-line__btnIcon{
/* width: 8rem;
height: 8rem; */
width: 6rem;
height: 6rem;
}
.l-line__btnTxt {
  font-size: 3.5rem;
}
    .l-line__btnArrow {
        width: 2rem;
        height: 2rem;
        border-right: 0.5rem solid #fff;
        border-top: 0.5rem solid #fff;
    }

}
@media (max-width: 768px) {
  .l-line__btn{
max-width: 550px;

}
}