html,body{
  font-family: "Noto Sans JP", "Hiragino Sans" , "ヒラギノ角ゴ ProN", Hiragino Kaku Gothic ProN, "メイリオ", Meiryo, "游ゴシック Medium", YuGothic, YuGothicM, sans-serif;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #3C3A39;
  line-height: 1.7;
}
a{
  color: #3C3A39;
  transition: opacity 0.3s, color 0.3s;
}
a:hover{ opacity: 0.7; }
a svg path{
  transition: fill 0.3s, stroke 0.3s;
}
img,picture{
	max-width: 100%;
	display: block;
}
.overflow{ overflow: hidden; }

.bl{ color: #00305B; }
.ye{ color: #FFE100; }
.re{ color: #DA3A41; }
.wh{ color: #fff; }

.bg-gr{ background: #F6F7F9; }
.bg-ye{
  background: #FFE100;
  color: #00305B;
}
.bg-bl{
  background: #00305B;
  color: #fff;
}

.marker-s{ background: linear-gradient(to bottom,transparent 60%,#FFE100 60%); }
.marker{ background: #FFE100; }

@media (min-width: 769px) {
    a[href^="tel:"] {
        pointer-events: none;
    }
}


#wrapper{
  padding-top: 15rem;
}
.anchor{
  padding-top: 15rem;
  margin-top: -15rem;
}

.nav{
  width: 100%;
  height: 15rem;
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;

  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.nav a.logo{
  display: block;
  width: 28.4rem;
  margin: 0 auto 0 3rem;
  transform: translateY(-5%);
}
.nav ul.nav-li{
  display: flex;
  margin-right: 3rem;
  gap: 1em;
  font-size: 2rem;
  font-weight: 700;
}
.nav ul.btn-li{
  display: flex;
  height: calc(100% - 1.6rem);
  gap: 0.8rem;
  margin-right: 0.8rem;
}
.nav ul.btn-li li{
  width: 31rem;
  height: 100%;
}
.nav ul.btn-li li a{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  border-radius: 0.4rem;
}
.nav ul.btn-li li a.tel-btn{
  background: #DA533A;
}
.nav ul.btn-li li a.line-btn{
  background: #1EAD58;
}
.nav ul.btn-li li a.tel-btn big{
  font-size: 2em;
  line-height: 1.25;
}
.nav ul.btn-li li a.tel-btn big img{
  display: inline-block;
  width: 0.9em;
  margin-right: 0.1em;
  vertical-align: -0.08em;
}
.nav ul.btn-li li a.tel-btn small{
  font-weight: 500;
}
.nav ul.btn-li li a.line-btn big{
  font-size: 1.5em;
  line-height: 1.6;
}
.nav ul.btn-li li a.line-btn big img{
  display: inline-block;
  width: 1.29em;
  margin-right: 0.3em;
  vertical-align: -0.3em;
}
@media screen and (min-width: 769px) and (max-width: 1900px){
#wrapper{
  padding-top: 7.89vw;
}
.anchor{
  padding-top: 7.89vw;
  margin-top: -7.89vw;
}
.nav{
  height: 7.89vw;
}
.nav a.logo{
  width: 14.95vw;
  margin: 0 auto 0 1.58vw;
}
.nav ul.nav-li{
  margin-right: 1.58vw;
  font-size: min(1.13vw,2rem);
}
.nav ul.btn-li li{
  width: 15vw;
}
.nav ul.btn-li li a{
  font-size: 0.84vw;
}
}


section{
  padding: 6rem 0 7rem;
}


.content{
  position: relative;
  z-index: 1;
}
.w1038{
  width: 103.8rem;
  max-width: 100%;
  margin: 0 auto;
}


.ttl-1,
.ttl-1-btm{
  color: #00305B;
  font-weight: 700;
  text-align: center;
  margin-bottom: 7rem;
}
.ttl-1{
  font-size: 4.6rem;
}
.ttl-1:has( + .ttl-1-btm){
  margin-bottom: 0.15em;
}
.ttl-1-btm{
  font-size: 1.8rem;
}
.ttl-1.wh,
.ttl-1-btm.wh{
  color: #fff;
}


.balloon::before,
.balloon::after{
  font-size: 80%;
}
.balloon::before{
  content: "＼";
  margin-right: 0.2em;
}
.balloon::after{
  content: "／";
  margin-left: 0.2em;
}


.arrow-btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 47.6rem;
  max-width: 100%;
  height: 8rem;
  border-radius: 1rem;
  font-size: 2.4rem;
  padding-right: 1em;
  text-align: center;
  font-weight: 700;
  position: relative;
}
.arrow-btn::before{
  content: "";
  display: block;
  width: 2rem;
  height: 100%;
  background: url(../images/ico-arrow_wh.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  right: 2rem;
  top: 0;
}
.arrow-btn.bg-ye::before{
  background: url(../images/ico-arrow.svg) center center no-repeat;
  background-size: contain;
}


.fv{
  background: url(../images/fv-bg_250707.jpg) center center no-repeat;
  background-size: cover;
  aspect-ratio: 100 / 57;
  width: 100%;
  max-height: 70rem;
  padding-top: 6rem;
  position: relative;
  margin-bottom: 26.8rem;
}
.fv::before{
  content: "";
  display: block;
  width: 100%;
  height: 26.8rem;
  background: #F6F7F9;
  position: absolute;
  left: 0;
  bottom: -26.8rem;
  z-index: 0;
}
.fv h1 img{
  width: 82.5rem;
  max-width: 66vw;
  margin: 0 auto;
}
.fv .content{
  height: 100%;
}
.contact-wrap{
  display: flex;
  justify-content: space-between;
  gap: 3rem;
}
.fv .contact-wrap{
  width: calc(100% - 10rem);
  position: absolute;
  left: 5rem;
  bottom: -18.8rem;
}
.contact-wrap .tel-box,
.contact-wrap .line-box{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 57.5rem;
  max-width: 100%;
  padding: 5rem 0;
  background: #fff;
  border-radius: 1.6rem;
  text-align: center;
  box-shadow: 0 0.3rem 1.2rem rgba(0, 0, 0, 0.16);
  position: relative;
  container-type: inline-size;
}
.contact-wrap .tel-box p,
.contact-wrap .line-box p{
  font-size: 3.2rem;
  font-weight: 700;
}
.contact-wrap .tel-box a,
.cta-box .btn-wrap a.tel-btn big{
  font-size: 4.7rem;
  line-height: 1.2;
  color: #DA533A;
  font-weight: 700;
}
.contact-wrap .tel-box a img,
.cta-box .btn-wrap a.tel-btn big img{
  display: inline-block;
  width: 1.3em;
  margin-right: 0.25em;
  vertical-align: -0.05em;
}
.contact-wrap .tel-box small,
.cta-box .btn-wrap a.tel-btn small{
  display: block;
  font-size: 2rem;
}
.contact-wrap .line-box span{
  width: calc(100% - 8rem);
  background: #3C3A39;
  color: #F6F7F9;
  line-height: 2.46em;
  border-radius: 1.23em;
  font-size: 4.52cqw;
  font-weight: 700;
  position: absolute;
  top: -1.23em;
  left: 50%;
  transform: translateX(-50%);
}
.contact-wrap .line-box .line-btn{
  margin: 1rem auto 0;
}
.contact-wrap .line-box .line-btn,
.cta-box .line-btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 45rem;
  max-width: calc(100% - 6rem);
  line-height: 8rem;
  border-radius: 1rem;
  background: #1DAD58;
  color: #fff;
  font-size: 2.4rem;
  text-align: center;
  font-weight: 700;
}
.contact-wrap .line-box .line-btn img,
.cta-box .line-btn img{
  width: 1.8em;
  margin-right: 0.4em;
}


.worries{
  padding: 0;
}
.worries .wrap-1{
  background: url(../images/worries-bg.jpg) center center no-repeat;
  background-size: cover;
  padding: 6rem 0 15rem;
}
.worries .wrap-1 ul.check-li li{
  display: block;
  background: #F6F7F9;
  border-radius: 0.8rem;
  padding: 3rem 15rem 3rem 4rem;
  position: relative;
}
.worries .wrap-1 ul.check-li li::before{
  content: "";
  display: block;
  width: 3.7rem;
  height: 2.5rem;
  background: #F6F7F9;
  position: absolute;
  bottom: -2.4rem;
}
.worries .wrap-1 ul.check-li li:nth-child(2n - 1)::before{
  clip-path: polygon(0 0, 100% 0, 65% 100%);
  left: 50%;
  margin-left: -36rem;
}
.worries .wrap-1 ul.check-li li:nth-child(2n)::before{
  clip-path: polygon(0 0, 100% 0, 35% 100%);
  right: 50%;
  margin-right: -36rem;
}
.worries .wrap-1 ul.check-li li + li{
  margin-top: 4rem;
}
.worries .wrap-1 ul.check-li li div{
  max-width: 99rem;
  margin-left: auto;
  font-size: min(2.1vw,2.8rem);
  line-height: 1.5;
  font-weight: 700;
  padding-left: 5rem;
  position: relative;
}
.worries .wrap-1 ul.check-li li div::before{
  content: "";
  display: block;
  width: 3.5rem;
  height: 3.5rem;
  background: url(../images/ico-check.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: 0;
  top: 0.2em;
}
.worries img.worries-img{
  width: 26.9rem;
  position: absolute;
  bottom: -10rem;
  right: -7rem;
}

.worries .wrap-2{
  padding: 9rem 0 7rem;
  clip-path: polygon(50% 5rem, calc(50% + 8.4rem) 0, 100% 0, 100% 100%, 0 100%, 0 0, calc(50% - 8.4rem) 0);
  margin-top: -5rem;
}
.worries .wrap-2 p{
  font-size: min(3.2vw,4rem);
  text-align: center;
  line-height: 1.5;
  font-weight: 700;
}
.worries .wrap-2 p small{
  font-size: 80%;
}


.promises ul.promises-li{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  column-gap: 2.7rem;
  row-gap: 3.5rem;
}
.promises ul.promises-li li{
  display: block;
  width: calc(100% / 3 - 1.8rem);
  border-radius: 0.8rem;
  padding: 3.5rem 3.18% 3rem;
  position: relative;
}
.promises ul.promises-li li .num{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 7.5rem;
  height: 7.5rem;
  border-radius: 0.8rem 0 0.8rem 0;
  font-size: 2.4rem;
  font-weight: 700;
  position: absolute;
  left: 0;
  top: 0;
}
.promises ul.promises-li li img.img{
  width: 18rem;
  border-radius: 100%;
  margin: 0 auto;
}
.promises ul.promises-li li h3{
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 3em;
  font-size: 2.4rem;
  text-align: center;
  margin: 1.2rem 0;
}

.detail-box{
  margin-top: 8rem;
  border-radius: 1.6rem;
  border: 2px solid #CCCCCC;
  padding: 5rem 4rem 6.5rem;
}
.detail-box .ttl{
  font-size: 3.2rem;
  text-align: center;
  margin-bottom: 5rem;
}
.detail-box .btn-wrap{
  display: flex;
  justify-content: center;
  gap: 2.4rem;
}


.case h2{
  font-size: 4.6rem;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 3rem;
}
.case h2 big{
  font-size: 165%;
  margin: 0 0.1em;
}
.case-swiper{
  max-width: 109.6rem;
  margin: 0 auto;
  overflow: unset;
}
.case-swiper .swiper-slide{
  max-width: 96rem;
  padding: 3rem;
  border-radius: 0.8rem;
  margin: 0 7.4rem;
  display: grid;
  grid-template-columns: 40rem 1fr;
  gap: 3rem;
}
.case-swiper .swiper-slide .img .before,
.case-swiper .swiper-slide .img .after{
  position: relative;
}
.case-swiper .swiper-slide .img .before img,
.case-swiper .swiper-slide .img .after img{
  border-radius: 0.8rem;
}
.case-swiper .swiper-slide .img .before::before,
.case-swiper .swiper-slide .img .after::before{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 12.4rem;
  height: 6.3rem;
  border-radius: 0.8rem 0 0.8rem 0;
  font-size: 2.4rem;
  font-weight: 700;
  position: absolute;
  left: 0;
  top: 0;
}
.case-swiper .swiper-slide .img .before::before{
  content: "Before";
  background: #00305B;
  color: #fff;
}
.case-swiper .swiper-slide .img .after::before{
  content: "After";
  background: #FFE100;
  color: #00305B;
}
.case-swiper .swiper-slide .img .after{
  margin-top: 3.6rem;
}
.case-swiper .swiper-slide .img .after::after{
  content: "";
  display: block;
  width: 2rem;
  height: 1.4rem;
  background: #00305B;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  top: -2.5rem;
  left: 50%;
  transform: translateX(-50%);
}
.case-swiper .swiper-slide .txt h3{
  font-size: 2.4rem;
  margin-bottom: 0.1em;
}
.case-swiper .swiper-slide .txt h4{
  font-size: 1.8rem;
  margin: 0.8em 0 0.5em;
}
.case-swiper .swiper-slide .txt p + p{
  margin-top: 1em;
}
.case-swiper .swiper-button-prev{
  left: -4rem;
}
.case-swiper .swiper-button-next{
  right: -4rem;
}

.swiper-button-prev,
.swiper-button-next{
  width: min(5.09vw,6.9rem);
  height: min(5.09vw,6.9rem);
}
.swiper-button-prev::after,
.swiper-button-next::after{
  content: none;
}
.swiper-button-prev{
  background: url(../images/swiper-prev.svg) center center no-repeat;
  background-size: contain;
}
.swiper-button-next{
  background: url(../images/swiper-next.svg) center center no-repeat;
  background-size: contain;
}
.swiper-pagination{
  display: flex;
  justify-content: center;
  position: unset;
  margin-top: 2.8rem;
}
.swiper-pagination-bullet{
  width: 1.4rem;
  height: 1.4rem;
  background: #CCCCCC;
  opacity: 1;
  margin: 0 1.6rem !important;
}
.swiper-pagination-bullet-active{
  background: #00305B;
}


.cta-box{
  margin-top: 8rem;
  border-radius: 1.6rem;
  box-shadow: 0 0.3rem 1.2rem rgba(0, 0, 0, 0.16);
  padding: 5rem 4rem 6.5rem;
}
.cta-box .ttl{
  font-size: min(2.7vw,3.2rem);
  text-align: center;
  margin-bottom: 3rem;
}
.cta-box .btn-wrap{
  display: flex;
  justify-content: space-around;
  text-align: center;
  max-width: 110rem;
  margin: 0 auto;
}
.cta-box .arrow-btn{
  margin: 0 auto 7rem;
}


.staff ul.staff-li{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4rem;
}
.staff ul.staff-li li{
  display: block;
}
.staff ul.staff-li li .img{
  border-radius: 0.8rem 0.8rem 0 0;
  overflow: hidden;
  margin-bottom: 2rem;
  position: relative;
}
.staff ul.staff-li li h3{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 20rem;
  height: 7.5rem;
  border-radius: 0.8rem 0 0.8rem 0;
  background: #00305B;
  color: #fff;
  font-size: 2.4rem;
  font-weight: 700;
  position: absolute;
  left: 0;
  top: 0;
}


.danger{
  background: url(../images/cta-bg2.png) center bottom no-repeat #00305B;
  background-size: 100% auto;
  position: relative;
}
.danger .box{
  background: #fff;
  padding: 3rem 4rem 4.5rem;
  border-radius: 0.8rem;
}
.danger .box h3{
  font-size: 3.6rem;
  text-align: center;
  margin-bottom: 3rem;
}
.danger .box ul{
  width: fit-content;
  margin: 0 auto;
}
.danger .box ul li{
  display: block;
  padding: 0 0.5em 0 5rem;
  font-size: 3rem;
  font-weight: 700;
  position: relative;
}
.danger .box ul li::before{
  content: "";
  display: block;
  width: 3.3rem;
  height: 3rem;
  background: url(../images/ico-attention.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: 1.1rem;
  top: 0.35em;
}
.danger .box ul li + li{
  margin-top: 1rem;
}
.danger img.arrow{
  width: 18.9rem;
  margin: 4.5rem auto 3rem;
}
.danger img.arrow + p{
  text-align: center;
  font-size: 3.6rem;
  font-weight: 700;
}
.danger img.arrow + p big{
  font-size: 117%;
}


ul.n-ul > li{
  display: block;
  position: relative;
  line-height: 1.5;
  padding-left: 0.9em;
}
ul.n-ul > li + li{
  margin-top: 0.3em;
}
ul.n-ul > li::before{
  content: "";
  display: block;
  width: 0.5em;
  height: 0.5em;
  border-radius: 100%;
  background: #00305B;
  position: absolute;
  left: 0;
  top: 0.55em;
}


.darkness .box-1,
.darkness .box-2{
  border-radius: 0.8rem;
  padding: 3rem 4rem;
}
.darkness .box-1{
  border: 1rem solid #CCCCCD;
}
.darkness .box-2{
  background: #0F3056;
  padding-bottom: 5.5rem;
}
.darkness .box-1 h3,
.darkness .box-2 h3{
  font-size: 3.6rem;
  text-align: center;
  margin-bottom: 3rem;
}
.darkness .box-2 h3 big{
  font-size: 4.2rem;
}
.darkness .box-1 ul.n-ul > li{
  font-size: min(2.2vw,2.8rem);
  font-weight: 700;
}
.darkness img.arrow{
  width: 18.9rem;
  margin: 3.5rem auto;
}
.darkness .box-2 ul.check-li > li{
  display: block;
  background: #fff;
  padding: 2rem 3rem;
}
.darkness .box-2 ul.check-li > li + li{
  margin-top: 1.6rem;
}
.darkness .box-2 ul.check-li > li h4{
  font-size: 3rem;
  padding-left: 5rem;
  position: relative;
  margin-bottom: 0.5em;
}
.darkness .box-2 ul.check-li > li h4::before{
  content: "";
  display: block;
  width: 3.5rem;
  height: 3.5rem;
  background: url(../images/ico-check_ye.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: 0;
  top: 0.2em;
}
.darkness .box-2 ul.n-ul > li{
  font-size: 2.4rem;
}


.flow ul.flow-li li{
  min-height: 9rem;
  display: grid;
  grid-template-columns: 11rem 1fr 1fr;
  align-items: center;
  gap: 3rem;
  padding-right: 3rem;
  border-radius: 0.8rem;
  position: relative;
}
.flow ul.flow-li li + li{
  margin-top: 4rem;
}
.flow ul.flow-li li + li::after{
  content: "";
  display: block;
  width: 4.5rem;
  height: 1.6rem;
  background: #00305B;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  top: -2.8rem;
  left: 50%;
  transform: translateX(-50%);
}
.flow ul.flow-li li .num{
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-weight: 700;
  border-radius: 0.8rem 0 0 0.8rem;
}
.flow ul.flow-li li .num big{
  font-size: 3.8rem;
  font-weight: 500;
}
.flow ul.flow-li li h3{
  font-size: min(2.4vw,3rem);
}
.flow ul.flow-li li p{
  font-size: 1.8rem;
}


.voice-swiper-wrap{
  width: 144rem;
  max-width: calc(100% - 2rem);
  margin: 0 auto;
  position: relative;
}
.voice-swiper{
  width: 125.6rem;
  max-width: calc(100% - 8rem);
  margin: 0 auto;
}
.voice-swiper .swiper-slide{
  height: auto;
  background: #fff;
  border-radius: 0.8rem;
  overflow: hidden;
}
.voice-swiper .swiper-slide img.img{
  width: 100%;
  aspect-ratio: 800 / 508;
  object-fit: cover;
}
.voice-swiper .swiper-slide .txt{
  display: block;
  padding: 2rem 2rem 2.5rem;
}
.voice-swiper .swiper-slide .txt h3,
.voice-swiper .swiper-slide .txt p{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.voice-swiper .swiper-slide .txt h3{
  font-size: 2.3rem;
  margin-bottom: 0.7em;
  -webkit-line-clamp: 1;
}
.voice-swiper .swiper-slide .txt p{
  -webkit-line-clamp: 6;
}
.voice-swiper-button-prev,
.voice-swiper-button-next{
  width: min(4.44vw,6.4rem);
  height: min(4.44vw,6.4rem);
}
.voice-swiper-button-prev{
  left: 0;
}
.voice-swiper-button-next{
  right: 0;
}
.voice-swiper-button-prev{
  background: url(../images/swiper-prev_bl.svg) center center no-repeat;
  background-size: contain;
}
.voice-swiper-button-next{
  background: url(../images/swiper-next_bl.svg) center center no-repeat;
  background-size: contain;
}


.modal{
  display: none;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
}
.modal_bg{
  background: rgba(0,0,0,0.5);
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1;

  overflow-y: scroll;
  overscroll-behavior: contain;
  -ms-overflow-style: none; /* バー非表示 IE・Edge用 */
  scrollbar-width: none; /* バー非表示 Firefox用 */
}
.modal_content{
  background: #fff;
  width: 68rem;
  max-width: 90%;
  max-height: 90%;
  border-radius: 0.8rem;
  overflow: hidden;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: 2;
  
  overflow-y: scroll;
  overscroll-behavior: contain;
  -ms-overflow-style: none; /* バー非表示 IE・Edge用 */
  scrollbar-width: none; /* バー非表示 Firefox用 */
}
.modal_bg::before,
.modal_content::before{
  content: "";
  display: block;
  width: 1px;
  height: calc(100% + 1px);
  position: absolute;
  left: 0;
  top: 0;
}
/* バー非表示 Chrome・Safari用 */
.modal_bg::-webkit-scrollbar,
.modal_content::-webkit-scrollbar{
  display: none;
}
.modal_content a.js-modal-close{
  display: block;
  width: 3.3rem;
  position: absolute;
  right: 1.6rem;
  top: 1.6rem;
}
.modal_content .img-wrap{
  display: flex;
}
.modal_content .img-wrap img{
  width: 100%;
  height: 26rem;
  object-fit: cover;
}
.modal_content .inner{
  padding: 2rem 2.5rem 3rem;
}
.modal_content .inner h3{
  font-size: 2.4rem;
  margin-bottom: 0.7em;
}
.modal_content .inner p + p{
  margin-top: 1em;
}


.faq dl.faq-dl dt,
.faq dl.faq-dl dd{
  padding: 2.4rem 4rem;
}
.faq dl.faq-dl dt{
  font-size: 2.4rem;
  font-weight: 700;
  border-radius: 0.8rem;
}
.faq dl.faq-dl .w1038{
  padding-left: 5rem;
  position: relative;
}
.faq dl.faq-dl .w1038::before{
  display: block;
  font-size: 2.6rem;
  position: absolute;
  left: 0;
}
.faq dl.faq-dl dt .w1038::before{
  content: "Q";
  color: #00305B;
  font-weight: 700;
  top: -0.15em;
}
.faq dl.faq-dl dd .w1038::before{
  content: "A";
  top: -0.35em;
}

.ceo{
  display: grid;
  grid-template-columns: 52.8rem 1fr;
  gap: 4rem;
  margin-top: 8rem;
}
.ceo img.img{
  border-radius: 0.8rem;
}
.ceo .txt p + p{
  margin-top: 1.5em;
}


.cta{
  padding: 0;
}
.cta .wrap-1{
  background: url(../images/cta-bg2.png) center bottom no-repeat #00305B;
  background-size: 100% auto;
  text-align: center;
  position: relative;
}
.cta .wrap-1 .content{
  padding-top: 6rem;
  padding-bottom: 26rem;
}
.cta .wrap-1::before{
  content: "";
  display: block;
  width: 149.8rem;
  max-width: 120%;
  aspect-ratio: 2996 / 864;
  background: url(../images/cta-bg1.png) center center no-repeat;
  background-size: contain;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
.cta .wrap-1 h2{
  font-size: min(3.5vw,4.6rem);
  margin-bottom: 6rem;
}
.cta .wrap-1 h2 big{
  font-size: 122%;
}
.cta .wrap-1 ul.point-li{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
.cta .wrap-1 ul.point-li li{
  display: block;
  background: #FFE100;
  color: #3C3A39;
  border-radius: 0.8rem;
  padding: 2rem;
  font-weight: 700;
  position: relative;
}
.cta .wrap-1 ul.point-li li::before{
  content: "";
  display: block;
  width: 5.7rem;
  height: 100%;
  background: url(../images/cta-check.svg) center center no-repeat;
  background-size: contain;
  position: absolute;
  left: 2rem;
  top: 0;
  z-index: 0;
}
.cta .wrap-1 ul.point-li li .num{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 10.6rem;
  height: 3.2rem;
  border-radius: 1.6rem;
  background: #DA533A;
  color: #fff;
  font-size: 1.4rem;
  position: absolute;
  top: -1.6rem;
  left: 50%;
  transform: translateX(-50%);
}
.cta .wrap-1 ul.point-li li big{
  font-size: 3rem;
  position: relative;
  z-index: 1;
}
.cta .wrap-1 .txt-1,
.cta .wrap-1 .txt-2,
.cta .wrap-1 .txt-3{
  font-weight: 700;
  line-height: 1.6;
}
.cta .wrap-1 .txt-1{
  font-size: 3.6rem;
  margin-top: 7rem;
}
.cta .wrap-1 .txt-2{
  font-size: 3.2rem;
}
.cta .wrap-1 .txt-3{
  font-size: 4.6rem;
}
.cta .contact-wrap{
  width: calc(100% - 10rem);
  color: #3C3A39;
  position: absolute;
  left: 5rem;
  bottom: -12.4rem;
}
.cta .wrap-2{
  padding: 20rem 0 7rem;
  text-align: center;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.6;
}
.cta .wrap-2 .marker{
  display: inline-block;
  margin: 0 0 0 0.2em;
  padding: 0 0.3em;
  border-radius: 0.8rem;
}


footer{
  padding: 7.5rem 0 10rem;
}
footer .content{
  display: grid;
}
footer .wrap-1{ grid-area: 1 / 1 / 2 / 2; }
footer .wrap-2{ grid-area: 1 / 2 / 3 / 3; }
footer .wrap-3{ grid-area: 2 / 1 / 3 / 2; }

footer img.logo{
  width: 28.4rem;
  margin-bottom: 2rem;
}
footer ul.f-nav-1,
footer ul.f-nav-2{
  max-width: 50rem;
  margin-left: auto;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  row-gap: 1em;
}
footer ul.f-nav-1{
  column-gap: 6rem;
  font-size: 2rem;
  font-weight: 700;
}
footer ul.f-nav-2{
  column-gap: 4rem;
}
footer ul.f-nav-1 li,
footer ul.f-nav-2 li{
  display: block;
}
footer ul.f-nav-2{
  margin-top: 5rem;
}
footer ul.certificate-li{
  display: flex;
  gap: 1.6rem;
  margin-top: 3rem;
}
footer ul.certificate-li li{
  display: block;
}
footer ul.certificate-li li.li-1{
  width: 13.3rem;
}
footer ul.certificate-li li.li-2{
  width: 13.5rem;
}
footer ul.certificate-li li p{
  font-size: 1.3rem;
  text-align: center;
  margin-top: 1em;
}




/* ロード画面 */
#loading {
  width: 100%;
  height: 100%;
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
}
#loading img {
  width: 24rem;
}
#loading.loaded {
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s, visibility 1s;
}


/* ページトップ */
#pagetop {
  display: none;
  position: fixed;
  bottom: 1.6rem;
  right: 1.6rem;
  z-index: 997;
}
#pagetop a {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 100%;
  width: 4rem;
  height: 4rem;
  background-color: #00305B;
}
#pagetop a img {
  width: 1.6rem;
  margin-top: -0.2rem;
}




/*　PC
------------------------------------------------------------------------------------------------*/
@media screen and (min-width: 769px){
.sp{ display: none !important; }

html{ font-size: 10px; }
body{ font-size: 1.6rem; }

.content{
  width: 100%;
	max-width: 135.6rem;
  padding: 0 5rem;
	margin: 0 auto;
}




/*　タブレット
------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 1100px){

html{ font-size: 0.9vw; }




}/*　タブレットここまで */
}/*　PCここまで */




/*　スマホ
------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 768px){
.pc{ display: none !important; }

html{ font-size: 2.74vw; }
body{ font-size: 1.4rem; }

.content{
	width: 100%;
	padding: 0 2.5rem;
}


#wrapper{
  padding-top: 5.6rem;
}
.anchor{
  padding-top: 5.6rem;
  margin-top: -5.6rem;
}

.nav{
  height: 5.6rem;
}
.nav a.logo{
  width: 15.3rem;
  margin: 0 auto 0 1.6rem;
  transform: none;
}


#nav-open {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 5.6rem;
  height: 5.6rem;
  cursor: pointer;
  margin-left: auto;
  position: relative;
  z-index: 3;
}
#nav-open span,#nav-open span:before,#nav-open span:after {
  content: "";
  display: block;
  background: #00305B;
  height: 2px;
  border-radius: 1px;
  width: 2.2rem;
  position: absolute;
  transition: .3s ease-in-out;
}
#nav-open span{
  transition: background 0s .15s;
}
#nav-open span:before {
  bottom: 0.7rem;
  transform: rotate(0);
  transition: bottom .15s .15s, transform .15s;
}
#nav-open span:after {
  bottom: -0.7rem;
  transform: rotate(0);
  transition: bottom .15s .15s, transform .15s;
}

#nav-bg {
  width: 100%;
  height: 100%;
  background: #000;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1;

  overflow-y: scroll;
  overscroll-behavior: contain;
  -ms-overflow-style: none; /* バー非表示 IE・Edge用 */
  scrollbar-width: none; /* バー非表示 Firefox用 */

  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}
#nav-content {
  display: block;
  padding: 5.6rem 0 4rem;
  width: 80%;
  height: 100%;
  background: #fff;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 2;

  overflow-y: scroll;
  overscroll-behavior: contain;
  -ms-overflow-style: none; /* バー非表示 IE・Edge用 */
  scrollbar-width: none; /* バー非表示 Firefox用 */

  transform: translateX(100%);
  transition: transform .3s;
}
#nav-bg::before,
#nav-content::before{
  content: "";
  display: block;
  width: 1px;
  height: calc(100% + 1px);
  position: absolute;
  left: 0;
  top: 0;
}
/* バー非表示 Chrome・Safari用 */
#nav-bg::-webkit-scrollbar,
#nav-content::-webkit-scrollbar{
  display: none;
}
#nav-bg.active {
  opacity: 0.3;
  pointer-events: inherit;
}
#nav-content.active {
  transform: translateX(0);
}
#nav-open.active span {
  background: transparent;
}
#nav-open.active span:before {
  bottom: 0;
  transform: rotate(-45deg);
  transition: bottom .15s, transform .15s .15s;
}
#nav-open.active span:after {
  bottom: 0;
  transform: rotate(45deg);
  transition: bottom .15s, transform .15s .15s;
}

#nav-content ul.h-nav{
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.3;
}
#nav-content ul.btn-li{
  flex-direction: column;
  height: unset;
  margin: 3rem 0 0;
}
#nav-content ul.btn-li li{
  width: 100%;
  height: unset;
}
#nav-content ul.btn-li li a{
  height: 8rem;
  font-size: 1.4rem;
}
#nav-content ul.btn-li li a.tel-btn big{
  font-size: 1.9em;
  line-height: 1.1;
}
#nav-content ul.btn-li li a.tel-btn small{
  font-size: 85%;
}
#nav-content ul.btn-li li a.line-btn big{
  font-size: 1.4em;
}


section{
  padding: 4rem 0 5rem;
}


.ttl-1,
.ttl-1-btm{
  margin-bottom: 5rem;
}
.ttl-1{
  font-size: 3.4rem;
  line-height: 1.3;
}
.ttl-1:has( + .ttl-1-btm){
  margin-bottom: 0.3em;
}
.ttl-1-btm{
  font-size: 1.3rem;
}


.balloon{
  position: relative;
  width: fit-content;
  margin: 0 auto;
}
.balloon::before,
.balloon::after{
  position: absolute;
  bottom: 0;
}
.balloon::before{
  left: -1.2em;
}
.balloon::after{
  right: -1.2em;
}


.arrow-btn{
  height: 5rem;
  border-radius: 0.8rem;
  font-size: 1.4rem;
}
.arrow-btn::before{
  width: 0.9rem;
  right: 1rem;
}


.fv{
  background: url(../images/fv-bg_sp_250707.jpg) center top no-repeat #00305B;
  background-size: 100% auto;
  aspect-ratio: unset;
  max-height: unset;
  padding: 2.4rem 0 5rem;
  margin-bottom: 0;
}
.fv::before{
  content: none;
}
.fv h1 img{
  max-width: 100%;
}
.contact-wrap{
  flex-wrap: wrap;
  gap: 4rem;
}
.fv .contact-wrap{
  width: 100%;
  position: unset;
  margin-top: 2rem;
}
.contact-wrap .tel-box,
.contact-wrap .line-box{
  padding: 2.4rem;
  border-radius: 1rem;
}
.contact-wrap .tel-box p,
.contact-wrap .line-box p{
  font-size: 1.6rem;
}
.contact-wrap .tel-box a,
.cta-box .btn-wrap a.tel-btn big{
  font-size: 3rem;
}
.contact-wrap .tel-box small,
.cta-box .btn-wrap a.tel-btn small{
  font-size: 1.2rem;
}
.contact-wrap .line-box span{
  width: calc(100% - 4.8rem);
  line-height: 2.8rem;
  border-radius: 1.4rem;
  font-size: 1.4rem;
}
.contact-wrap .line-box .line-btn,
.cta-box .line-btn{
  max-width: 100%;
  line-height: 4.5rem;
  border-radius: 0.8rem;
  font-size: 1.5rem;
}


.worries .wrap-1{
  background: url(../images/worries-bg_sp.jpg) center center no-repeat;
  background-size: cover;
  padding: 4rem 0 29rem;
}
.worries .wrap-1 ul.check-li li{
  padding: 1rem 1.6rem;
}
.worries .wrap-1 ul.check-li li::before{
  width: 1.9rem;
  height: 1.3rem;
  bottom: -1.2rem;
}
.worries .wrap-1 ul.check-li li:nth-child(2n - 1)::before{
  margin-left: -13.3rem;
}
.worries .wrap-1 ul.check-li li:nth-child(2n)::before{
  margin-right: -13.3rem;
}
.worries .wrap-1 ul.check-li li + li{
  margin-top: 2.2rem;
}
.worries .wrap-1 ul.check-li li div{
  font-size: 1.6rem;
  padding-left: 2.3rem;
}
.worries .wrap-1 ul.check-li li div::before{
  width: 1.8rem;
  height: 1.8rem;
  top: 0.2em;
}
.worries img.worries-img{
  width: 17.8rem;
  bottom: -33rem;
  right: 50%;
  transform: translateX(50%);
  z-index: 0;
}

.worries .wrap-2{
  padding: 5rem 0;
  clip-path: polygon(50% 3rem, calc(50% + 3.3rem) 0, 100% 0, 100% 100%, 0 100%, 0 0, calc(50% - 3.3rem) 0);
  margin-top: -3rem;
  position: relative;
  z-index: 1;
}
.worries .wrap-2 p{
  font-size: 2.4rem;
}
.worries .wrap-2 p small{
  font-size: 100%;
}
.worries .wrap-2 p big{
  display: block;
  font-size: 3rem;
  line-height: 1.4;
  margin-top: 0.1em;
}


.promises ul.promises-li{
  flex-wrap: wrap;
  row-gap: 1rem;
}
.promises ul.promises-li li{
  width: 100%;
  padding: 2.5rem 3rem;
}
.promises ul.promises-li li .num{
  width: 6rem;
  height: 6rem;
  font-size: 1.9rem;
}
.promises ul.promises-li li img.img{
  width: 14.3rem;
}
.promises ul.promises-li li h3{
  min-height: unset;
  font-size: 2rem;
  margin: 0.8em 0 0.7em;
}

.detail-box{
  margin-top: 5rem;
  border-radius: 0.8rem;
  padding: 2.4rem;
}
.detail-box .ttl{
  font-size: 1.6rem;
  margin-bottom: 1.6rem;
}
.detail-box .btn-wrap{
  flex-wrap: wrap;
  gap: 2rem;
}


.case h2{
  font-size: 2.2rem;
  margin-bottom: 4rem;
}
.case-swiper .swiper-slide{
  padding: 1.6rem 1.6rem 2.4rem;
  margin: 0 1.5rem;
  grid-template-columns: 100%;
  gap: 1rem;
}
.case-swiper .swiper-slide .img .before img,
.case-swiper .swiper-slide .img .after img{
  width: 100%;
  height: 14.4rem;
  object-fit: cover;
  border-radius: 0.6rem;
}
.case-swiper .swiper-slide .img .before::before,
.case-swiper .swiper-slide .img .after::before{
  width: 8.6rem;
  height: 3.8rem;
  border-radius: 0.6rem 0 0.6rem 0;
  font-size: 1.5rem;
}
.case-swiper .swiper-slide .img .after{
  margin-top: 2.8rem;
}
.case-swiper .swiper-slide .img .after::after{
  width: 1.8rem;
  height: 1.3rem;
  top: -2rem;
}
.case-swiper .swiper-slide .txt h3{
  font-size: 2rem;
}
.case-swiper .swiper-slide .txt .price{
  font-size: 1.2rem;
}
.case-swiper .swiper-slide .txt h4{
  margin: 0.8em 0 0.5em;
}

.swiper-pagination{
  margin-top: 1.6rem;
}
.swiper-pagination-bullet{
  width: 0.8rem;
  height: 0.8rem;
  margin: 0 0.8rem !important;
}


.cta-box{
  margin-top: 5rem;
  border-radius: 1rem;
  padding: 2.4rem 2.4rem 3rem;
}
.cta-box .ttl{
  font-size: 1.8rem;
  margin-bottom: 1rem;
}
.cta-box .balloon::before,
.cta-box .balloon::after{
  font-size: 110%;
}
.cta-box .btn-wrap{
  flex-wrap: wrap;
  gap: 2rem;
}
.cta-box .arrow-btn{
  margin: 2rem auto 3rem;
}


.staff ul.staff-li{
  grid-template-columns: 100%;
  gap: 1.6rem;
}
.staff ul.staff-li li{
  background: #F6F7F9;
  border-radius: 0.8rem;
}
.staff ul.staff-li li .img{
  margin-bottom: 0;
}
.staff ul.staff-li li .img img{
  width: 100%;
  height: 18.6rem;
  object-fit: cover;
  object-position: center 10%;
}
.staff ul.staff-li li h3{
  width: 11.1rem;
  height: 3.4rem;
  font-size: 1.4rem;
}
.staff ul.staff-li li p{
  padding: 1.6rem;
}


.danger{
  padding-bottom: 6.5rem;
}
.danger .box{
  padding: 2rem 1.6rem 3rem;
}
.danger .box h3{
  font-size: 2.6rem;
  margin-bottom: 2.5rem;
}
.danger .box ul{
  width: 100%;
}
.danger .box ul li{
  padding: 0.3em 0 0.3em 4.6rem;
  font-size: 2rem;
  line-height: 1.3;
}
.danger .box ul li::before{
  width: 2.4rem;
  height: 2.2rem;
  left: 1.4rem;
  top: 0.45em;
}
.danger img.arrow{
  width: 10.8rem;
  margin: 2rem auto 1rem;
}
.danger img.arrow + p{
  font-size: 2rem;
}
.danger img.arrow + p big{
  font-size: 2.2rem;
}


.darkness .box-1,
.darkness .box-2{
  border-radius: 0;
}
.darkness .box-1{
  border: 0.5rem solid #CCCCCD;
  padding: 3rem 2rem;
}
.darkness .box-2{
  padding: 3rem 1.6rem 3.5rem;
}
.darkness .box-1 h3,
.darkness .box-2 h3{
  font-size: 2.6rem;
}
.darkness .box-2 h3 big{
  font-size: 2.8rem;
}
.darkness .box-1 ul.n-ul > li{
  font-size: 2rem;
}
.darkness .box-1 ul.n-ul > li + li{
  margin-top: 0.8em;
}
.darkness img.arrow{
  width: 10.8rem;
  margin: 2rem auto;
}
.darkness .box-2 ul.check-li > li{
  padding: 1.5rem 2rem;
}
.darkness .box-2 ul.check-li > li + li{
  margin-top: 1.4rem;
}
.darkness .box-2 ul.check-li > li h4{
  font-size: 2rem;
  padding-left: 2.6rem;
  margin-bottom: 0.5em;
}
.darkness .box-2 ul.check-li > li h4::before{
  width: 1.8rem;
  height: 1.8rem;
  top: 0.35em;
}
.darkness .box-2 ul.n-ul > li{
  font-size: 1.2rem;
}
.darkness .box-2 ul.n-ul > li + li{
  margin-top: 0.8em;
}
.darkness .box-2 + .cta-box .ttl{
  font-size: 1.6rem;
}


.flow ul.flow-li li{
  min-height: unset;
  display: block;
  padding: 1.6rem 1.6rem 1.6rem 8.5rem;
  position: relative;
}
.flow ul.flow-li li + li{
  margin-top: 2rem;
}
.flow ul.flow-li li + li::after{
  width: 2.6rem;
  height: 1rem;
  position: absolute;
  top: -1.4rem;
}
.flow ul.flow-li li .num{
  width: 6.5rem;
  justify-content: flex-start;
  font-size: 1.2rem;
  padding-top: 1rem;
  position: absolute;
  left: 0;
  top: 0;
}
.flow ul.flow-li li .num big{
  font-size: 3rem;
}
.flow ul.flow-li li h3{
  font-size: 1.6rem;
  margin-bottom: 0.6em;
}
.flow ul.flow-li li p{
  font-size: 1.4rem;
}


.voice-swiper-wrap,
.voice-swiper{
  max-width: 100%;
}
.voice-swiper .swiper-slide{
  width: calc(100% - 5rem);
  margin: 0 1.5rem;
}
.voice-swiper .swiper-slide .txt{
  padding: 1.6rem 1.6rem 2rem;
}
.voice-swiper .swiper-slide .txt h3,
.voice-swiper .swiper-slide .txt p{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.voice-swiper .swiper-slide .txt h3{
  font-size: 1.8rem;
}


.modal_content .img-wrap{
  flex-wrap: wrap;
}
.modal_content .img-wrap img{
  height: 14.4rem;
}
.modal_content .inner{
  padding: 1.6rem 1.6rem 2rem;
}
.modal_content .inner h3{
  font-size: 1.8rem;
}


.faq dl.faq-dl dt,
.faq dl.faq-dl dd{
  padding: 1rem 1.4rem;
}
.faq dl.faq-dl dt{
  font-size: 1.4rem;
  border-radius: 0.4rem;
}
.faq dl.faq-dl .w1038{
  padding-left: 1.9rem;
}
.faq dl.faq-dl .w1038::before{
  font-size: 1.5rem;
}
.faq dl.faq-dl dt .w1038::before,
.faq dl.faq-dl dd .w1038::before{
  top: -0.1em;
}

.ceo{
  grid-template-columns: 100%;
  gap: 3rem;
  margin-top: 4rem;
}


.cta .wrap-1{
  background: url(../images/cta-bg2.png) center 76% no-repeat #00305B;
  background-size: 100% auto;
}
.cta .wrap-1 .content{
  padding-top: 5rem;
  padding-bottom: 47rem;
}
.cta .wrap-1::before{
  max-width: 100%;
  height: 47.7rem;
  aspect-ratio: unset;
  background: url(../images/cta-bg1_sp.png) center center no-repeat;
  background-size: contain;
  bottom: 6.2rem;
}
.cta .wrap-1 h2{
  font-size: 3rem;
  margin-bottom: 5rem;
}
.cta .wrap-1 h2 big{
  font-size: 3.8rem;
}
.cta .wrap-1 h2 span{
  display: block;
  margin-top: 0.7em;
}
.cta .wrap-1 ul.point-li{
  grid-template-columns: 100%;
  gap: 2.3rem;
}
.cta .wrap-1 ul.point-li li{
  border-radius: 0.4rem;
  padding: 1.2rem 0 1rem;
}
.cta .wrap-1 ul.point-li li::before{
  width: 4.2rem;
  left: 1.2rem;
}
.cta .wrap-1 ul.point-li li .num{
  width: 9rem;
  height: 2.6rem;
  border-radius: 1.3rem;
  font-size: 1.1rem;
  top: -1.3rem;
}
.cta .wrap-1 ul.point-li li big{
  font-size: 2.4rem;
}
.cta .wrap-1 .txt-1{
  font-size: 2.3rem;
  line-height: 1.3;
  margin: 3rem 0 0.2em;
}
.cta .wrap-1 .txt-2{
  font-size: 1.8rem;
}
.cta .wrap-1 .txt-3{
  font-size: 2.4rem;
}
.cta .contact-wrap{
  width: calc(100% - 5rem);
  left: 2.5rem;
  bottom: -6.8rem;
}
.cta .wrap-2{
  padding: 11rem 0 5rem;
  font-size: 2.3rem;
  line-height: 1.4;
}
.cta .wrap-2 p > span{
  display: block;
  margin-top: 0.7em;
}
.cta .wrap-2 .marker{
  margin: 0.2em 0 0;
  padding: 0.1em 0.4em;
  border-radius: 0.4rem;
}


footer{
  padding: 5rem 0 6rem;
}
footer .content{
  display: block;
}
footer ul.f-nav-1,
footer ul.f-nav-2{
  flex-direction: column;
  row-gap: 0.1em;
}
footer ul.f-nav-2{
  margin-top: 2rem;
}
footer ul.certificate-li{
  margin-top: 3rem;
}
footer ul.certificate-li li.li-1,
footer ul.certificate-li li.li-2{
  width: 100%;
}


#loading img {
  width: 18rem;
}




}/*　スマホここまで */



