@charset "UTF-8";
:root {
  --primary_c: #005fc7;
  --primary_s: #a50e48;
  --primary_su: #ad2559;
  --primary_h:#cb1b5a;
  --back_bace:#f6f6f6;
  --back_c: #F4F6F7;
  --back_s: #a50e48;
  --black_c: #222;
}
a{
  display: block;
}

@media screen and (max-width: 320px) {
  .common-contact .common-btn.cont-btn {
    padding: 12px 30px 12px 4px; } }


body {
  overflow-y: scroll; 
  display: flex;
  flex-flow: column;
  min-height: 100vh;
  color: var(--black_c);}

main{
  flex: 1;
  background: var(--back_bace);
}


a {
  text-decoration: none; }

a:hover img {
  opacity: .8; }

h1, h2, h3, h4 {
  white-space: break-spaces;
  line-height: 1.3; }

h2 {
  font-size: 2.6rem;}

h3 {
  font-size: 1.8rem; }

p {
  margin: 0; }

.main-c {
  color: var(--primary_c); }
  .main-c span {
    color: #222; }

.sub-b {
  background-color: var(--back_c); }


.drawer-navbar-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center; }
  .drawer-navbar-header #logo {
    max-width: 302px;
    width: calc(92% - 38px);
  }
    .drawer-navbar-header #logo a {
      display: block; }
    .drawer-navbar-header #logo a:hover {
      opacity: .8; }

a:hover,
.drawer-menu li a:hover {
  color: var(--primary_c);
  -webkit-transition: all 0.3s;
          transition: all 0.3s; }

.nav-contact:hover a,
.nav-dl:hover a,
.common-b:hover a{
  color: #fff;
  background: #000;
  border-color:#000;
}

.marker {
  background: -webkit-linear-gradient(transparent 70%, #FFFA60 0%);
  background: linear-gradient(transparent 70%, #FFFA60 0%);
  display: inline;
  /*横に余白をつけたり、下にずらしたりするときは以下のpaddingを調整してください*/
  padding: 0 4px; }
#back-top.js-ft-ad{
  bottom: 83px;
}
#back-top {
  width: 46px;
  height: 46px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 0;
  position: fixed;
  right: 12px;
  bottom: 112px;
          transition: .3s; }
  #back-top a {
    display: block;
    width: 100%;
    height: 100%;
    background: url("../../../images/v3/top-arrow.svg") no-repeat center;
    background-size: 30px;
   }

#back-top:hover {
  opacity: .5; }
  #back-top:hover a {
    display: block;
    width: 100%;
    height: 100%; }

#line-btn-f{
  position: fixed;
  width: calc(100% - 3rem);
  max-width: 360px;
  right: 1.5rem;
  bottom: 1.5rem;
  transition: .3s; 
  background: #fff;
  z-index: 10;
}
#line-btn-f a{
  display: flex;
  align-items: center;
  justify-content: center;
  height: 86px;
  padding: 12px 10px;
  position: relative;
}
#line-btn-f a img{
  width: 50%;
  margin:0 auto;
}
#line-btn-f a i{
  width: 76px;
  height: 76px;
  background: url("../../../images/v3/line-btn-sp-c.png") no-repeat bottom center;
  background-size: contain;
  position: absolute;
  right: 3.4%;
  bottom: 0;
}

.common-contact .cont-btn,
.common-contact .resources-btn {
  cursor: pointer; }
/* .common-contact .cont-btn::before,
.common-contact .resources-btn::before { */ /* 2025-03修正 */
  body.toppage .common-contact .cont-btn::before,
  body.toppage .common-contact .resources-btn::before {
    background: url(../../../images/v3/icon/icon-arrow-mh.svg) no-repeat center; }
  .common-contact .cont-btn:hover,
  .common-contact .resources-btn:hover {
    background-color: #f9f9f9; }

.common-btn.btn-main-c:hover {
  color: #fff;
  background-color: var(--primary_h); }

.noscroll {
  overflow: hidden; }
  .noscroll .drawer-navbar .drawer-navbar-header {
    box-shadow: none; }

.drawer-navbar {
  position: sticky;
  z-index: 40;
  top: 0;
  width: 100%; }
  .drawer-navbar .drawer-navbar-header {
    position: relative;
    z-index: 3;
    box-sizing: border-box;
    width: 100%;
    height: 60px;
    padding: 0 20px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    background-color: #fff; }

.nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  position: absolute;
  right: 0;
  z-index: 3;
  background-color: transparent;
  border: none;
  cursor: pointer;
}
  .nav-btn .nav-btn-inner {
    width: 40px;
    height: 24px;
    position: relative; }
  .nav-btn-inner span:nth-of-type(1){
    top: 4px;
  }
  .nav-btn-inner span:nth-of-type(2){
    top: 14px;
    width: 80%;
    left: 20%;
  }
  .nav-btn-inner span:nth-of-type(3){
    top: 14px;
    width: 80%;
    left: 20%;
  }
  .nav-btn-inner span:nth-of-type(4){
    top: 24px;
    width: 60%;
    left: 40%;
  }
  .nav-btn-inner span{
    width: 100%;
    height: 2px;
    display: block;
    position: absolute;
    -webkit-transition: all 0.2s ease-out;
    transition: all 0.2s ease-out;
    background: var(--black_c);
  }
  .nav-btn.open .nav-btn-inner span:nth-of-type(1),
  .nav-btn.open .nav-btn-inner span:nth-of-type(2),
  .nav-btn.open .nav-btn-inner span:nth-of-type(3),
  .nav-btn.open .nav-btn-inner span:nth-of-type(4){
    width: 100%;
    left: inherit;
  }
  .nav-btn.open .nav-btn-inner span:nth-of-type(1),
  .nav-btn.open .nav-btn-inner span:nth-of-type(4){
    display: none;
  }
  .nav-btn.open .nav-btn-inner span:nth-of-type(2){
    transform: rotate(-45deg);
  }
  .nav-btn.open .nav-btn-inner span:nth-of-type(3){
    transform: rotate(45deg);
  }    
    


.drawer-nav {
  display: none;
  position: fixed;
  z-index: 2;
  top: 0;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background: rgba(244, 246, 247, 0.9);
  padding-top: 60px; }

  .nav-header-p{
    background: #555;
    font-size: 1.6rem;
    padding: 0.3rem 2rem;
    font-weight: 700;
    color: #fff;
    text-align: center;
  }
  .drawer-nav .nav-inner {
    height: 100%;
    overflow-y: scroll;
    padding-bottom: 3rem; }

.drawer-menu {
  display: flex;
  flex-wrap: wrap;
  height: auto;
  margin-bottom: 3rem; }

  .drawer-menu li:nth-of-type(2n) {
    margin-left: auto; }
  .drawer-menu li {
    width: 100% }
  .drawer-menu li a {
    display: block;
    width: calc(100% - 4rem);
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 0.2rem;
    color: var(--black_c);
    text-align: center;
    padding: 1.2rem 0;
    margin: 0 auto;
    border-bottom: solid 1px #555; }
  .drawer-menu li a.active {
    color: var(--primary_c); } 
  .drawer-menu li.nav-dl,
  .drawer-menu li.nav-contact {
    width: 100%;
    margin-top: 20px; }
    .drawer-menu li.nav-dl a,
    .drawer-menu li.nav-contact a {
      border-bottom: none; }
  .drawer-menu li.nav-contact a {
    padding: 1.2rem 0.6rem; }

.breadcrumbs {
  border-bottom: solid 1px #e0e0e0; }
  .breadcrumbs .sp-inner {
    display: flex;
    flex-wrap: wrap;
    width: calc(100% + 2.2rem);
    padding: 10px 2px 14px 2px;
    margin-left: -2px;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap; }
  .breadcrumbs ul {
    display: flex;
    flex-wrap: nowrap; }
    .breadcrumbs ul li a {
      color: #000; }
    .breadcrumbs ul li span {
      font-size: 1.2rem; }
    .breadcrumbs ul li:not(:last-of-type) a,
    .breadcrumbs ul li:not(:last-of-type) .nolink {
      position: relative;
      padding-right: 30px;
      text-decoration: underline; }
      .breadcrumbs ul li:not(:last-of-type) a::after,
      .breadcrumbs ul li:not(:last-of-type) .nolink::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 14px;
        width: 6px;
        height: 6px;
        margin-top: -3px;
        border-top: 1px solid #000;
        border-right: 1px solid #000;
            transform: rotate(45deg); }
    .breadcrumbs ul li:not(:last-of-type) .nolink {
      text-decoration: none; }

.mv.branding-slider{
  position: relative;
  padding-bottom: 40px;
}
.mv .swiper-pagination{
  bottom: 10px;
}
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{
  width: 12px;
  height: 12px;
  margin: 0 6px;
}

.inner-mv{
  display: none;
}
.mv-container{
  width: 100%;
}
.contact-container{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: calc(100% - 4rem);
  margin: 2rem auto;
}
.contact-container button{
  display: flex;
  justify-content: flex-start;
  width: calc(50% - 1rem);
  height: 50px;
}
.contact-container button a{
  font-size: (3.5vw, 1.5rem);
  padding-left: 1rem;
  text-align: left;
}

.ttl-h2{
  display: flex;
  font-size: 2rem;
  color: var(--primary_c);
  align-items: center;
  margin: 0 auto;
  position: relative;
  width: calc(100% + 4rem);
  margin-left: -2rem;
  margin-bottom: 1.5rem; 
}
.ttl-h2::before,
.ttl-h2::after{
  content: "";
  background-color:var(--primary_c); /* 横線の色 */
  border-radius: 5px; /* 横線の両端を丸く */
  content: "";
  flex-grow: 1; /* 横幅いっぱい */
  height: 1px; /* 横線の高さ */
}
.ttl-h2::before{
  margin-right: 2rem;
}
.ttl-h2::after{
  margin-left: 2rem;
}
.ttl-h2.c-white{
  color: #fff;
}
.ttl-h2.c-white:before,
.ttl-h2.c-white:after{
  background-color:#fff; /* 横線の色 */
}


.contact-container + .section-t1 .inner-h{
  padding-top: 4rem;
}

.strength-box:not(:first-of-type){
  margin-top: 1.5rem;
}
.strength-box{
  background: #fff;
  padding-top: 2rem;
  box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.1);
  position: relative;
}
.strength-box h3:before{
  content: "";
  position: absolute;
}
.str-box-1 h3:before{
  width: 61px;
  height: 48px;
  background: url("../../../images/v3/icon_str-01.png") no-repeat center;
  background-size:contain;
  left: 0;
  bottom:0px;
}
.str-box-2 h3:before{
  width: 32px;
  height: 52px;
  background: url("../../../images/v3/icon_str-02.png") no-repeat center;
  background-size:contain;
  left: 9px;
  bottom:-8px;
}
.str-box-3 h3:before{
  width: 31px;
  height: 48px;
  background: url("../../../images/v3/icon_str-03.png") no-repeat center;
  background-size:contain;
  left: 9px;
  bottom:0px;
}
.str-box-4 h3:before{
  width: 48px;
  height: 52px;
  background: url("../../../images/v3/icon_str-04.png") no-repeat center;
  background-size:contain;
  left: 9px;
  bottom:0px;
}

.strength-box h3{
  color: #fff;
  font-size: min(4vw, 1.6rem);
  text-align: center;
  background: var(--primary_c);
  padding: 1rem 2rem 1rem 4rem;
  position: relative;
}
.str-text{
  padding: 2.5rem;
}
.str-text p,
.str-text li{
  font-size: 1.4rem;
  line-height: 1.714;
}
.str-box-1:before{
  content: "";
  position: absolute;
  right: 25px;
  bottom: 0;
  background: url("../../../images/v3/str01_img.png") no-repeat center;
  background-size:contain;
  width: 112px;
  height: 66px;
}
.str-box-3:before{
  content: "";
  position: absolute;
  width: calc(100% - 25px);
  height: 25px;
  background: url("../../../images/v3/icon_arrow-str-03.png") no-repeat right;
  background-size: contain;
  left: 0;
  bottom: 2.5rem;
}
.str-box-3 .str-text{
  padding-bottom: 7.5rem;
}
.str-text ul{
  margin-bottom: 0.4rem;
}
.str-text li{
  padding-left: 1.4rem;
  position: relative;
}
.str-text li:before{
  content: "・";
  font-size: 1.4rem;
  position: absolute;
  top: 0;
  left: 0;
}
.side-text{display: none;}

/* サービス */
.t-service .inner-h,
.t-blog .inner-h,
.t-contact .inner-h{
  padding-top: 1rem;
}
.service-box h3 span{
  display: table;
  color: #fff;
  font-size: 2rem;
  margin: 0 auto 1.5rem auto;
  line-height: 1.4;
  padding-bottom: 1.3rem;
  position: relative;
}
.service-box h3 span:after{
  content: "";
  width: 3rem;
  height: 0.3rem;
  background: #fff;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
}
.service-text:not(:last-of-type),
.service-box:not(:last-of-type){
  margin-bottom: 3rem;
}
.service-sbox{
  background: #fff;
  color: var(--black_c);
  box-shadow:1px 1px 2px 0px rgba(0, 0, 0, 0.1)
}
.service-t{
  padding: 2rem;
}
.service-sbox h4{
  display: table;
  font-size: 1.7rem;
  line-height: 1.4;
  text-align: center;
  padding-left: 2rem;
  position: relative;
  margin: 0 auto 0.4rem auto;
}
.service-sbox h4:before{
  content: "";
  background: url("../../../images/v3/arrow-sp.png") no-repeat center;
  background-size:contain;
  width: 8px;
  height: 12px;
  margin-top: 1px;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.service-text:hover .service-sbox{
  background: var(--primary_h);
}
.service-text:hover .service-sbox h4,
.service-text:hover .service-sbox p{
  color: #fff;
}
.service-text:hover .service-sbox h4::before{
  background: url("../../../images/v3/arrow-sp-hover.png") no-repeat center;
  background-size: contain;
}

/* blog */
.t-blog .inner-h{
  padding-bottom: 2rem;
}
.common-b{
  width: 80%;
  max-width: 300px;
  display: flex;
  margin: 3rem auto 0 auto;
}
.blog-container{
  display: flex;
  flex-wrap: wrap;
  width: calc(100% + 2.2rem);
  padding: 8px 2px 12px 2px;
  margin-left: -2px;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
}
.scroll-w {
  display: flex;
  flex-wrap: nowrap;
  width: auto;
}
.blog-box{
  width: 250px;
  background: #fff;
  box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.1);
  margin: 2px 3rem 2px 0;
  padding-bottom: 1.5rem;
  position: relative;
}
.blog-box::before{
  content: "";
  width: 100%;
  height: 0.8rem;
  background: #4eaeee;
  opacity: 0.8;
  position: absolute;
  left: 0;
  bottom: 1rem;
}
.blog-box:hover{
  background: var(--primary_h);
}
.blog-box:hover h3{
  color: #fff;
}
.blog-box a h3{
  font-size: 1.3rem;
  line-height: 1.6;
  padding: 1.8rem;
  color:var(--black_c);
  position: relative;
  z-index: 2;
}

/* お問い合わせ */
.t-contact .ttl-h2{
  color: #fff;
}
.t-contact .ttl-h2::before,
.t-contact .ttl-h2::after{
  background: #fff;
}
.form-s{
  background: #fff;
  box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.1);
  padding: 4rem 4.5rem 1.5rem 4.5rem;
}
.form-box .contact-item {
  margin-bottom: 1.5rem;
}
.form-box .labelbox {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 10px;
}
.form-box .labeltext {
  font-size: 1.6rem;
}
.form-box .contact-must {
  display: inline-block;
  width: 36px;
  padding: 2px 0;
  margin-left: 10px;
  background-color:#0e3d92;
  font-size: 1.1rem;
  line-height: 1.5;
  font-weight: bold;
  text-align: center;
  color: #fff;
}
.form-box .contact-input {
  font-size: 1.6rem;
  width: 100%;
  padding: 1rem 1.2rem;
  border: 0;
  background-color: rgba(230,230,230,.68);
  border: solid 1px;
  border-color: rgba(156,167,185,.68);
  /* opacity: 0.4; */ /* 2025-04修正 */
}
.form-box .label-inputarea {
  font-size: 1.6rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 100%;
}
.label-inputarea.radio-inputarea {
  margin-top: -1rem;
}
/* 2025-03追加 ▼ ここから ▼ --------------- */
[class^="error-"] {
  color: #cb1b5a;}
.label-inputarea [class^="error-"] {
  display: none;
  margin: .8rem 0 .4rem 0; }
.label-inputarea .required.errored + [class^="error-"] {
  display: block; }
/* 2025-03追加 ▲ ここまで ▲ --------------- */


.radio-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 1.2rem;
}
.radio-box:not(:last-of-type) {
  margin-right: 1.5rem;
}
input[type="radio"] {
  display: block;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  position: relative;
  margin: 0;
  cursor: pointer;
}
input[type="radio"]::before, input[type="radio"]::after {
  content: "";
  display: block;
  border-radius: 50%;
  position: absolute;
  transform: translateY(-50%);
  top: 50%;
}
input[type="radio"]::before {
  background-color: #fff;
  border: 2px solid var(--black_c);
  height: 30px;
  width: 30px;
  left: 0px;
}
input[type="radio"]::after {
  background-color: var(--black_c);
  opacity: 0;
  height: 14px;
  width: 14px;
  left: 8px;
}
input[type="radio"]:checked::after {
  opacity: 1;
}
.radio-box label {
  font-size: 1.4rem;
  margin-left: 0.5rem;
}
.recaptcha_text{
  font-size: 1.2rem;
  color: #fff;
  text-align: center;
  width: calc(100% + 9rem);
  margin-left: -4.5rem;
  padding: 1rem;
  background: var(--primary_c);
  margin-top: 6rem;
}
.recaptcha_text a{
  display: inline-block;
  color: var(--primary_h);
}
.checkbox > label{
  display: flex;
  align-items: center;
  font-size: 1.4rem;
}
.label-inputarea.checkbox-inputarea .checkbox input[type='checkbox'], input[type='checkbox'] {
  display: inline-block;
  margin: 0;
  margin-right: .6rem;
  -webkit-appearance: auto;
  -moz-appearance: auto;
  appearance: auto;
  width: 30px;
  height: 30px;
}
/* チェックされたときに背景色を変更 */
.label-inputarea.checkbox-inputarea .checkbox input[type='checkbox']:checked{
  background-color: #222;
  appearance: inherit;
  position: relative;
}
.label-inputarea.checkbox-inputarea .checkbox input[type='checkbox']:checked:after{
  content: "";
  position: absolute;
  top: 7px;
  left: 12px;
  width: 8px;
  height: 12px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.supplement_text{
  font-size: 1.2rem;
  margin-left: .4rem;
}
.checkbox-inputarea{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.checkbox-inputarea .checkbox:last-of-type{
  margin-bottom: 0;
}
.checkbox-inputarea .checkbox{
  width: 100%;
  margin-bottom: 1.2rem;
}

/* footer */
.footer-left{
  position: relative;
  padding-top: 1rem;
  background-color: var(--back_c);
}
.section-f .footer-left .inner-h{
  padding-top:1.5rem;
  padding-bottom:3rem
}
.section-f .footer-right .inner-h{
  padding-top: 1.5rem;
  padding-bottom:8.5rem;
}
.footer-left ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 48%;
  margin: 0 auto;
}
.footer-left ul li:not(:last-of-type){
  margin-bottom: 1.2rem;
}

.footer-right{
  position: relative;
  padding-top: 1rem;
  background-color: #25509c;
}
.footer-left .inner-h{
  overflow-x: hidden;
}
.footer-right ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 80%;
  margin: 0 auto;
}
.footer-right ul li{
  width: 100%;
}
.footer-right ul li:not(:first-of-type){
  margin-top: 1rem;
}
.footer-right ul a{
  display: block;
  color: #fff;
  width: 100%;
  font-size: 1.2rem;
  padding: 1rem 0;
  text-align: center;
}
.copy{
  width: 100%;
  background: var(--black_c);
  margin-top: 0; /* 2025-03追加 */
}
.copy small{
  display: block;
  width: 100%;
  font-size: 1.1rem;
  color: #fff;
  text-align: center;
  padding: 0.6rem 1.5rem;
}
input::placeholder{
  opacity: .4;
}
.label-inputarea > span{
  margin-top: 0.3rem;
}
/*
.slider {
  width: 100%;
  margin: 0 auto;
}
.slider .slick-slide {
  opacity: 0.5;
  transition: opacity 0.3s;
}
.slider .slick-center {
  opacity: 1;
}
.slider img {
  max-width: 100%;
  width: auto;
  height: auto;
}
*/
.swiper {
  /*スライダーの幅と高さを調整*/
  width: 100%;
  height: auto;
}

.swiper-slide {
  width: 100%; /* 固定幅 */
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  border-radius: 10px;
}

.mv .swiper-pagination-bullet.swiper-pagination-bullet-active{
  background: var(--primary_c) !important;
}



@media only screen and (min-width: 600px) {
  /* Tablet */
  .contact-container{
    width: calc(100% - 8rem);
  }
  .sp-main{display: none;}
  /* .mv{ */ /* 2025-03修正 */
  body.toppage .mv.branding-default{
      background: url("../../../images/v3/main-pc-bg.png") no-repeat center;
    background-size: cover;
    height: 442px;
  }
  .mv + img{display: none;}

  .inner-mv{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    height: 100%;
    margin: 0 auto;
  }
  .mv-inner{
    width: calc(100% - 4%);
    margin-left: 4%;
    display: flex;
    align-items: flex-start;
  }
  .mv-inner h1{
    width: 46%;
  }
  .mv-inner p{
    width: 44%;
    margin-left: auto;
  }

  .inner-line {
    max-width: 1260px;
    /*width: 97%;*/
    margin: 0 auto;
  }

  /* ここから重要！ */
.border-inner {
  width: 100%;
  position: relative;
  margin-bottom: 1.2rem;
}
.border-inner::after {
  content: '';
  position: absolute;
  bottom: 50%;
  left: 0;
  z-index: 0;/* .border-inner-border-delete::after のz-index値よりも小さくする */
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, #fff 0%, #fff 50%, transparent 50%, transparent 100%);
}

.border-inner-border-delete {
  position: relative;
}
.border-inner-border-delete::after {
  content: '';
  position: absolute;
  bottom: 50%;
  left: 0;
  z-index: 1;/* .border-inner-border-base のz-index値よりも小さくする */
  width: 100%;
  height: 1px;
  background: var(--primary_c);
}

.border-inner-border-base {
  display: inline-block;
  position: relative;
  z-index: 2;
  padding-left: 1rem;
  padding-bottom: 1rem;
  color: #fff;
  border-bottom: 1px solid var(--primary_c);
}
.contact-container button{
  width: calc(50% - 1.5rem);
}

.ttl-h2{
  font-size: 2.4rem;
  margin-bottom: 2rem;
}

.t-strength .inner{
  display: flex;
  flex-wrap: wrap;
  align-items:flex-start;
  justify-content: space-between;
}
.strength-box:not(:first-of-type){
  margin-top: 0;
}
.strength-box:nth-child(n+3){
  margin-top: 2rem;
}
.strength-box{
  width: calc(50% - 1rem);
}

.service-box{
  display: flex;
  flex-wrap: wrap;
}
.service-box h3 span:after{
  content: none;
}
.service-box h3 span{
  font-size: 2.4rem;
  margin: 0;
  padding-left: 1.5rem;
  padding-bottom: 0;
}
.pc-inner{
  display: flex;
  flex-wrap: wrap;
  padding: 0 4rem;
}
.pc-inner .inner{
  padding: 0;
}
.service-text{
  width: calc(50% - 1.5rem);
}
.service-text:nth-child(even){
  padding-right: 0;
  margin-right: 0;
}
.service-text:nth-child(odd){
  padding-left: 0;
  margin-left: 0;
}
.service-box.box-1 .service-text.three,
.service-box.box-2 .service-text.three{
  margin-right: auto;
  margin-left: 0;
}

/* blog */
.blog-container{
  width: calc(100% + 4.2rem);
  padding-top: 0;
}
.blog-box a h3{
  font-size: 1.4rem;
}

/* footer */
.t-contact.section-t4,
.main-contents.thanks-contents{
  position: relative;
  padding-bottom: calc(10vw + 10px);
}
.section-f .inner-h{
  padding-bottom: 6rem;
}
.t-contact.section-t4:before,
.main-contents.thanks-contents:before{
  content: '';
  position: absolute;
  bottom: 0;
  left: 0; /*  -8pxでスクロールバー分を相殺 */
  width: 50vw; /* 50%幅 */
  border-bottom: 5vw solid var(--back_c);  /* 左側の色 */
  border-left: 50vw solid transparent;
  z-index: 10;
}
.t-contact.section-t4:after,
.main-contents.thanks-contents:after{
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100vw;
  border-bottom: 10vw solid #25509c;  /* 三角部分の色指定 */ 
  border-left: 100vw solid transparent;
}

/*
.footer-container:after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, gray 50%, #0073c6 50%);
  clip-path: polygon(0 40%, 100% 0, 100% 100%, 0% 100%);
  z-index: 2; /* 一番上に配置 
}
*/

.section-f{
  width: 100vw;
  position: relative;
}
/*
.section-f:before{
  content: "";
  display: block;
  width: 100%;
  height: 50px;
  background: url("../../../images/v3/footer-top-pc.png") no-repeat center;
  background-size: cover;
  position: absolute;
  top: -50px;
}
  */
.footer-container{
  display: flex;
  flex-wrap: wrap;
}
.footer-left, .footer-right{
  width: 50%;
  padding-bottom: 80px;
}
.footer-left:before{
  display: none;
}
.footer-right:before{
 display: none;
}

#line-btn-f{
  width: 380px;
  left: inherit;
  right: 1.5rem;
}
.footer-right ul{
  width: 70%;
}
.footer-right ul a{
  font-size: 1.4rem;
  text-align: left;
}
#back-top{
  right: 0;
  bottom: 161px;
}
#line-btn-f{
  right: 0;
  bottom: 3rem;
}
#line-btn-f a{
  padding: 6px 30px 12px 30px;
  height: auto;
}
#line-btn-f a img{
  width: 100%;
  max-width: 328px;
}
#line-btn-f i{
  display: none;
}

.recaptcha_text{
  width: calc(100% + 12rem);
  margin-left: -6rem;
}

.form-s{
  padding-left:6rem;
  padding-right:6rem;
}
.form-box .contact-item{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 2rem;
}
.form-box .labelbox{
  width: 192px;
  margin-bottom: 0;
}
.form-box .label-inputarea{
  width: calc(100% - 192px);
  padding-left: 1rem;
}
.supplement_text{
  width: 100%;
  margin-top: .4rem;
}
.label-inputarea.checkbox-inputarea{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.checkbox-inputarea .checkbox{
  width: 48%;
}


.swiper-slide {
  width: 72%; /* 固定幅 */
  height: auto;
}



}

@media only screen and (min-width: 1023px) {
/* PC */
.nav-contact .btn-style,
.nav-dl .btn-style{
  font-size: 2rem;
  padding: 1.4rem 0;
}
.nav-contact .btn-style:before,
.nav-dl .btn-style:before{
  right: 1.5rem;
  width: 10px;
  height: 10px;
  margin-top: -3px;
}
.common-b{
  max-width: 396px;
}
.common-b a{
  font-size: 2rem;
  padding: 1.4rem 0;
}
.btn-style:before{
  right: 1.5rem;
  width: 12px;
  height: 12px;
  margin-top: -4px;
}

.mv-container{
  width: 100%;
}
.inner-mv h1{
  width: 46%;
}
.inner-mv p{
  width: 46%;
  margin-left: auto;
}
.inner-mv p img{
  margin-left: auto;
}
/* .mv{ */ /* 2025-03修正 */
body.toppage .mv.branding-default{
    background: url("../../../images/v3/main-pc-bg.png") no-repeat center;
    background-size: cover;
    height: 622px;
  }
  .a{
    width: calc(100% - 4%);
    margin-left: 4%;
    display: flex;
    align-items: center;
  }
  .b{
    width: 100%;
    display: flex;
    align-items: flex-start;
    position: relative;
  } 

  .ttl-h2{
    font-size: 4.2rem;
    margin-bottom: 4.4rem;
  }
  .ttl-h2::before,
  .ttl-h2::after{
    height: 3px;
  }
  .ttl-h2::before {
    margin-right: 7.4rem;
  }
  .ttl-h2::after {
    margin-left: 7.4rem;
  }


  /* header */
  .nav-btn{
    display: none;
  }
  .pc{
    display: flex;
    flex-wrap: wrap;
    margin-left: auto;
  }
  .drawer-navbar-header #logo{
    max-width: 620px;
    width: calc(92% - 504px);
    position: relative;
    top: -12px;
  }
  .drawer-navbar .drawer-navbar-header{
    height: auto;
    padding:32px 48px; 
  }
  button{
    width: 230px;
  }
  .nav-contact{
    margin-right: 24px;
  }
  /* ここまで */

  .contact-container{
    display: none;
  }
  .contact-container + .section-t1 .inner-h{
    padding-top: 8rem;
  }

.swiper-slide {
  width: auto;
}


  /* 強み */
  .t-strength{
    background-image: url("../../../images/v3/strength_text.png");
    background-repeat: no-repeat;
    background-position: left 180px;
    background-size: auto;
  }
  .strength-box{
    width: calc(50% - 2rem);
    padding-top: 3.2rem;
  }
  .strength-box:nth-child(n+3) {
    margin-top: 4rem;
  }
  .strength-box h3{
    font-size: 2.8rem;
    padding: 1.5rem 2rem 1.5rem 6rem;
  }
  .str-box-1 h3:before{
    width: 114px;
    height: 88px;
    bottom: 8px;
    left: 16px;
  }
  .str-box-2 h3:before{
    width: 64px;
    height: 104px;
    left: 13px;
    bottom: -12px;
  }
  .str-box-3 h3:before{
    width:62px;
    height: 96px;
    left: 20px;
    bottom: -10px;
  }
  .str-box-1:before{
    width: 150px;
    height: 92px;
    right: 50px;
  }
  .str-box-3:before{
    width: calc(100% - 50px);
    height: 36px;
  }
  .str-box-4 h3:before{
    width: 96px;
    height: 103px;
    left: 40px;
    bottom: -15px;
  }
  .str-text{
    padding: 2.5rem 5rem 5rem;
  }
  .str-text p, .str-text li{
    font-size: 2rem;
  }

  /* サービス */
  .box-right.border-inner::after{
    background: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%);
  }
  .border-inner.box-right h3 span{
    padding-right: 3rem;
    margin-left: auto;
  }
  .t-service{
    background-image: url(../../../images/v3/service_text.png);
    background-repeat: no-repeat;
    background-position: right 200px;
    background-size: auto;
  }
  .border-inner.box-right + .pc-inner{
    justify-content: flex-end;
  }
  .pc-inner{
    display: flex;
    flex-wrap: wrap;
    margin: 0 auto;
    max-width: 1256px;
    width: 100%;
  }
  .service-box h3 span{
    font-size: 4.5rem;
    padding-left: 4rem;
  }
  .border-inner{
    margin-bottom: 3rem;
  }
  .border-inner::after,
  .border-inner-border-delete::after{
    height: 5px;
  }
  .service-text{
    width: calc(33.3333% - 20px);
    padding: 0;
  }
  .service-text:nth-child(odd){
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
  }
  .service-text:nth-child(even){
    padding-left: 0;
    margin-right: 0;
    margin-left: 0;
  }
  .service-text:not(:last-of-type){
    margin-right: 30px;
  }
  .service-box.box-1 .service-text.three, .service-box.box-2 .service-text.three{
    margin-right: inherit;
  }
  .service-sbox h4{
    font-size: 2.5rem;
    margin-bottom: 2.5rem;
  }
  .service-t{
    font-size: 1.8rem;
    padding: 2.5rem 3.5rem;
  }
  .box-2 .border-inner-border-delete::after{
    width: 50%;
  }

  /* blog */
  .t-blog{
    background-image: url(../../../images/v3/blog_text.png);
    background-repeat: no-repeat;
    background-position: left 100px;
    background-size: auto;
  }
  .blog-container{
    width: 100%;
    margin-left: auto;
    padding-bottom: 2px;
  }
  .blog-box:not(:last-of-type){
    margin-right: 30px;
  }
  .blog-box{
    width: calc(33.3333% - 20px);
  }
  .blog-box::before{
    height: 1.2rem;
    bottom: 1.5rem;
  }
  .blog-box a h3{
    font-size: 1.8rem;
    padding:2.5rem 3.5rem;
  }

  /* contact */
  .form-s{
    padding-left:10rem;
    padding-right:10rem;
  }
  .t-contact{
    background-image: url(../../../images/v3/contact_text.png);
    background-repeat: no-repeat;
    background-position: right 100px;
    background-size: auto;
  }


  /* footer */
  .footer-left ul li:not(:last-of-type) {
    margin-bottom: 2rem;
  }
  .footer-right ul a{
    font-size: 2rem;
  }
  .recaptcha_text {
    width: calc(100% + 20rem);
    margin-left: -10rem;
  }


}