@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@700;900&display=swap');

/* パンくず */
.bootstrap .breadcrumb{
  padding: 0.75rem 0;
  background: transparent;
}
@media (max-width: 768px) {
  .bootstrap .breadcrumb{
    display: none;
  }
}

/* ブロック */
.content-block{
  margin: 80px 0;
}

/* リンク */
.content-inner a{
  color: #333;
  text-decoration: underline;
}
.content-inner a:hover{
  color: #bc2739;
  text-decoration: none!important;
}

.atten-link{
  margin-left: 4px;
}
.atten-link a,
a.text-color--blue{
  color: #0081CC!important;
}

.blank-link{
  padding-right: 24px;
}
.blank-link::after{
  right: 3px;
}

.text-underline{
  text-decoration: underline!important;
}

.text-indent--1{
  margin-left: 1.2em;
  text-indent: -1.2em;
}
.text-indent--1 span,
.text-indent--1 a{
  margin: 0;
  text-indent: 0;
}

/* テキスト */
.font--lato {
  font-family: 'Lato', 'Noto Sans JP', Helvetica, Neue Haas Grotesk, Arial;
}

/* リスト */
/* 先頭中黒リスト */
.dot-list{
  margin: 18px 0 0!important;
}
.left-border__heading + .dot-list{
  margin-top: 34px;
}
.dot-list__item{
  position: relative;
  padding-left: 28px;
  font-size: 18px;
}
.dot-list__item::before{
  position: absolute;
  top: calc(.5em + 3px);
  left: calc(.5em + 3px);
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #272727;
  font-size: 14px;
  line-height: 1.5;
}
.dot-list__item + .dot-list__item{
  margin-top: 20px;
}

/* 注釈 */
.note{
  margin: 34px 0 0!important;
}
.note__item,
.service-detail__block p.note__item{
  margin-left: 1.5em;
  font-size: 14px;
  text-indent: -1.5em;
}
.note__item *,
.asterisk-text *{
  text-indent: 0;
}
.note__item + .note__item{
  margin-top: 12px;
}

/* ※テキスト */
.asterisk-text{
  margin-left: 1.5em!important;
  text-indent: -1.5em;
}
.asterisk-text::before{
  content: "※";
  display: inline-block;
  margin-right: .5em;
  text-indent: 0;
}

/* ※+数字テキスト */
.note--numbered .note__item,
.service-detail__block .note--numbered p.note__item{
  margin-left: 3em;
  text-indent: -3em;
  line-height: 1.7;
}
.note--numbered .note__item span{
  margin-right: 18px;
}
.note--numbered .note__item + .note__item{
  margin-top: 10px;
}

/* スライダー */
.slick-track {
  display: flex;
}
.slick-slide {
  height: auto !important;
}
.slick-next,
.slick-prev{
  width: 48px;
  height: 48px;
}
.slick-next{
  right: 0;
}
.slick-prev{
  left: 0;
}
.slick-next:before{
  background: url(/sites/default/files/media/service/homedenwa/image/slider_arrow-bk-r.webp) no-repeat center / 100%;
  background-size: contain;
}
.slick-prev:before{
  background: url(/sites/default/files/media/service/homedenwa/image/slider_arrow-bk-l.webp) no-repeat center / 100%;
  background-size: contain;
}
.slick-dots li,
.slick-dots li button{
  width: 10px;
  height: 10px;
}
@media (max-width: 768px) {
  .scene-slider .slick-dots{
    bottom: 22px;
  }
  .scene-slider .slick-next{
    top: auto;
    right: 110px;
    bottom: 0;
  }
  .scene-slider .slick-prev{
    top: auto;
    bottom: 0;
    left: 110px;
  }

}

/* MVエリア */
.service-detail__main-visual .main-visual--inr .main-heading{
  margin: 0;
  padding-left: 20px;
  border-left: 5px solid #BC2739;
  font-size: 44px;
  font-weight: bold;
  line-height: 1.3;
}

.main-visual--inr picture{
  display: inline-block;
  margin: 30px auto 0;
}

/* 右側ブロック */
.service-detail__cart{
  padding: 20px 20px 24px;
}
.service-detail__cart .cart-inr{
  padding: 24px 16px;
}
.price-detail p{
  margin-bottom: 0!important;
}
.price-category{
  font-size: 18px;
  font-weight: 700;
}
.price-box + .price-category{
  margin-top: 20px;
}
.service-detail__cart .cart-inr .price-box{
  align-items: center;
}
.service-detail__cart .cart-inr .price-box:nth-child(n+2){
  margin-top: 5px;
}
.price-text{
  font-size: 14px;
}
.service-detail__cart .cart-inr .price{
  font-size: 14px;
}
.service-detail__cart .cart-inr .price span.text{
  color: #000;
  font-size: 14px;
  font-weight: 400;
}
.service-detail__links{
  display: flex;
  align-items: center;
  flex-direction: column;
  margin: 20px 0 0;
}
.service-detail__links .oval-link--red{
  width: 289px;
}

.service-detail__links .oval-link + .oval-link{
  margin-top: 10px;
}

.service-detail__cart .cart-inr .price-box--wrap{
  flex-wrap: wrap;
}
.service-detail__cart .cart-inr .price-box--wrap .price-num{
  width: 100%;
}

@media only screen and (max-width: 768px) {
  .service-detail__main-visual{
    margin: 60px auto 0;
  }
  .tag-group__item img{
    height: 32px;
  }
  .service-detail__main-visual .main-visual--inr .heading{
    padding: 0 20px;
  }
  .service-detail__main-visual .main-visual--inr .main-heading{
    padding: 0 0 0 20px;
    font-size: 32px;
    line-height: 1.5;
  }

  .main-visual--inr picture,
  .note{
    margin: 30px 0 0;
  }
  .main-visual--inr .note{
    padding: 0 20px;
  }
  .note__item{
    line-height: 1.8;
  }
}



/* MV下移動ブロック */
.mv-under{
  margin: 58px 0 0;
  padding: 40px 0 55px;
  background: url(/sites/default/files/media/service/homedenwa/image/benefit_bg-pc.webp);
}
.benefit-heading{
  text-align: center;
}
.benefit-heading span{
  position: relative;
  display: inline-block;
  padding: 0 42px;
  color: #fff;
  font-size: 32px;
  font-weight: 900;
  line-height: 1.1;
}
.benefit-heading span::before,
.benefit-heading span::after{
  content: "";
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 5px;
  height: 44px;
  background: #FDD000;
}
.benefit-heading span::before{
  left: 0;
  transform: translateY(-50%) rotate(-26deg);
}
.benefit-heading span::after{
  right: 0;
  transform: translateY(-50%) rotate(26deg);
}

.benefit-list{
  display: flex;
  justify-content: center;
  gap: 24px;
  margin: 52px 0 0!important;
}
.benefit-item{
  display: flex;
  flex-direction: column;
  flex: 1;
  max-width: calc(25% - 24px);
  text-align: center;
}
.benefit-title{
  color: #fff;
  font-size: 22px!important;
  font-weight: 900!important;
}
.benefit-card{
  flex: 1;
  margin: 6px 0 0;
  padding: 24px 25px 30px;
  box-shadow: 0 6px 20px rgba(39, 39, 39, 0.2);
  border-radius: 16px;
  background: #fff;
}

.benefit-card p{
  margin-bottom: 0;
}

.benefit-text{
  margin: 16px 0 0!important;
  font-size: 16px;
}
.benefit-text--m{
  font-size: 18px!important;
}
.benefit-text--l{
  font-size: 25px!important;
}

.sb_text{
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
}

.add-sb{
  position: relative;
}
.sb_text--rd{
  position: absolute;
  top: -62px;
  left: -8px;
  width: 60px;
  height: 61px;
  background: url(/sites/default/files/media/service/homedenwa/image/icon_sb-rd.webp) no-repeat center / cover;
  font-size: 18px;
}
.sb_text--gr{
  width: 140px;
  height: 36px;
  margin: 0 auto;
  padding: 0 0 6px;
  background: url(/sites/default/files/media/service/homedenwa/image/icon_sb-gr.webp) no-repeat center / cover;
  font-size: 14px;
}
.sb_text--pk{
  width: 140px;
  height: 40px;
  margin: 0 auto!important;
  padding: 0 0 6px;
  background: url(/sites/default/files/media/service/homedenwa/image/icon_sb-pk.webp) no-repeat center / cover;
  color: #4C4C4C;
  font-size: 14px!important ;
}
.sb_text--pk span{
  display: inline-block;
  margin-left: 8px;
  color: #BC2739;
  font-size: 25px;
  font-family: 'Lato', 'Noto Sans JP', Helvetica, Neue Haas Grotesk, Arial;
}

.sb_text--gr + .benefit-text{
  margin-top: 3px!important;
}

.benefit-card01_text{
  margin: 8px 0 0;
  padding-left: 40px;
}
.benefit-card01_text .benefit-text{
  margin-top: 0!important;
}
.benefit-card01_text .benefit-text--l,
.benefit-card01_text .benefit-text--m{
  font-weight: 700;
}
.benefit-card01_text .benefit-text + .benefit-text{
  margin-top: 5px !important;
}

.benefit-markers{
  margin: 7px 0 0;
}
.benefit-marker{
  position: relative;
  display: inline-block;
  margin: 6px 0 0!important;
  background-image: linear-gradient(#FDD000, #FDD000);
  background-repeat: no-repeat;
  background-size: 100% 8px;
  background-position: 0 100%;
  color: #BC2739;
  font-weight: 900;
  line-height: 1.2;
}
.benefit-marker--main{
  font-family: 'Lato', 'Noto Sans JP', Helvetica, Neue Haas Grotesk, Arial;
  font-size: 40px;
}
.benefit-marker--unit{
  font-size: 25px;
}
.benefit-marker--sale{
  margin-left: 3px;
  font-size: 32px;
}

.benefit-card .oval-link--border--red{
  width: 100%;
  margin: 20px 0 0;
}

.benefit-item--02 .benefit-image{
  margin-top: 12px;
}
.benefit-item--02 .benefit-card01_text{
  margin-top: 12px;
}
.benefit-item--02 .benefit-markers{
  margin-top: -2px;
}

.benefit-item--03 .benefit-image{
  margin-top: -10px;
}
.benefit-item--03 .benefit-card01_text{
  padding: 0;
}
.benefit-item--03 .benefit-card01_text .benefit-text + .benefit-text{
  margin-top: 2px !important;
}
.benefit-item--03 .benefit-markers{
  margin-top: 0;
}

@media only screen and (max-width: 768px) {
  .mv-under{
    margin-top: 50px;
    padding: 38px 0 48px;
    background: url(/sites/default/files/media/service/homedenwa/image/benefit_bg-sp.webp);
  }

  h2.benefit-heading{
    margin: 0;
    padding: 0;
    border: none;
  }
  .benefit-heading span{
    line-height: 1.2;
  }
  .benefit-heading span::before,
  .benefit-heading span::after{
    top: auto;
    bottom: 0;
  }
  .benefit-heading span::before{
    transform: rotate(-26deg);
  }
  .benefit-heading span::after{
    transform: rotate(26deg);
  }

  .benefit-list{
    flex-direction: column;
    gap: 52px;
    margin-top: 44px!important;
  }
  .benefit-item{
    width: 91%;
    max-width: max-content;
    margin: 0 auto;
  }
  .benefit-title{
    justify-content: center;
    min-height: auto;
    padding: 0;
  }

  .benefit-text{
    margin-top: 12px !important;
    font-size: 18px;
  }

  .benefit-card01_text{
    margin-top: 14px;
    padding-left: 34px;
  }
  .benefit-card01_text .benefit-text--l{
    font-size: 28px !important;
  }

  .benefit-markers{
    margin-top: 16px;
  }
  .benefit-marker--main{
    font-size: 44px;
  }
  .benefit-marker--sale{
    font-size: 40px;
  }

  .sb_text--gr{
    width: 160px;
    height: 41px;
  }
  .sb_text--rd{
    top: -80px;
    left: 0;
    width: 70px;
    height: 71px;
    font-size: 20px;
  }

  .benefit-card .oval-link--border--red{
    margin-top: 40px;
  }

  .benefit-item--02 .benefit-card01_text{
    margin-top: 10px;
  }
  .benefit-item--02 .add-sb{
    margin-top: 8px;
  }
  .benefit-item--02 .sb_text--rd{
    top: -74px;
    left: 6px;
  }

  .benefit-item--03 .sb_text--gr + .benefit-text{
    margin-top: 6px !important;
  }
  .benefit-item--03 .benefit-text--m{
    font-size: 22px!important;
  }
  .benefit-item--03 .benefit-markers{
    margin: 2px;
  }
  .benefit-item--03 .benefit-marker--main{
    font-size: 50px;
  }
  .benefit-item--03 .benefit-marker--unit{
    font-size: 30px;
  }
  .benefit-item--03 .benefit-marker--sale{
    font-size: 42px;
  }
  .benefit-item--03 .oval-link--border--red{
    margin-top: 20px;
  }


}



/* homeでんわとは？ */
.how.content-block{
  margin: 80px 0 0;
}

.how-heading{
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 25px;
  font-size: 24px!important;
  font-weight: 700!important;
}
.how-heading img{
  width: 282px;
}

.lead-text{
  margin: 30px 0 0 !important;
  font-size: 22px !important;
  line-height: 1.5 !important;
  text-align: center;
}

.left-border__heading{
  margin: 30px 0 24px!important;
  padding-left: 20px;
  border-left: 5px solid #BC2739;
  font-size: 24px!important;
  font-weight: 700!important;
  line-height: 1.5!important;
}
.left-border__heading--gray{
  padding-left: 16px;
  border-left-color: #7D7D7D;
  font-size: 18px !important;
  line-height: 1.7 !important;
}

.service-detail__block p.how-image{
  width: 480px;
  margin: 30px auto 0;
}
@media only screen and (max-width: 768px) {
  h2.how-heading{
    margin: 0;
    padding: 0;
    border: none;
  }

  .lead-text{
    margin-top: 28px;
    text-align: left;
  }

  .service-detail__block p.how-image{
    width: 100%;
  }

  .left-border__heading{
    min-height: auto;
    margin-top: 68px;
    padding: 0 0 0 18px;
  }

}



/* 特徴・メリット */
.merit-list{
  display: flex;
  margin: 45px 54px 0!important;
  gap: 48px;
}
.merit-list__item{
  width: calc((100% - 96px) / 3);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.merit-list__item a{
  position: relative;
  display: block;
  height: 100%;
  padding: 14px 14px 42px;
  border: 2px solid #BC2739;
  border-radius: 10px;
  text-align: center;
  text-decoration: none;
}
.merit-list__arrow{
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 34px;
  margin: 0!important;
  padding: 0 0 2px;
}
.merit-list__arrow::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: inline-block;
  width: 24px;
  height: 24px;
  background: url(/sites/default/files/media/service/homedenwa/image/icon_arw-rd-d.webp) no-repeat center / contain;
}

.merit-list__item:hover {
  transform: translateY(10px);
}
.merit-list__item:hover .merit-list__arrow{
  background: #BC2739;
}
.merit-list__item:hover .merit-list__arrow::before{
  background: url(/sites/default/files/media/service/homedenwa/image/icon_arw-wt-d.webp) no-repeat center / contain;
}


.merit-list__point{
  margin: 5px 0 0!important;
  color: #BC2739;
  font-size: 24px!important;
  font-weight: bold;
  line-height: 1.5!important;
}
.merit-list__text{
  margin: 4px 0 0!important;
  color: #272727;
  font-size: 16px!important;
  line-height: 1.5!important;
}
.point-txt--s,
.point-txt--m,
.point-txt--l{
  line-height: 1;
}
.point-txt--m{
  font-size: 23px!important;
}
.point-txt--l{
  font-family: 'Lato', 'Noto Sans JP', Helvetica, Neue Haas Grotesk, Arial;
  font-size: 39px!important;
}
.point-txt--s{
  font-size: 21px!important;
}

.merit-list__item--01 .merit-list__point{
  line-height: 1!important;
}
.merit-list__item--01 .merit-list__text {
  margin: 0;
}


.merit-explanation{
  display: flex;
  gap: 40px;
  margin: 85px 0 0;
}
.merit-explanation + .merit-explanation{
  margin-top: 70px;
}
.merit-detail{
  width: calc(100% - 590px);
}
.merit-image{
  width: 550px;
}
.merit-heading{
  margin: 0;
  padding: 5px 0 5px 15px;
}
.merit-heading__num{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 118px;
  height: 35px;
  margin: 0 0 10px;
  border-radius: 100vh;
  background: #FFEAE9;
  font-size: 14px;
  line-height: 1;
}
.merit-heading__num span{
  color: #BC2739;
  font-size: 25px;
}
.merit-heading__text{
  display: block;
  font-size: 24px;
  line-height: 1.5;
}
.service-detail__block p.merit-detail__text{
  margin: 20px 0 0;
}
.merit-detail .note{
  margin-top: 10px!important;
}
.merit-detail .note__item{
  line-height: 1.7;
}

.point-list{
  margin: 0!important;
}
.point-list__item{
  margin: 10px 0 0;
  padding: 16px 26px;
  border: 4px solid #FFEAE9;
  border-radius: 10px;
}
.point-list__heading{
  display: flex;
  align-items: center;
  color: #BC2739;
  font-size: 20px!important;
  font-weight: bold!important;
}
.point-list__heading > span{
  display: flex;
  align-items: center;
  width: 89px;
  margin-right: 16px;
  border-right: 2px solid #BC2739;
  font-family: 'Lato', 'Noto Sans JP', Helvetica, Neue Haas Grotesk, Arial;
  font-size: 20px;
}
.point-list__heading span span{
  display: inline-block;
  margin-right: 8px;
  font-size: 14px;
}
.point-list__text{
  margin: 12px 0 0 !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}

.merit-explanation--03 .merit-image{
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 8px;
  padding: 0 65px;
  text-align: center;
}
.merit-image__arrow{
  width: 30px;
}

@media only screen and (max-width: 768px) {
  .merit-list{
    flex-direction: column;
    gap: 30px;
    margin: 45px 26px 0!important;
  }
  .merit-list__item{
    width: 100%;
  }

  .merit-explanation{
    flex-direction: column;
    gap: 0;
    margin-top: 44px;
  }
  .merit-explanation + .merit-explanation{
    margin-top: 8px;
  }
  .merit-explanation .merit-heading{
    margin: 30px 0 0 !important;
    padding: 6px 0 6px 15px;
  }
  .merit-detail{
    width: 100%;
  }
  .service-detail__block p.merit-detail__text{
    margin-top: 18px;
    font-size: 18px;
    line-height: 1.8;
  }
  .merit-image{
    width: 100%;
  }

  .point-list__item{
    padding: 16px 22px;
  }
  .point-list__heading{
    line-height: 1.6 !important;
  }
  .point-list__heading > span{
    align-self: stretch;
  }
  .point-list__text{
    margin-top: 8px!important;
  }

  .merit-explanation--01 .merit-image{
    margin-top: -20px;
  }
  .merit-explanation--03 .merit-explanation + .merit-explanation{
    margin-top: 36px;
  }
  .merit-explanation--03 .merit-image{
    margin-top: 10px;
    padding: 0;
  }

}

/* 活用例/利用シーン */
.scene.content-block{
  margin: 56px 0 0;
}
.scene-slider{
  margin: 30px 0 0;
}
.scene-slider .slider__item{
  margin: 0 30px;
  background: #FFEAE9;
  border-radius: 20px;
  padding: 30px;
}
.scene-slider .slick-slide a.blank-link{
  display: inline;
  padding: 0;
}
.scene-slider .slick-slide a.blank-link::after{
  position: relative;
  transform: translateY(0);
  margin: 0 5px 0 10px;
}

.usescene{
  display: flex;
  justify-content: space-between;
  gap: 62px;
  height: 100%;
  padding: 40px 58px;
  border-radius: 20px;
  background: #fff;
}
.usescene:first-of-type {
  margin-top: 0;
}
.usescene .col-text {
  width: 100%;
  max-width: 420px;
}
.usescene .subttl {
  font-size: 18px;
  line-height: 1;
  color: #fff;
  letter-spacing: 0.1em;
  background: #cc0033;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 13px 14px 13px 16px;
  margin-bottom:36px;
}
.subttl span{
  font-family: 'Lato', 'Noto Sans JP', Helvetica, Neue Haas Grotesk, Arial;
}
.usescene .subttl span.num {
  font-size: 32px;
  letter-spacing: 0.125em;
  margin-inline: 8px 0;
}
.usescene h3 {
  margin: 0 0 20px;
  max-width: 400px;
  border-bottom: 0;
}
.usescene dl.dl01 {
  position: relative;
}
.usescene dl.dl01 dd {
  background: #f2f2f2;
  border-radius: 4px;
  padding: 40px 24px 24px;
}
.usescene dl dt {
  position: relative;
  top: 18px;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-align: center;
}
.usescene dl dt span {
  background-color: #5b5b5b;
  display: inline-block;
  width: 100px;
  line-height: 2;
  color: #fff;
  text-align: center;
}
.usescene dl dd {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.025em;
}
.usescene dl.dl02 {
  min-height: 144px;
  padding-bottom: 48px;
  padding-left: 38px;
  padding-right: 38px;
  max-width: 540px;
  width: 100%;
  border: 2px solid #c03;
  border-radius: 4px;
  margin-top: 20px;
  position: relative;
}
.usescene dl.dl02::before{
  content: "";
  position: absolute;
  bottom: 50%;
  left: -44px;
  background: url(/themes/custom/subsphere/images/resources/icon_arrow-rd-r.webp);
  background-size: contain;
  background-repeat: no-repeat;
  width: 24px;
  height: 24px;
}
.usescene dl.dl02 dt {
  position: relative;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.05em;
  top: -22px;
}
.usescene dl.dl02 dt span {
  background-color: #cc0033;
}
.usescene dl.dl02 dd span {
  color: #cc0033;
  font-weight: bold;
}
.usescene dl.dl02 dd.icon {
  margin: 16px 22px 0;
}
.bf-ast {
  position: relative;
  padding-left: 18px;
  font-size: 14px;
  line-height: 1.8
}
.bf-ast::before {
  position: absolute;
  left: 0
}
.bf-ast::before {
  content: "※";
  top: 0
}

@media (max-width: 768px) {
  .scene.content-block{
    margin-top: 70px;
  }
  .scene .content-inner{
    padding: 0;
  }
  .scene .left-border__heading{
    margin-right: 24px !important;
    margin-left: 24px !important;
  }

  .scene-slider .slider__item{
    margin: 0!important;
    padding: 32px 24px 88px;
    border-radius: 0;
  }
  .scene-slider{
    margin-top: 30px;
  }

  .usescene {
    flex-direction: column;
    gap: 40px;
    padding: 0 0 32px;
    overflow: hidden;
  }
  .usescene .col-text {
    text-align: center;
  }
  .usescene .subttl {
    flex-wrap: wrap;
    width: 100%;
    font-size: 14px;
  }
  .usescene .subttl span.case{
    font-size: 18px;
  }
  .usescene .subttl span.num {
    font-size: 34px;
  }
  .usescene .subttl span.title{
    width: 100%;
    margin-top: 7px;
    font-size: 20px;
    font-weight: bold;
  }
  .col-text__body{
    padding: 0 24px;
  }
  .usescene dl.dl01 dd {
    text-align: left;
  }
  .usescene dl dd {
    margin-top: -12px;
    font-size: 16px;
    line-height: 1.8;
  }
  .usescene dl.dl02 dd.icon{
    margin: 16px 0 0;
  }
  .usescene dl.dl02 {
    margin: 0 24px;
    padding: 0 22px 28px;
    max-width: 100%;
    width: calc(100% - 48px);
    min-height: auto;
  }
  .usescene dl.dl02::before{
    bottom: auto;
    top: -55px;
    left: 0;
    right: 0;
    margin: auto;
    transform: rotate(90deg);
  }

  .block-caution-list{
    margin: 0!important;
  }

  .bf-ast{
    text-align: left;
  }

}



/* 対象エリア */
.area.content-block{
  margin: 90px 0 0;
}
.area-image{
  width: 441px;
  margin: 30px auto 0!important;
}

.link-block{
  margin: 34px 0 0;
  text-align: center;
}
.link-block .oval-link{
  padding: 15px 65px;
}

@media only screen and (max-width: 768px) {
  .area.content-block{
    margin-top: 60px;
  }
  .area-image{
    width: 100%;
  }
}



/* 料金および各種割引 */
.charge.content-block{
  margin: 102px 0 0;
}

.sub-heading,
.bootstrap h2.sub-heading,
.bootstrap h3.sub-heading{
  display: block;
  margin: 80px 0 30px;
  padding-bottom: 16px;
  border-bottom: 4px solid #e5e5e5;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.5;
}
.sub-heading::after{
  display: none;
}
.sub-heading::before{
  display: none;
}
.sub-heading:before{
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 4px #bc2739;
  bottom: -4px;
  width: 204px;
}

.service-detail__block .charge p.lead-text{
  text-align: left;
}

.block-tbl-base{
  width: 100%;
  margin: 30px 0 0;
  letter-spacing: .04em;
}
.block-tbl-base th{
  width: 350px;
  padding: 30px 0 30px 40px;
  background: #E5E5E5;
  color: #272727;
  font-size: 20px;
  font-weight: 700;
  text-align: left;
  vertical-align: middle;
}
.block-tbl-base tr:nth-child(n + 2) th{
  border-top: 1px solid #fff;
}
.block-tbl-base td{
  padding: 25px 40px;
  border: 1px solid #E3E3E3;
  text-align: left;
  vertical-align: middle;
}
.block-tbl-base + .note{
  margin-top: 10px !important;
}

.charge-text__wrap,
.charge-text__wrap-detail{
  display: flex;
  align-items: center;
  gap: 6px;
}
.charge-text__wrap + .charge-text__wrap{
  margin-top: 8px;
}
.service-detail__block p.charge-text{
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}
.service-detail__block p.charge-text span{
  margin: 0 5px 0 0;
  font-family: 'Lato', 'Noto Sans JP', Helvetica, Neue Haas Grotesk, Arial;
  font-size: 32px;
  font-weight: 900;
}
.service-detail__block p.charge-text--fee span,
.service-detail__block p.charge-text--time span{
  font-size: 24px;
}
.service-detail__block p.charge-text--time span{
  margin: 0 5px 0 0;
}
.service-detail__block p.charge-text--s{
  font-size: 13px;
  font-weight: normal;
}
.service-detail__block p.charge-text--s span{
  margin: 0 5px;
  font-size: 20px;
}
.service-detail__block p.charge-text--m{
  font-size: 16px;
}
.service-detail__block p.charge-text--l{
  font-size: 20px;
}

@media only screen and (max-width: 768px) {
  .sub-heading,
  .bootstrap h2.sub-heading,
  .bootstrap h3.sub-heading{
    margin: 80px 0 40px;
    padding: 0 0 18px;
    font-size: 32px;
  }

  .lead-text + .left-border__heading{
    margin-top: 30px;
  }

  .block-tbl-base,
  .block-tbl-base tbody,
  .block-tbl-base tr,
  .block-tbl-base th,
  .block-tbl-base td{
    display: block;
    width: 100%;
  }

  .flex-wrap--sp{
    flex-wrap: wrap;
  }

  .flex-wrap--sp .charge-text--m{
    width: 100%;
    margin: 0 0 5px !important;
  }

  .charge-text__wrap + .charge-text__wrap{
    margin-top: 18px;
  }

  .charge-text__wrap--total-discount{
    align-items: flex-start;
  }
  .charge-text__wrap--total-discount > p{
    margin-top: 5px;
  }
  .charge-text__wrap-detail{
    display: block;
  }

}


/* ご利用開始までの流れ */
.flow.content-block{
  margin: 82px 0 0;
}
.step-list{
  display: flex;
  gap: 50px;
}
.step-item{
  position: relative;
  width: calc((100% - 100px) / 3);
  padding: 18px 14px 24px;
  border: 8px solid #FFEAE9;
  border-radius: 20px;
  text-align: center;
}
.step-item:nth-child(n + 2)::before{
  content: "";
  position: absolute;
  top: 50%;
  left: -42px;
  transform: translateY(-50%);
  display: inline-block;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 20px solid #7D7D7D;
}
.service-detail__block p.step-step{
  display: inline-block;
  margin: 0;
  padding: 10px 30px;
  border-radius: 100vh;
  background: #BC2739;
  color: #fff;
  font-family: 'Lato', 'Noto Sans JP', Helvetica, Neue Haas Grotesk, Arial;
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
}
.step-step span{
  display: inline-block;
  margin-left: 4px;
  font-size: 29px;
}
.step-title{
  margin: 14px 0 0 !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
}
.step-image{
  display: block;
  width: 269px;
  margin: -6px auto 0;
}
.service-detail__block p.step-text{
  margin: -8px 0 0;
  font-size: 16px;
  text-align: left;
  line-height: 1.5;
}

.step-item--01 .step-image{
  margin-top: 0px;
}
.service-detail__block .step-item--01 p.step-text{
  margin-top: 20px;
}
.step-item--03 .step-image{
  width: 293px;
  margin: 14px auto 20px;
}

.step-list + .left-border__heading{
  margin-top: 70px!important;
}
@media only screen and (max-width: 768px) {
  .step-list{
    flex-direction: column;
  }
  .step-item{
    width: 100%;
    padding: 18px 14px 24px;
  }
  h3.step-title{
    display: block;
    min-height: auto;
    padding: 0;
  }
  .step-image{
    width: 76.5%;
    margin-top: -6px;
  }

  .step-item:nth-child(n + 2)::before{
    border-top: 20px solid #7D7D7D;
    border-right: 20px solid transparent;
    border-left: 20px solid transparent;
    left: 50%;
    transform: translateX(-50%);
    border-bottom: none;
    top: -42px;
  }
}

/* ご利用までの詳細なお手続きについて */
.accordion-heading{
  cursor: pointer;
  position: relative;
  transition: all 0.25s;
}
.accordion-heading:after{
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  bottom: auto;
  transform: translateY(-50%);
  display: inline-block!important;
  width: 16px;
  height: 16px;
  border: none;
  background: url(/sites/default/files/media/service/homedenwa/image/icon_plus.webp) no-repeat center / 100%;
}
.accordion-heading.is-active::after{
  background: url(/sites/default/files/media/service/homedenwa/image/icon_minus.webp) no-repeat center / 100%;
}
@media only screen and (max-width: 768px) {
  .accordion-heading{
    padding-right: 38px;
  }
}
.accordion-body{
  margin: 30px 0 0;
  padding: 0;
}
.flow-item{
  display: flex;
}
.flow-item:nth-child(n + 2){
  margin-top: 22px;
}
.flow-heading{
  width: 350px;
}
.flow-heading__inner{
  position: relative;
  min-height: 68px;
  height: calc(100% - 20px);
  padding: 16px;
  background: #F3F3F3;
  text-align: center;
}
.flow-heading__inner::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: -19px;
  display: inline-block;
  border-top: 20px solid #F3F3F3;
  border-left: 175px solid transparent;
  border-right: 175px solid transparent;
}
.flow-item:last-of-type .flow-heading__inner{
  height: 100%;
}
.flow-item:last-of-type .flow-heading__inner::after{
  display: none;
}
.service-detail__block p.flow-num{
  margin: 0;
  color: #BC2739;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}
.flow-title{
  margin: 5px 0 0 !important;
  padding: 0;
  border: none;
  font-weight: 600 !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}
.flow-body{
  width: calc(100% - 350px);
  padding: 10px 20px;
  border-top: 1px solid #E3E3E3;
}
.flow-text,
.service-detail__block p.flow-text{
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
}
.flow-text + .flow-text{
  margin-top: 30px;
}
.service-detail__block p.flow-label{
  display: inline-block;
  margin: 0;
  padding: 9px;
  background: #7D7D7D;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
}
.flow-text +  p.flow-label{
  margin-top: 24px;
}
.flow-list .dot-list{
  margin-top: 2px !important;
}
.flow-list .dot-list__item{
  padding-left: 18px;
  font-size: 14px;
}
.flow-list .dot-list__item + .dot-list__item{
  margin-top: 8px;
}
.flow-list .dot-list__item::before{
  left: 2px;
}
.dot-list + .flow-text,
.note__item + .flow-text{
  margin-top: 26px!important;
}
.dot-list + .note__item{
  margin-top: 3px;
}
.service-detail__block p.flow-point{
  margin: 2px 0 0;
  color: #D17D7D;
  font-size: 16px;
  font-weight: bold;
}
.flow-text + .flow-point{
  margin-top: 10px!important;
}
.flow-body .note{
  margin-top: 5px!important;
}
.flow-body .note__item + .note__item{
  margin-top: 8px;
}
@media only screen and (max-width: 768px) {
  .flow-heading{
    width: 34vw;
  }
  .flow-body{
    width: calc(100% - 34vw);
    padding: 10px;
  }
  .flow-heading__inner::after{
    border-top: 20px solid #F3F3F3;
    border-left: 17vw solid transparent;
    border-right: 17vw solid transparent;
  }

  .flow-item:last-of-type .flow-heading__inner{
    padding: 16px 12px;
  }

  .service-detail__block p.flow-label{
    padding: 8px 9px;
    line-height: 1.4;
  }
}

/* 製品仕様 */
.spec.content-block{
  margin: 116px 0 0;
}
.tbl-section th{
  width: 350px;
  padding: 7px 20px;
  border: 1px solid #E3E3E3;
  background: #E5E5E5;
  color: #272727;
  font-weight: bold;
  text-align: left;
}
.tbl-section tr:not(:first-of-type) th,
.tbl-section tr:not(:last-of-type) th{
  border-top: 2px solid #fff;
  border-bottom: 2px solid #fff;
}
.tbl-section tr:first-of-type th{
  border-bottom: 2px solid #fff;
}
.tbl-section tr:last-of-type th{
  border-top: 2px solid #fff;
}

.tbl-section__th{
  display: flex;
  align-items: flex-end;
}
.tbl-section td{
  padding: 10px 18px;
}
.service-detail__block p.tbl-section__text{
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
}
.service-detail__block p.tbl-section__atten{
  font-size: 14px;
}
@media only screen and (max-width: 768px) {
  .spec.content-block{
    margin-top: 80px;
  }

  .tbl-section th{
    width: 34.1vw;
    padding: 10px;
  }
  .tbl-section__th{
    flex-wrap: wrap;
  }

  .tbl-section td{
    padding: 10px 16px;
  }
  .service-detail__block p.tbl-section__text{
    line-height: 1.75;
  }
}



/* よくあるご質問 */
.faq-list > li{
  border: none;
}
.faq-answer__block p,
.faq-answer__block li{
  font-size: 16px;
  margin-bottom: 0;
}


/* 注意事項 */
.attention .note + p{
  margin: 30px 0 0;
}
.attention .note__item{
  line-height: 1.68;
}
.attention .dot-list{
  margin: 6px 0 0 !important;
}
.attention .dot-list__item{
  padding-left: 17px;
  font-size: 14px;
}
.attention .dot-list__item::before{
  top: .5em;
  left: 0;
  width: 8px;
  height: 8px;
}
.attention .dot-list__item + .dot-list__item{
  margin-top: 15px;
}
.attention .dot-list + p{
  margin-top: 10px;
}

.attention .left-border__heading{
  margin-top: 34px;
}
.attention .left-border__heading + p{
  margin-top: 30px;
}

/* 位置情報取得・利用に関する同意 */
.border-box{
  margin: 22px 0 0;
  padding: 30px;
  border-radius: 10px;
}
.border-box--blue{
  border: 2px solid #193775;
}
.border-box .left-border__heading{
  margin: 20px 0 0!important;
}
.border-box .dot-list{
  margin: 10px 0 0 !important;
}
.border-box .dot-list__item + .dot-list__item{
  margin-top: 10px;
}
.border-box .dot-list__item p{
  margin: 0;
  font-size: 14px;
}
@media only screen and (max-width: 768px) {
  .attention .left-border__heading + p{
    font-size: 18px;
    line-height: 1.95;
  }
}


/* フッター */
.footer-sitemap__block--col2 .sitemap-list__item{
  margin: 0px 0 16px;
}
.footer-sitemap .sitemap-list--col1 .sitemap-list__item {
  margin-right: 24px;
}
