.lp main {
  padding-bottom: 0;
}

.wCont {
  width: min(1000px, 100vw - 30px);
  margin-inline: auto;
}

section {
  padding-block: 85px;
  font-weight: 500;
  letter-spacing: 0.01em;
}

h2 {
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-align: center;
  line-height: 1.2;
}

h2::after {
  display: block;
  content: '';
  width: 400px;
  aspect-ratio: 400 / 17;
  background-image: url(../images/heading-line_blue.png);
  background-size: contain;
  margin-inline: auto;
  margin-top: 25px;
  margin-bottom: 40px;
}

h2.pink::after {
  background-image: url(../images/heading-line_pink.png);
}

h2.red::after {
  background-image: url(../images/heading-line_red.png);
}

.h2_2-lines {
  line-height: 1.5;
}

.h2_large {
  font-size: 48px;
}

.h2_small {
  font-size: 28px;
}

.h2_number {
  padding-inline: 4px;
}

h3 {
  letter-spacing: 0.03em;
  font-size: 26px;
}

span._red {
  color: #cd4e4e;
}

span._blue {
  color: #4eb0cd;
}

span._underline {
  padding-inline: 2px;
  background: linear-gradient(transparent 65%, #feffbe 65%);
}



/*-------------------------------------------------------
メインビジュアル
-------------------------------------------------------*/
.mv {
  height: 850px;
  background-color: #abd6ea;
  background-image: url(../images/mv_bg_cover.png);
  display: flex;
  align-items: center;
}

.mv_ttl img {
  display: block;
  margin-inline: auto;
}

.mv_img {
  margin-top: 50px;
  margin-bottom: 50px;
  margin-left: 145px;
}

.mv_img img {
  display: block;
  margin-inline: auto;
}

.mv_bnr {
  position: relative;
  transition: all ease-in-out 0.3s;
}

.mv_bnr img {
  display: block;
  margin-inline: auto;
  transition: all ease-in-out 0.3s;
  position: relative;
}

.mv_bnr:hover img {
  filter: drop-shadow(0 0 3px #f2a2b7) drop-shadow(0 0 3px #f2a2b7);
}

/*-------------------------------------------------------
introduction
-------------------------------------------------------*/
.introduction {
  background-color: #f5f5f5;
  padding-bottom: 20px;
  position: relative;
}

.introduction::after {
  content: '';
  display: block;
  width: 100%;
  height: 90px;
  background-image: url(../images/introduction_triangle.png);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  position: absolute;
  bottom: -90px;
  z-index: -1;
}

._worries_block {
  width: 60%;
  padding-block: 40px;
  border: 1px solid #b5b5b6;
  background-color: #ffffff;
  margin-inline: auto;
  margin-bottom: 35px;
  display: flex;
  justify-content: center;
}

._worries_list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

._worries_list_item {
  font-size: 18px;
  display: flex;
  align-items: center;
}

._worries_list_item::before {
  content: '';
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #cdcdcd;
  margin-right: 12px;
}

.introduction_in >p {
  text-align: center;
  font-size: 18px;
}

.introduction_in >p ._red {
  font-size: 22px;
  font-weight: 600;
}

/*-------------------------------------------------------
extended-warranty
-------------------------------------------------------*/
.extended-warranty {
  padding-top: 150px;
}

.extended-warranty_img img {
  display: block;
  margin-inline: auto;
}

.extended-warranty ._annotation {
  font-size: 12px;
  margin-top: 15px;
  margin-right: 20px;
  text-align: right;
}

/*-------------------------------------------------------
support
-------------------------------------------------------*/
.support {
  background-color: #effbff;
  padding-top: 80px;
}

.support_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 26px;
  row-gap: 30px;
}

.support_list_item {
  width: 23%;
}

.support_list_item img {
  width: 100%;
}

.support ._annotation {
  font-size: 12px;
  margin-top: 15px;
  text-align: right;
}

/*-------------------------------------------------------
target-equipment
-------------------------------------------------------*/
.target-equipment h2 ._annotation {
  position: relative;
}

.target-equipment h2 ._annotation::after {
  content: '※';
  position: absolute;
  font-size: 45%;
  top: 4px;
  right: -20px;
}

.target-equipment_in >p {
  text-align: center;
  font-size: 18px;
}

.equipent_box {
  margin-top: 60px;
  margin-bottom: 85px;
}

.equipment_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  row-gap: 35px;
}

.equipment_list_item {
  width: 31%;
  border: 3px solid #4eb0cd;
  border-radius: 10px;
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.equipment_list_item ._ttl {
  width: 100%;
  height: 45px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 22px;
  color: #ffffff;
  background-color: #4eb0cd;
  border-radius: 5px 5px 0 0;
}

.equipment_list_item ._cont {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.equipment_list_item ._img {
  width: calc(100% - 50px);
  padding-block: 20px;
  border-bottom: 1px solid #cdcdcd;
}

.equipment_list_item ._img img {
  display: block;
  margin-inline: auto;
}

.equipment_list_item ._txt {
  font-size: 16px;
  line-height: 1.6;
  height: 75px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.equipment_list_item ._txt_in {
  text-align: left;
}

.equipment_list_item ._txt_in span.pc {
  display: inline!important;
}

.equipment_list_item ._txt_in ._small {
  font-size: 14px;
}

.equipent_box ._annotation {
  font-size: 12px;
  margin-top: 15px;
  text-align: right;
}

.causes_box {
  width: 100%;
  padding-top: 40px;
  position: relative;
}

.causes_box h3 {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  padding: 0 25px;
}

/*----------保証対象リスト----------*/
.causes_box._red {
  padding-bottom: 30px;
  border: 1px solid #cd4e4e;
  margin-bottom: 80px;
}

.causes_box._red h3 {
  color: #cd4e4e;
}

.applicable_list {
  display: flex;
  padding-inline: 60px;
}

.applicable_list_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1; /* 5等分 */
}

.applicable_list_item ._txt {
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  text-align: center;
}

.applicable_list_item ._txt span.pc {
  display: inline!important;
}

/*----------保証対象外リスト----------*/
.causes_box._gray {
  padding-bottom: 35px;
  border: 1px solid #b5b5b6;
}

.causes_box._gray h3 {
  color: #8d8d8d;
}

.not-applicable_list {
  display: flex;
  flex-wrap: wrap;
  padding-inline: 110px;
  row-gap: 17px;
  column-gap: 50px;
}

.not-applicable_list_item {
  font-size: 18px;
  display: flex;
  align-items: center;
}

.not-applicable_list_item::before {
  content: '';
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #cdcdcd;
  margin-right: 10px;
}

/*-------------------------------------------------------
usage-image
-------------------------------------------------------*/
.usage-image {
  padding-top: 35px;
}

.usage-image .flow_box_in {
  display: flex;
  justify-content: space-between;
}

.usage-image .flow_box_in_item {
  width: 23%;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

.usage-image .flow_box_in_item::after {
  content: '';
  position: absolute;
  top: 25px;
  transform: translateY(-50%);
  left: 50%;
  width: calc(100% + 20px);
  height: 6px;
  background: #4eb0cd;
  z-index: 1;
}

.usage-image .flow_box_in_item:last-child::after {
  display: none;
}

.usage-image .flow_box_in_item ._number {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  height: 50px;
  color: #ffffff;
  background-color: #4eb0cd;
  border-radius: 50%;
  margin-bottom: 40px;
  font-size: 26px;
  font-weight: 600;
  position: relative;
  z-index: 2;
}

.usage-image .flow_box_in_item ._txt {
  margin-top: 25px;
  font-size: 20px;
  font-weight: bold;
}

/*-------------------------------------------------------
kaketsuke-service
-------------------------------------------------------*/
.kaketsuke-service{
  background-color: #fdf1f4;
  position: relative;
  padding-top: 10px;
  margin-top: 120px;
}

.kaketsuke-service::before {
  content: '';
  display: block;
  width: 100%;
  height: 80px;
  background-image: url(../images/kaketsuke-service_circle.png);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  position: absolute;
  top: -80px;
  z-index: -1;
}

.kaketsuke-service::after {
  content: '';
  display: block;
  width: 96px;
  height: 96px;
  background-image: url(../images/icon_plus.png);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: -128px;
  left: 50%;
  transform: translateX(-50%);
}

.kaketsuke-service_in >p {
  text-align: center;
  font-size: 18px;
}

.kaketsuke-service_in >p ._red {
  font-weight: 600;
}

.kaketsuke-service .trouble_list {
  margin-block: 60px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 3.5%;
  row-gap: 35px;
}

.kaketsuke-service .trouble_list_item {
  width: 31%;
  border: 3px solid #f2a2b7;
  border-radius: 10px;
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px 20px 20px 20px;
}

.kaketsuke-service .trouble_list_item ._text {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.kaketsuke-service .trouble_list_item ._text ._ttl {
  font-size: 22px;
  font-weight: 600;
  margin-top: 20px;
}

.kaketsuke-service .trouble_list_item ._text ._txt {
  min-height: 53px;
  line-height: 1.6;
  font-size: 16px;
  margin-top: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  text-align: center;
}

.kaketsuke-service .trouble_list_item ._text ._txt._small {
  min-height: auto;
  margin-top: 0;
  font-size: 12px;
}

.kaketsuke-service .explanation {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
  padding: 30px 80px;
  background-color: #eaeaea;
}

.kaketsuke-service .explanation_item {
  font-size: 16px;
  display: flex;
  align-items: center;
  padding-left: 25px;
  position: relative;
  line-height: 1.6;
}

.kaketsuke-service .explanation_item::before {
  content:'■';
  position: absolute;
  top: 0;
  left: 0;
}

/*-------------------------------------------------------
faq
-------------------------------------------------------*/
.faq .faq_q {
  line-height: 1.8;
  font-size: 20px;
  font-weight: 600;
  color: #4eb0cd;
  padding-top: 25px;
  padding-inline: 25px;
}

.faq .faq_q._01 {
  padding-top: 0px;
}

.faq .faq_a {
  font-size: 16px;
  line-height: 1.8;
  padding-top: 10px;
  padding-bottom: 30px;
  padding-inline: 25px;
  border-bottom: 1px solid #cdcdcd;
}

/*-------------------------------------------------------
contact
-------------------------------------------------------*/
.contact {
  background-color: #f2f1e4;
  background-image: url(../images/contact_bg_cover.png);
}

.contact_in >p {
  text-align: center;
  font-size: 18px;
}

.contact_in >p ._red {
  font-weight: 600;
}

.contact .btn {
  display: block;
  width: 450px;
  height: 70px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  color: #ffffff;
  background-color: #cd4e4e;
  font-size: 22px;
  font-weight: 600;
  position: relative;
  margin-top: 60px;
  margin-inline: auto;
  transition: all ease-in-out 0.3s;
}

.contact .btn::before {
  position: absolute;
  display: block;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  right: 28px;
  content: '';
  width: 12px;
  height: 12px;
  border-top: 3px solid #ffffff;
  border-right: 3px solid #ffffff;
  transition: all ease-in-out 0.3s;
}

.contact .btn:hover {
  filter: drop-shadow(0 0 2px #cd4e4e) drop-shadow(0 0 2px #cd4e4e);
}

.contact .btn:hover::before {
  right: 25px;
}

/*----------------------------------------------------------------------
スマホ用スタイル
----------------------------------------------------------------------*/
@media screen and (max-width: 768px) {

  section {
    padding-block: 60px;
  }

  h2 {
    font-size: 24px;
  }

  h2::after {
    width: 250px;
    margin-top: 20px;
    margin-bottom: 30px;
  }

  .h2_large {
    font-size: 36px;
  }

  .h2_small {
    font-size: 20px;
  }

  .h2_number {
    padding-inline: 3px;
  }

  h3 {
    font-size: 22px;
  }

  /*-------------------------------------------------------
  メインビジュアル
  -------------------------------------------------------*/
  .mv {
    height: auto;
    padding-top: 35px;
    padding-bottom: 40px;
  }

  .mv_ttl {
    width: 80%;
    max-width: 500px;
    margin-inline: auto;
  }

  .mv_ttl img {
    width: 100%;
  }

  .mv_img {
    width: 95%;
    max-width: 500px;
    margin-inline: auto;
    margin-top: 35px;
    margin-bottom: 30px;
  }

  .mv_img img {
    width: 100%;
  }

  .mv_bnr {
    display: block;
    width: 100%;
    max-width: 500px;
    margin-inline: auto;
  }

  .mv_bnr img {
    width: 100%;
  }

  /*-------------------------------------------------------
  introduction
  -------------------------------------------------------*/
  .introduction::after {
    height: 50px;
    bottom: -50px;
  }

  ._worries_block {
    width: 100%;
    max-width: 500px;
    padding-block: 30px;
    margin-bottom: 30px;
  }

  ._worries_list_item {
    font-size: 15px;
  }

  ._worries_list_item::before {
    width: 12px;
    height: 12px;
    margin-right: 8px;
  }

  .introduction_in >p {
    font-size: 16px;
  }

  .introduction_in >p ._red {
    font-size: 18px;
  }

  /*-------------------------------------------------------
  extended-warranty
  -------------------------------------------------------*/
  .extended-warranty {
    padding-top: 90px;
  }
  .extended-warranty_img img {
    width: 100%;
    max-width: 600px;
  }

  .extended-warranty_img img {
    width: 100%;
  }

  .extended-warranty ._annotation {
    margin-top: 10px;
    margin-right: 0;
  }

  /*-------------------------------------------------------
  support
  -------------------------------------------------------*/
  .support {
    padding-top: 50px;
  }

  .support_list {
    flex-direction: column;
    align-items: center;
    column-gap: auto;
    row-gap: 15px;
  }

  .support_list_item {
    width: 100%;
    max-width: 500px;
  }

  .support_list_item img {
    width: 100%;
  }

  .support ._annotation {
    margin-top: 10px;
    text-align: left;
  }

  /* .support {
    padding-top: 50px;
  }

  .support_list {
    flex-direction: column;
    align-items: center;
    column-gap: auto;
    row-gap: 15px;
  }

  .support_list_item {
    width: 90%;
    max-width: 500px;
    min-height: auto;
    padding-block: 25px;
    border-radius: 8px;
  }

  .support_list_item::before {
    position: absolute;
    top: -13px;
    left: 3px;
    font-size: 50px;
  }

  .support_list_item ._ttl {
    font-size: 18px;
    margin-bottom: 10px;
  }

  .support_list_item ._txt {
    font-size: 14px;
  }

  .support_list_item ._txt_small {
    margin-top: 2px;
  } */

  /*-------------------------------------------------------
  target-equipment
  -------------------------------------------------------*/
  .target-equipment h2 ._annotation::after {
    right: -15px;
  }

  .target-equipment_in >p {
    font-size: 16px;
  }

  .equipent_box {
    margin-top: 40px;
    margin-bottom: 60px;
  }

  .equipment_list {
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 15px;
  }

  .equipment_list_item {
    width: 100%;
    max-width: 500px;
    border-radius: 8px;
  }
  
  .equipment_list_item ._ttl {
    height: 40px;
    font-size: 18px;
  }

  .equipment_list_item ._cont {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 20px 25px;
  }

  .equipment_list_item ._img {
    width: 28%;
    min-width: 80px;
    padding-block: 0;
    padding-right: 20px;
    border-bottom: none;
    border-right: 1px solid #cdcdcd;
  }

  .equipment_list_item ._img img {
    width: 100%;
  }

  .equipment_list_item ._txt {
    padding-left: 20px;
    font-size: 14px;
    height: auto;
    justify-content: baseline;
    align-items: center;
  }

  .equipment_list_item ._txt_in._inter-phone {
    font-size: 13px;
  }

  .equipment_list_item ._txt_in ._small {
    font-size: 13px;
  }

  .equipent_box ._annotation {
    margin-top: 10px;
  }

  .causes_box {
    max-width: 500px;
    padding-top: 35px;
    margin-inline: auto;
  }

  .causes_box h3 {
    padding: 0 15px;
    white-space: nowrap;
  }

  /*----------保証対象リスト----------*/
  .causes_box._red {
    padding-bottom: 30px;
    margin-bottom: 55px;
  }

  .applicable_list {
    padding-inline: 15px;
    justify-content: center;
    row-gap: 25px;
    flex-wrap: wrap;
  }

  .applicable_list_item {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: calc(100% / 3);
    flex: initial;
  }

  .applicable_list_item img {
    width: 70px;
    display: block;
    margin-inline: auto;
  }

  .applicable_list_item ._txt {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.4;
  }

  /*----------保証対象外リスト----------*/
  .causes_box._gray {
    padding-bottom: 30px;
  }

  .not-applicable_list {
    padding-inline: 20px;
    row-gap: 15px;
    column-gap: 0;
  }

  .not-applicable_list_item {
    width: calc(100% / 2);
    font-size: 15px;
    display: flex;
    align-items: center;
  }

  .not-applicable_list_item::before {
    width: 12px;
    height: 12px;
    margin-right: 8px;
  }

  /*-------------------------------------------------------
  usage-image
  -------------------------------------------------------*/
  .usage-image {
    padding-top: 30px;
  }

  .usage-image .flow_box {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .usage-image .flow_box_in {
    flex-direction: column;
    gap: 40px;
    margin-inline: auto;
    justify-content: flex-start;
  }

  .usage-image .flow_box_in_item {
    width: 100%;
    flex-direction: row;
    gap: 20px;
  }

  .usage-image .flow_box_in_item::after {
    content: '';
    position: absolute;
    left: 20px;
    transform: translateX(-50%);
    top: 50%;
    width: 5px;
    height: 200%;
  }

  .usage-image .flow_box_in_item:last-child::after {
    display: none;
  }

  .usage-image .flow_box_in_item ._number {
    width: 40px;
    height: 40px;
    margin-bottom: 0;
    font-size: 20px;
  }

  .usage-image .flow_box_in_item img {
    display: block;
    width: 55px;
  }

  .usage-image .flow_box_in_item ._txt {
    margin-top: 0;
    font-size: 18px;
    font-weight: 600;
  }

  /*-------------------------------------------------------
  kaketsuke-service
  -------------------------------------------------------*/
  .kaketsuke-service{
    padding-top: 40px;
    margin-top: 70px;
  }

  .kaketsuke-service::before {
    height: 35px;
    top: -35px;
  }

  .kaketsuke-service::after {
    width: 76px;
    height: 76px;
    top: -73px;
  }

  .kaketsuke-service_in >p {
    font-size: 16px;
  }

  .kaketsuke-service .trouble_list {
    margin-block: 40px;
    display: flex;
    flex-direction: column;
    column-gap: auto;
    row-gap: 15px;
  }

  .kaketsuke-service .trouble_list_item {
    width: 100%;
    max-width: 500px;
    margin-inline: auto;
    border-radius: 8px;
    flex-direction: row;
    align-items: center;
    padding: 20px 10px;
    column-gap: 18px;
  }

  .kaketsuke-service .trouble_list_item img {
    width: 75px;
  }

  .kaketsuke-service .trouble_list_item ._text {
    align-items: flex-start;
  }

  .kaketsuke-service .trouble_list_item ._text ._ttl {
    font-size: 18px;
    margin-top: 0px;
  }

  .kaketsuke-service .trouble_list_item ._text ._txt {
    min-height: auto;
    line-height: 1.6;
    font-size: 14px;
    margin-top: 10px;
    justify-content: flex-start;
    flex: initial;
    text-align: left;
  }

  .kaketsuke-service .trouble_list_item ._text ._txt._small {
    margin-top: 5px;
  }

  .kaketsuke-service .explanation {
    gap: 10px;
    max-width: 500px;
    margin-inline: auto;
    padding: 30px 15px;
  }

  .kaketsuke-service .explanation_item {
    font-size: 14px;
    padding-left: 20px;
  }

  /*-------------------------------------------------------
  faq
  -------------------------------------------------------*/
  .faq .faq_q {
    font-size: 17px;
    padding-top: 20px;
    padding-inline: 10px;
  }

  .faq .faq_q._01 {
    padding-top: 0px;
  }

  .faq .faq_a {
    font-size: 14px;
    padding-top: 10px;
    padding-bottom: 25px;
    padding-inline: 10px;
  }

  /*-------------------------------------------------------
  contact
  -------------------------------------------------------*/
  .contact {
    padding-top: 55px;
  }

  .contact h2 {
    line-height: 1.4;
  }

  .contact_in >p {
    font-size: 16px;
  }

  .contact .btn {
    width: 300px;;
    height: 60px;
    font-size: 18px;
    margin-top: 40px;
  }

  .contact .btn::before {
    width: 10px;
    height: 10px;
    transition: all ease-in-out 0.3s;
  }

}