@charset "UTF-8";

/*=============================================
 * HOME
*=============================================*/
.btn-scroll {
   width: 12px;
   cursor: pointer;
   transition: all 0.3s;
   position: relative;
   text-align: center;
}

.btn-scroll dd {
   background-color: #ccc;
   width: 1px;
   height: 180px;
   margin: 10px auto 0;
   position: relative;
   overflow: hidden;
}

.btn-scroll dd:after {
   content: '';
   width: 100%;
   height: 100%;
   background-color: #008570;
   position: absolute;
   top: 0;
   left: 0;
   animation: sdl01 2s infinite;
}

.btn-scroll:hover {
   opacity: 0.7;
}

@keyframes sdl01 {
   0% {
      transform: translateY(-100%);
   }

   100% {
      transform: translateY(100%);
   }
}

/* -- -- */
#mv {
   width: 100%;
   height: 100vh;
   min-height: 600px;
   position: relative;
   z-index: 1;
}

#mv .swiper {
   z-index: 0;
}

#mv .swiper,
#mv .swiper-wrapper,
#mv .swiper-slide {
   width: 100%;
   height: 100%;
}

#mv .box {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   width: 95%;
   max-width: 1280px;
   position: absolute;
   bottom: 75px;
   left: 50%;
   transform: translateX(-50%);
}

#mv .box h2>span {
   display: inline-block;
}

#mv .box h2>span:nth-child(1) {
   /*background-color: #fff;*/
   font-weight: 800;
   font-size: 20px;
   color: #fff;
   line-height: 30px;
   margin-bottom: 20px;
   /*padding: 5px 15px;*/
   text-shadow: 0px 1px 15px rgba(0, 0, 0, 0.96);

}

#mv .box h2>span:nth-child(3),
#mv .box h2>span:nth-child(5) {
   /*background-color: #1471CA;*/
   color: #fff;
   font-weight: 700;
   font-size: 44px;
   letter-spacing: 0.04em;
   line-height: 54px;
   /*padding: 7px 15px;*/
   text-shadow: 0px 1px 15px rgba(0, 0, 0, 0.96);
}

#mv .box h2>span:nth-child(3) {
   margin-bottom: 5px;
}

#mv .box h2>span:nth-child(5) {
   text-indent: -5px;
   padding-left: 0;
}

#mv .box .col {
   background-color: rgba(255, 255, 255, 0.9);
   width: 318px;
   border-radius: 24px;
   box-sizing: border-box;
   padding: 36px 20px 20px;
   position: relative;
   text-align: center;
}

#mv .box .col h3 {
   background: url("../img/index/mv-h3-bg.webp") no-repeat center top/cover;
   width: 251px;
   font-weight: 700;
   padding: 7px 0 13px;
   position: absolute;
   top: -18px;
   left: 50%;
   font-size: 15px;
   transform: translateX(-50%);
}

#mv .box .tel a {
   display: inline-block;
   background: url("../img/common/icon-tel.png") no-repeat center left/20px auto;
   font-family: "Plus Jakarta Sans", sans-serif;
   font-weight: 800;
   font-size: 30px;
   line-height: 44px;
   padding-left: 24px;
}

#mv .box .tel .time {
   display: block;
   color: #555;
   font-size: 12px;
   line-height: 16px;
}

#mv .box .mv-btn {
   padding-top: 20px;
}

#mv .box .mv-btn a {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 280px;
   height: 50px;
   background-color: #1471CA;
   color: #fff;
   font-weight: 800;
   font-size: 18px;
   line-height: 30px;
   border-radius: 50px;
   position: relative;
}

#mv .box .mv-btn a:after {
   content: '';
   width: 35px;
   height: 35px;
   background: url("../img/common/arrow-circle-right-1.png") no-repeat center top/cover;
   position: absolute;
   top: 50%;
   right: 10px;
   transform: translateY(-50%);
}

#mv .box .mv-btn a:hover {
   background-color: #333;
   opacity: 1;
}

@media screen and (max-width: 1200px) {

   #mv .box h2>span:nth-child(3),
   #mv .box h2>span:nth-child(5) {
      font-size: 38px;
   }
}

@media screen and (max-width: 1023px) {
   #mv .box {
      flex-direction: column;
      align-items: center;
      gap: 60px;
      bottom: 50px;
   }
}

@media screen and (max-width: 767px) {
   #mv .box {
      gap: 20px;
      width: 100%;
      bottom: 0;
      padding: 20px;
      box-sizing: border-box;
   }

   #mv .box h2 {
      width: 100%;
   }

   #mv .box h2>span:nth-child(1) {
      font-size: 15px;
      line-height: 24px;
      margin-bottom: 10px;
   }

   #mv .box h2>span:nth-child(3),
   #mv .box h2>span:nth-child(5) {
      font-size: 21.5px;
      line-height: 30px;

   }

   #mv .box .col {
      width: 100%;
   }

   #mv .box .col h3 {
      padding: 9px 0 14px;
   }

   #mv .box .mv-btn a {
      width: 100%;
      font-size: 16px;
   }

   #mv .box .tel a {
      background: url("../img/common/icon-tel.png") no-repeat center left/15px auto;
      line-height: 30px;
      padding-left: 24px;
      font-size: 26px;
      margin: 0 auto;
   }

   #mv .box .mv-btn a {
      width: 260px;
      height: 46px;
      font-size: 16px;
      margin: 0 auto;
   }

   #mv .box .mv-btn a:after {
      content: '';
      width: 30px;
      height: 30px;
   }


   #mv .box .col h3 {
      display: none;
   }

   #mv .box .col {
      width: 100%;
      border-radius: 24px;
      padding: 20px 20px 20px;
   }


}

/* -- --*/
#introduction {
   background: url("../img/index/intro-bg.webp") no-repeat center/cover;
   color: #fff;
   padding: 65px 0 75px;
}

#introduction .price {
   max-width: 690px;
   margin: 0 auto;
}

#introduction .title {
   max-width: 1095px;
   margin: 0 auto;
}

@media screen and (max-width: 767px) {
   #introduction {
      padding: 40px 0;
   }

   #introduction h2 {
      font-size: 16px;
   }
}

/* -- --*/
#vision {
   padding: 100px 0;
}

#vision .txt {
   font-weight: 600;
   line-height: 55px;
   color: #000;
   padding-top: 40px;
}

@media screen and (max-width: 767px) {
   #vision {
      padding: 50px 0;
   }

   #vision .txt {
      font-size: 16px !important;
      line-height: 30px;
      padding-top: 20px;
   }
}

/* -- --*/
#mission {
   padding-bottom: 100px;
}

#mission .txt {
   font-weight: 600;
   line-height: 62px;
   color: #000;
   padding-top: 55px;
}

@media screen and (max-width: 767px) {
   #mission {
      padding-bottom: 50px;
   }

   #mission .txt {
      font-size: 16px !important;
      line-height: 30px;
      padding-top: 20px;
   }
}

/* -- --*/
#about {
   background-color: #F7F7F7;
   padding: 120px 0;
}

#about h2 {
   display: flex;
   align-items: center;
   gap: 25px;
}

#about h2 .en {
   display: flex;
   align-items: center;
   gap: 25px;
   position: relative;
   top: 5px;
}

#about h2 .en:before {
   content: '';
   display: block;
   width: 86px;
   height: 2px;
   border-top: 2px solid #B5C9DC;
}

#about figure {
   width: 577px;
   position: absolute;
   top: 0;
   right: -200px;
}

#about .txt-info {
   width: 552px;
   padding-top: 40px;
}

#about .txt-info h3 {
   color: #000;
   letter-spacing: 0.02em;
   margin-bottom: 25px;
}

#about .txt-info dl {
   display: grid;
   grid-template-columns: 140px 1fr;
   align-items: center;
   border-bottom: 1px solid #E8E8E8;
   padding: 15px 0;
}

#about .button {
   padding-top: 45px;
}

#about .button a {
   font-size: 16px;
   padding-right: 0;
}

@media screen and (max-width: 1440px) {
   #about figure {
      width: 540px;
      right: -40px;
   }
}

@media screen and (max-width: 1200px) {
   #about figure {
      width: 350px;
      right: 0;
   }
}

@media screen and (max-width: 1023px) {
   #about figure {
      width: 100%;
      position: static;
      padding-top: 50px;
   }
}

@media screen and (max-width: 767px) {
   #about {
      padding: 50px 0;
   }

   #about h2 {
      flex-direction: column;
      text-align: center;
      gap: 15px;
   }

   #about h2 .en {
      flex-direction: column;
      gap: 15px;
      top: 0;
   }

   #about h2 .en:before {
      width: 0;
      height: 40px;
      border-top: 0;
      border-left: 2px solid #B5C9DC;
   }

   #about figure {
      padding-top: 20px;
   }

   #about .txt-info {
      width: 100%;
      padding-top: 30px;
   }

   #about .txt-info h3 {
      font-size: 20px;
      margin-bottom: 0;
   }

   #about .txt-info dl {
      grid-template-columns: 100px 1fr;
   }
}

/* -- --*/
#strengths {
   padding: 120px 0;
}

#strengths h2 {
   display: flex;
   align-items: center;
   gap: 25px;
}

#strengths h2 .ja:first-letter {
   color: inherit;
}

#strengths h2 .en {
   display: flex;
   align-items: center;
   gap: 25px;
   position: relative;
   top: 5px;
}

#strengths h2 .en:before {
   content: '';
   display: block;
   width: 86px;
   height: 2px;
   border-top: 2px solid #B5C9DC;
}

#strengths .box {
   display: grid;
   grid-template-columns: 190px 358px 1fr;
   align-items: flex-start;
   gap: 50px;
   border-bottom: 1px solid #DEDEDE;
   padding: 72px 0 48px;
}

#strengths .box+.box {
   padding-top: 64px;
}

#strengths .box h3 .no {
   color: #1549AC;
   font-weight: 500;
}

#strengths .box h3 .cl-blue {
   color: #1549AC;
}

#strengths .box figure {
   position: relative;
   padding-bottom: 30px;
}

#strengths .box figure figcaption {
   font-weight: 800;
   font-size: 52px;
   line-height: 60px;
   background: -webkit-linear-gradient(#0F8EA7, #fff);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   text-transform: uppercase;
   position: absolute;
   bottom: 0;
   left: -15px;
}

#strengths .box .txt p+p {
   padding-top: 30px;
}

@media screen and (max-width: 1200px) {
   #strengths .box {
      grid-template-columns: 190px 300px 1fr;
      gap: 30px;
   }
}

@media screen and (max-width: 1023px) {
   #strengths h2 {
      gap: 15px;
   }

   #strengths h2 .en {
      gap: 15px;
   }

   #strengths h2 .en:before {
      width: 40px;
   }

   #strengths .box {
      grid-template-columns: 1fr;
      gap: 30px;
      padding-bottom: 64px;
   }

   #strengths .box h3 {
      text-align: center;
   }

   #strengths .box h3 br.pc {
      display: none;
   }

   #strengths .box figure {
      padding-left: 15px;
   }

   #strengths .box figure figcaption {
      left: 0;
   }
}

@media screen and (max-width: 767px) {
   #strengths {
      padding: 50px 0;
   }

   #strengths h2 {
      flex-direction: column;
      text-align: center;
   }

   #strengths h2 .en {
      flex-direction: column;
      top: 0;
   }

   #strengths h2 .en:before {
      width: 0;
      height: 40px;
      border-top: 0;
      border-left: 2px solid #B5C9DC;
   }

   #strengths .box {
      gap: 30px;
      padding: 40px 0;
   }

   #strengths .box+.box {
      padding-top: 40px;
   }

   #strengths .box figure {
      padding-bottom: 20px;
   }

   #strengths .box figure figcaption {
      font-size: 36px;
      line-height: 42px;
   }
}

/* -- --*/
#service {
   background-color: #F7F7F7;
   padding-top: 64px;
}

#service h2 {
   display: flex;
   align-items: center;
   gap: 25px;
}

#service h2 .en {
   display: flex;
   align-items: center;
   gap: 25px;
   position: relative;
   top: 5px;
}

#service h2 .en:before {
   content: '';
   display: block;
   width: 86px;
   height: 2px;
   border-top: 2px solid #B5C9DC;
}

#service .desc {
   font-weight: 500;
   line-height: 1.79;
   padding: 45px 0;
}

#service .banner {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   background-color: #F7F7F7;
}

#service .banner .col {
   display: flex;
   flex-direction: column;
   border-left: 1px solid #ccc;
}

#service .banner .col:nth-child(4n+1) {
   border-left: 0;
}

#service .banner figure img {
   width: 100%;
   max-width: inherit;
}

#service .banner .text {
   display: flex;
   flex-direction: column;
   padding: 30px 30px 48px;
   flex: 1 0 0;
}

#service .banner .txt {
   flex: 1 0 0;
   font-weight: 500;
   font-size: 14px;
   line-height: 1.8;
   padding-top: 18px;
}

#service .banner .btn-more {
   text-align: center;
   padding-top: 20px;
}

#service .banner .btn-more a {
   display: inline-flex;
   font-weight: 700;
   font-size: 14px;
   line-height: 26px;
   border: 1px solid #1549AC;
   color: #1471CA;
   border-radius: 50px;
   padding: 9px 45px 9px 28px;
   position: relative;
}

#service .banner .btn-more a:after {
   content: '';
   width: 30px;
   height: 30px;
   background: url("../img/common/arrow-circle-right.png") no-repeat center top/cover;
   position: absolute;
   top: calc(50% - 15px);
   right: 8px;
   transition: all 0.3s;
}

#service .banner .btn-more a:hover {
   background-color: #1549AC;
   color: #fff;
   opacity: 1;
}

#service .banner .btn-more a:hover:after {
   background-image: url("../img/common/arrow-circle-right-wh.png");
   transform: translateX(4px);
}

body:not(.home) #service {
   background-color: #fff;
}

@media screen and (max-width: 1440px) {
   #service .banner .text {
      padding: 30px 20px 48px;
   }

   #service .banner .btn-more a {
      padding: 9px 45px 9px 20px;
   }
}

@media screen and (max-width: 1200px) {
   #service .banner {
      grid-template-columns: repeat(2, 1fr);
   }

   #service .banner .col:nth-child(4n+1) {
      border-left: 1px solid #ccc;
   }

   #service .banner .col:nth-child(2n+1) {
      border-left: 0;
   }
}

@media screen and (max-width: 767px) {
   #service {
      padding-top: 50px;
   }

   #service h2 {
      flex-direction: column;
      text-align: center;
      gap: 15px;
   }

   #service h2 .en {
      flex-direction: column;
      gap: 15px;
      top: 0;
   }

   #service h2 .en:before {
      width: 0;
      height: 40px;
      border-top: 0;
      border-left: 2px solid #B5C9DC;
   }

   #service .desc {
      padding: 30px 0 40px;
   }

   #service .banner {
      grid-template-columns: 1fr;
   }

   #service .banner .slick-track {
      display: flex;
   }

   #service .banner .slick-track:before,
   #service .banner .slick-track:after {
      display: none;
   }

   #service .banner .slick-arrow {
      position: absolute;
      top: 24vw;
      z-index: 1;
   }

   #service .banner .slick-prev {
      left: 5px;
   }

   #service .banner .slick-next {
      right: 5px;
   }

   #service .banner .slick-dots {
      position: absolute;
      top: 100%;
      right: 0;
      left: 0;
      margin-top: 20px;
   }

   #service .banner .col {
      height: auto;
      float: none;
      border-left: 0;
      border-right: 1px solid #ccc;
   }

   #service .banner figure {
      height: 48vw;
   }

   #service .banner figure img {
      width: 100%;
      max-width: inherit;
      height: 100%;
      object-fit: cover;
   }

   #service .banner .text {
      padding: 30px 20px;
   }

   body:not(.home) #service {
      padding-bottom: 100px;
   }
}

/* -- --*/
#works {
   padding-top: 65px;
}

#works h2 {
   display: flex;
   align-items: center;
   gap: 25px;
}

#works h2 .en {
   display: flex;
   align-items: center;
   gap: 25px;
   position: relative;
   top: 5px;
}

#works h2 .en:before {
   content: '';
   display: block;
   width: 86px;
   height: 2px;
   border-top: 2px solid #B5C9DC;
}

#works .desc {
   padding: 35px 0;
}

#works .row {
   background-color: #F9F9F9;
   padding: 100px 0;
}

#works .row .wrap {
   display: flex;
   align-items: center;
   gap: 12px;
   padding-top: 35px;
}

#works .row .button {
   flex: 1 0 0;
   text-align: right;
}

#works .work-swiper {
   width: calc(50% + 550px);
   margin-right: 0;
}

#works .work-swiper .swiper-slide {
   width: 380px;
   height: auto;
   background-color: #fff;
   margin-right: 25px;
   padding: 35px;
   box-sizing: border-box;
}

#works .work-swiper .location {
   background: url("../img/common/icon-location.png") no-repeat center left/15px auto;
   padding-left: 20px;
   font-weight: 700;
   font-size: 15px;
}

#works .work-swiper h3 {
   font-weight: 700;
   font-size: 20px;
   letter-spacing: 0.05em;
   padding: 10px 0 18px;
   min-height: 68px;
}

#works .work-swiper h3 a {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

#works .work-swiper .txt-info {
   font-size: 14px;
   line-height: 1.5;
   padding-top: 20px;
}

#works .work-swiper .txt-info dl {
   display: grid;
   grid-template-columns: 72px 1fr;
   align-items: flex-start;
   gap: 8px;
}

#works .work-swiper .txt-info dl:not(:last-child) {
   padding-bottom: 8px;
}

#works .work-swiper .txt-info dl dt {
   border: 1px solid #333;
   line-height: 23px;
   text-align: center;
}

#works .work-swiper .txt-info dl dd {
   font-weight: 400;
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

#works .work-swiper .txt-info dl:not(.last) dd {
   font-size: 16px;
}

#works .before-after-swiper .swiper-slide {
   margin: 0;
   padding: 0;
}

#works .before-after-swiper .swiper-slide a {
   display: block;
   position: relative;
   padding-top: 53.2%;
}

#works .before-after-swiper .swiper-slide a img {
   position: absolute;
   top: 0;
   left: 0;
}

#works .before-after-swiper .swiper-button-prev,
#works .before-after-swiper .swiper-button-next {
   display: inline-block;
   background: transparent;
   width: auto;
   height: auto;
   font-weight: 700;
   font-size: 14px;
   line-height: 1.5;
   color: #1471CA;
   margin: 0;
}

#works .before-after-swiper .swiper-button-prev:after,
#works .before-after-swiper .swiper-button-next:after {
   content: '';
   width: 0;
   height: 0;
   border-width: 8px;
   border-color: transparent;
   border-style: solid;
   position: absolute;
   top: 3px;
}

#works .before-after-swiper .swiper-button-prev {
   padding-left: 16px;
}

#works .before-after-swiper .swiper-button-prev:after {
   border-right-color: #1471CA;
   border-left: 0;
   left: 0;
}

#works .before-after-swiper .swiper-button-next {
   padding-right: 16px;
}

#works .before-after-swiper .swiper-button-next:after {
   border-left-color: #1471CA;
   border-right: 0;
   right: 0;
}

#works .before-after-swiper .nav {
   display: flex;
   justify-content: space-between;
   padding-top: 8px;
}

@media screen and (max-width: 1200px) {
   #works .work-swiper {
      width: calc(50% + 480px);
   }
}

@media screen and (max-width: 1023px) {
   #works .work-swiper {
      width: calc(50% + 360px);
   }
}

@media screen and (max-width: 767px) {
   #works {
      margin-top: 50px;
      padding-top: 50px;
   }

   #works h2 {
      flex-direction: column;
      text-align: center;
      gap: 15px;
   }

   #works h2 .en {
      flex-direction: column;
      gap: 15px;
      top: 0;
   }

   #works h2 .en:before {
      width: 0;
      height: 40px;
      border-top: 0;
      border-left: 2px solid #B5C9DC;
   }

   #works .row {
      padding: 50px 0;
   }

   #works .work-swiper {
      width: calc(100% - 20px);
   }

   #works .work-swiper .swiper-slide {
      width: 80vw;
      margin-right: 15px;
      padding: 20px;
   }
}

/* -- --*/
#news {
   padding: 120px 0;
}

#news .wrap {
   display: grid;
   grid-template-columns: 375px 1fr;
}

#news .list li {
   border-bottom: 1px solid #E8E8E8;
   padding-bottom: 30px;
}

#news .list li+li {
   padding-top: 30px;
}

#news .list time {
   display: block;
   color: #767676;
   font-size: 14px;
   line-height: 20px;
   padding-bottom: 20px;
}

#news .list a {
   font-size: 22px;
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

#news .button {
   padding-top: 180px;
   position: absolute;
   top: 0;
   left: 0;
}

@media screen and (max-width: 767px) {
   #news {
      padding: 50px 0;
   }

   #news .wrap {
      display: block;
   }

   #news .list {
      padding-top: 30px;
   }

   #news .list li {
      padding-bottom: 20px;
   }

   #news .list li+li {
      padding-top: 20px;
   }

   #news .list time {
      padding-bottom: 10px;
   }

   #news .list a {
      font-size: 18px;
   }

   #news .button {
      position: static;
      padding-top: 40px;
   }
}

/* -- --*/
#column {
   background-color: #F9F9F9;
   padding: 120px 0;
}

#column h2 {
   display: flex;
   align-items: center;
   gap: 25px;
}

#column h2 .en {
   display: flex;
   align-items: center;
   gap: 25px;
   position: relative;
   top: 5px;
}

#column h2 .en:before {
   content: '';
   display: block;
   width: 86px;
   height: 2px;
   border-top: 2px solid #B5C9DC;
}

#column .box {
   padding-top: 28px;
}

#column .box .item {
   display: grid;
   align-items: center;
   grid-template-columns: 320px 1fr;
   gap: 40px;
   padding: 36px 0;
   border-bottom: 1px solid #E8E8E8;
}

#column .box figure {
   width: 100%;
   padding-top: 56.2%;
   position: relative;
}

#column .box figure img {
   position: absolute;
   top: 0;
   left: 0;
}

#column .box .cat {
   display: inline-block;
   vertical-align: middle;
   min-width: 50px;
   background-color: #1471CA;
   color: #fff;
   font-weight: 700;
   font-size: 14px;
   line-height: 26px;
   text-align: center;
   margin-right: 10px;
   padding: 0 10px;
}

#column .box time {
   display: inline-block;
   vertical-align: middle;
   color: #767676;
   font-weight: 500;
   font-size: 14px;
   line-height: 26px;
}

#column .box h3 {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 1;
   display: -webkit-box;
   overflow: hidden;
   margin-top: 15px;
}

#column .box .txt {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
   margin-top: 5px;
   color: #444;
}

#column .button {
   position: absolute;
   top: -5px;
   right: 0;
}

@media screen and (max-width: 767px) {
   #column {
      padding: 50px 0;
   }

   #column h2 {
      flex-direction: column;
      text-align: center;
      gap: 15px;
   }

   #column h2 .en {
      flex-direction: column;
      gap: 15px;
      top: 0;
   }

   #column h2 .en:before {
      width: 0;
      height: 40px;
      border-top: 0;
      border-left: 2px solid #B5C9DC;
   }

   #column .box {
      padding-top: 0;
   }

   #column .box .item {
      display: block;
      padding: 30px 0;
   }

   #column .box figure {
      margin-bottom: 30px;
   }

   #column .box h3 {
      -webkit-line-clamp: 2;
      font-size: 18px;
   }

   #column .button {
      position: static;
      padding-top: 40px;
   }
}

/* -- -- */
#partner {
   padding-top: 80px;
}

#partner .wrap {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 30px 60px;
   padding: 108px 50px;
   border-radius: 24px;
   overflow: hidden;
   color: #fff;
}

#partner .img-obj {
   position: absolute;
   top: 0;
   left: 0;
}

#partner h2 {
   width: max-content;
   font-weight: 700;
   font-size: 50px;
   line-height: 60px;
   position: relative;
}

#partner h2 .sub {
   display: flex;
   align-items: center;
   gap: 10px;
   font-family: "Roboto", sans-serif;
   font-weight: 400;
   font-size: 14px;
   letter-spacing: 0.1em;
   line-height: 16px;
   padding-top: 8px;
}

#partner h2 .sub:before {
   content: '';
   border-top: 1px solid #fff;
   flex: 1 0 0;
}

#partner .txt {
   flex: 1 0 0;
   line-height: 1.75;
   position: relative;
}

#partner .button a {
   min-width: 293px;
   height: 80px;
   font-size: 20px;
   background-color: #1471CA;
   border-color: #1471CA;
   color: #fff;
}
#partner .button a:after {
   width: 50px;
   height: 50px;
   background-image: url('../img/common/arrow-circle-right-1.png');
}

@media screen and (max-width: 1440px) {
   #partner .wrap {
      gap: 30px;
   }

   #partner .txt br.sp {
      display: block;
   }
}

@media screen and (max-width: 1023px) {
   #partner .wrap {
      flex-direction: column;
      flex-wrap: nowrap;
   }

   #partner .txt {
      text-align: center;
   }

   #partner .txt br.sp {
      display: none;
   }
}

@media screen and (max-width: 767px) {
   #partner {
      padding-top: 0;
   }

   #partner .wrap {
      flex-direction: column;
      gap: 20px;
      border-radius: 0;
      padding: 40px 20px;
   }

   #partner .wrap:after {
      width: 40px;
      height: 40px;
      right: 20px;
   }

   #partner h2 {
      font-size: 30px;
      line-height: 40px;
   }

   #partner .txt {
      flex: inherit;
      font-size: 15px;
   }

   #partner .txt br.sp {
      display: block;
   }

   #partner .button a {
      min-width: 250px;
      height: 70px;
      font-size: 18px;
      padding-right: 15px;
   }

   #partner .button a:after {
      width: 40px;
      height: 40px;
   }
}

@media screen and (min-width: 1201px) {
   #partner .wrap {
      max-width: 1140px;
   }
}

@media screen and (min-width: 1441px) {
   #partner .wrap {
      max-width: 1320px;
   }
}

/*=============================================
 * 会社概要
*=============================================*/
#outline {
   overflow: hidden;
}

#outline .desc {
   font-size: 17px;
   letter-spacing: 0.04em;
   line-height: 2.42;
   padding-bottom: 54px;
}

#outline .box {
   position: relative;
}

#outline .box h2 {
   padding: 60px 0 40px;
}

#outline .box figure {
   width: 712px;
   position: absolute;
   top: 0;
   left: 50%;
}

#outline .box .txt {
   background-color: #F9F9F9;
   letter-spacing: 0.02em;
   line-height: 2;
   padding: 65px;
}

#outline .box .txt .in {
   max-width: 420px;
}

#outline .box .txt p+p {
   padding-top: 30px;
}

#outline .table-info {
   width: 100%;
   margin-top: 72px;
}

#outline .table-info th,
#outline .table-info td {
   border-bottom: 1px solid #E1E1E1;
   font-weight: 500;
   letter-spacing: 0.02em;
   line-height: 2;
   text-align: left;
   vertical-align: top;
   padding: 20px 0;
}

#outline .table-info th {
   width: 150px;
}

#outline .table-info td ol li {
   text-indent: -20px;
   padding-left: 20px;
}

#outline .table-info td ul li {
   text-indent: -16px;
   padding-left: 16px;
}

#outline .table-info .address .item:not(:last-child) {
   padding-bottom: 35px;
}

#outline .table-info .address a:not([href^="tel:"]) {
   border-bottom: 1px solid;
}

#outline .table-info .address a:not([href^="tel:"]):hover {
   border-bottom-color: transparent;
}

#outline .photos {
   display: flex;
   justify-content: center;
   flex-wrap: wrap;
   gap: 45px;
   padding: 40px 0;
   text-align: center;
   border-bottom: 1px solid #E1E1E1;
}

#outline .photos figure {
   width: 325px;
}

#outline .photos figcaption {
   color: #555;
   padding-top: 14px;
}

@media screen and (max-width: 1200px) {
   #outline .box figure {
      left: 55%;
   }
}

@media screen and (max-width: 1023px) {
   #outline .box h2 {
      padding-top: 0;
   }

   #outline .box figure {
      width: 100%;
      position: static;
   }

   #outline .box .txt .in {
      max-width: 100%;
   }
}

@media screen and (max-width: 767px) {
   #outline .desc {
      font-size: 16px;
      padding-bottom: 40px;
   }

   #outline .box h2 {
      padding-bottom: 30px;
   }

   #outline .box figure {
      width: 100%;
      position: static;
   }

   #outline .box .txt {
      padding: 30px 20px;
   }

   #outline .box .txt p+p {
      padding-top: 20px;
   }

   #outline .table-info {
      margin-top: 20px;
   }

   #outline .table-info tr,
   #outline .table-info th,
   #outline .table-info td {
      display: block;
      border-bottom: 0;
      padding: 0;
   }

   #outline .table-info tr {
      border-bottom: 1px solid #E1E1E1;
      padding: 20px 0;
   }

   #outline .table-info th {
      width: auto;
      padding-bottom: 10px;
   }

   #outline .table-info td ol li {
      text-indent: -18px;
      padding-left: 18px;
   }

   #outline .table-info td ul li {
      text-indent: -14px;
      padding-left: 14px;
   }

   #outline .photos {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 20px;
   }

   #outline .photos figure {
      width: 100%;
   }

   #outline .photos figcaption {
      font-size: 12px;
      padding-top: 10px;
   }
}

/* -- -- */
#access {
   padding: 120px 0 80px;
}

#access .box {
   padding-top: 60px;
}

#access .box+.box {
   padding-top: 35px;
}

#access h3 {
   border-left: 2px solid #1471CA;
   padding-left: 16px;
}

#access .gmap {
   width: 100%;
   height: 465px;
   margin-top: 25px;
}

#access .gmap iframe {
   display: block;
   width: 100%;
   height: 100%;
}

#access .txt {
   line-height: 2;
   letter-spacing: 0.02em;
   padding-top: 20px;
}

@media screen and (max-width: 767px) {
   #access {
      padding: 50px 0;
   }

   #access .box {
      padding-top: 30px;
   }

   #access .gmap {
      height: 300px;
   }
}

/*=============================================
 * 協力業者募集
*=============================================*/
#collaborator__sec1,
#collaborator__sec2 {
   padding-bottom: 100px;
}

#collaborator__sec1 h2,
#collaborator__sec2 h2 {
   border-bottom: 2px solid #1471CA;
   padding-bottom: 15px;
}

#collaborator__sec1 .catch,
#collaborator__sec2 .catch {
   font-weight: 600;
   letter-spacing: 0.04em;
   line-height: 2.28;
   border: 1px solid #ABABAB;
   margin-top: 50px;
   padding: 35px 10px;
}

#collaborator__sec1 .box {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 26px;
   padding-top: 50px;
}

#collaborator__sec1 .box .col {
   padding: 20px;
   background-color: #F9F9F9;
}

#collaborator__sec1 .box h3 {
   border-left: 3px solid #1471CA;
   padding-left: 17px;
   letter-spacing: 0.02em;
}

#collaborator__sec1 .box figure {
   padding-top: 24px;
}

#collaborator__sec1 .box .txt {
   font-size: 15px;
   letter-spacing: 0.02em;
   line-height: 1.85;
   padding-top: 15px;
}

#collaborator__sec2 .box {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 47px;
   padding-top: 60px;
   text-align: center;
}

#collaborator__sec2 .box figure {
   position: relative;
   padding-bottom: 20px;
}

#collaborator__sec2 .box figcaption {
   font-weight: 600;
   font-size: 54px;
   line-height: 63px;
   position: absolute;
   bottom: -10px;
   left: 10px;
}

#collaborator__sec2 .box h3 {
   line-height: 1.64;
   letter-spacing: 0.05em;
}

@media screen and (max-width: 767px) {

   #collaborator__sec1,
   #collaborator__sec2 {
      padding-bottom: 50px;
   }

   #collaborator__sec1 .catch,
   #collaborator__sec2 .catch {
      margin-top: 40px;
      padding: 20px 10px;
   }

   #collaborator__sec1 .box {
      grid-template-columns: 1fr;
      padding-top: 30px;
   }

   #collaborator__sec1 .box .txt {
      font-size: 14px;
   }

   #collaborator__sec2 .box {
      grid-template-columns: 1fr;
      gap: 30px;
      padding-top: 30px;
   }
}

/*=============================================
 * サービス内容
*=============================================*/
.service__lead {
   letter-spacing: 0.04em;
   padding-bottom: 120px;
}

.service__lead .ttl-sub {
   display: flex;
   align-items: center;
   gap: 10px;
   font-weight: 500;
   font-size: 12px;
   line-height: 20px;
}

.service__lead .ttl-sub span {
   display: flex;
   align-items: center;
   gap: 10px;
   text-transform: uppercase;
}

.service__lead .ttl-sub span:before {
   content: '';
   width: 0;
   height: 12px;
   border-left: 1px solid #1471CA;
   transform: rotate(-15deg);
}

.service__lead .ttl-sub span.current {
   color: #ABABAB;
}

.service__lead h2 {
   font-weight: 700;
   font-size: 44px;
   line-height: 64px;
   padding-top: 20px;
}

.service__lead h3 {
   border-left: 3px solid #1471CA;
   padding-left: 17px;
   margin-top: 60px;
}

.service__lead h4 {
   font-weight: 700;
   font-size: 15px;
   line-height: 2;
   color: #555;
}

.service__lead .txt {
   font-size: 17px;
   line-height: 2.42;
   padding-top: 25px;
}

.service__lead .list-check {
   display: flex;
   align-items: flex-start;
   flex-wrap: wrap;
   gap: 16px 0px;
   padding-top: 10px;
}

.service__lead .list-check li {
   width: 170px;
   background: url("../img/service/icon-check.png") no-repeat top 5px left/20px auto;
   padding-left: 35px;
}

.service__lead .list-check li strong {
   font-weight: 700;
}

.service__lead .star {
   width: 210px;
   font-size: 17px;
   line-height: 2;
   border: 1px solid #BABABA;
   box-sizing: border-box;
   margin-top: 10px;
   padding: 14px 20px;
}

.service__lead .star>span {
   color: #0F8EA7;
}

.service__lead .star>span span {
   color: #B4B4B4;
}

.service__lead .wrap {
   display: flex;
   justify-content: space-between;
   gap: 20px;
}

.service__lead .col {
   width: 635px;
}

.service__lead .nav {
   width: 310px;
}

.service__lead .nav a {
   display: block;
   font-weight: 700;
   font-size: 18px;
   line-height: 2;
   letter-spacing: 0.06em;
   padding: 12px 0;
   position: relative;
}

.service__lead .nav a:before {
   content: '';
   width: 100%;
   height: 1px;
   background: linear-gradient(to right, #1471CA 20px, #fff 20px, #fff 22px, #DBDBDB 22px);
   position: absolute;
   bottom: 0;
   left: 0;
}

.service__lead .nav a:after {
   content: '';
   width: 18px;
   height: 18px;
   background: url("../img/common/arrow-circle-right-2.png") no-repeat center top/cover;
   position: absolute;
   top: 50%;
   right: 0;
   transform: translateY(-50%);
   transition: all 0.3s;
}

.service__lead .nav a.current,
.service__lead .nav a:hover {
   color: #888;
   opacity: 1;
}

.service__lead .nav a.current:after,
.service__lead .nav a:hover:after {
   background-image: url("../img/common/arrow-circle-right-2-grey.png");
}

.service__lead .nav a.current {
   pointer-events: none;
}

@media screen and (max-width: 767px) {
   .service__lead {
      padding-bottom: 50px;
   }

   .service__lead .wrap {
      flex-direction: column;
      gap: 50px;
   }

   .service__lead h2 {
      font-size: 30px;
      line-height: 45px;
      padding-top: 10px;
   }

   .service__lead h3 {
      margin-top: 30px;
   }

   .service__lead .txt {
      font-size: 15px;
      padding-top: 15px;
   }

   .service__lead .col {
      width: 100%;
   }

   .service__lead .nav {
      width: 100%;
   }

   .service__lead .nav a {
      font-size: 16px;
      padding: 10px 0;
   }
}

.service__content {
   background-color: #F9F9F9;
}

.service__content .head {
   display: flex;
   align-items: center;
   background-color: #1471CA;
   color: #fff;
   height: 150px;
}

.service__content h2 .en {
   color: rgba(255, 255, 255, 0.68);
}

.service__content .row {
   padding: 120px 0 160px;
}

.service__content:not(.no-aside) .row {
   display: grid;
   grid-template-columns: calc(50% - 350px) 920px;
   align-items: flex-start;
}

.service__content aside {
   position: sticky;
   top: 160px;
   padding: 0 25px;
}

.service__content aside h3 {
   padding-bottom: 25px;
}

.service__content aside ul li:not(:last-child) {
   padding-bottom: 16px;
}

.service__content aside ul li a {
   font-weight: 500;
   font-size: 17px;
   line-height: 2;
   letter-spacing: 0.04em;
   position: relative;
}

.service__content aside ul li a:before {
   content: '';
   width: 7px;
   height: 7px;
   background: #0F6CA7;
   position: absolute;
   top: 9px;
   left: -12px;
   border-radius: 50%;
   opacity: 0;
   transition: all 0.3s;
}

.service__content aside ul li a:hover,
.service__content aside ul li a.active {
   color: #0F6CA7;
}

.service__content aside ul li a:hover:before,
.service__content aside ul li a.active:before {
   opacity: 1;
}

.service__content .block {
   background-color: #fff;
   padding: 50px;
   letter-spacing: 0.04em;
   line-height: 1.83;
}

.service__content .block:not(:last-child) {
   margin-bottom: 120px;
}

.service__content .title {
   font-weight: 700;
   font-size: 34px;
   letter-spacing: 0.04em;
   line-height: 48px;
}

.service__content .title img {
   max-width: 101px;
   margin-left: 20px;
   vertical-align: baseline;
}

.service__content .title span:not(.uline) {
   display: grid;
   grid-template-columns: 30px 1fr;
   align-items: center;
   gap: 20px;
   color: #0F6CA7;
   margin-top: 10px;
}

.service__content .title span:not(.uline):before {
   content: '';
   width: 100%;
   height: 0;
   border-top: 2px solid #0F6CA7;
   position: relative;
   top: 2px;
}

.service__content .title .uline {
   display: block;
   width: 30px;
   border-top: 2px solid #0F6CA7;
   margin-top: 30px;
}

.service__content .title-sub {
   border-left: 3px solid #1471CA;
   padding-left: 17px;
}

.service__content .desc {
   font-weight: 700;
   font-size: 17px;
   line-height: 2.42;
}

.service__content .txt-bg {
   background-color: #F9F9F9;
   font-size: 15px;
   line-height: 1.83;
   padding: 25px 30px;
}

.service__content .photo-ba {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 60px;
   position: relative;
}

.service__content .photo-ba:after {
   content: '';
   width: 25px;
   height: 15px;
   background: url("../img/service/arrow-r.png") no-repeat center top/cover;
   position: absolute;
   top: calc(50% + 32px);
   left: 50%;
   transform: translate(-50%, -50%);
}

.service__content .photo-ba figcaption {
   font-size: 17px;
   line-height: 2;
   border: 1px solid;
   text-align: center;
   margin-bottom: 25px;
   padding: 2px;
}

.service__content .photo-ba .b figcaption {
   color: #555;
}

.service__content .photo-ba .a figcaption {
   color: #0F8EA7;
}

.service__content .table table {
   width: 100%;
}

.service__content .table th,
.service__content .table td {
   vertical-align: middle;
   border: 1px solid #D4D4D4;
   font-weight: 700;
   line-height: 2;
   padding: 11px 20px;
}

.service__content .table th {
   background-color: #F8F8F8;
   width: 212px;
}

.service__content .table.style1 {
   width: 100%;
}

.service__content .table.style1 table {
   table-layout: fixed;
   min-width: 805px;
}

.service__content .table.style1 table th,
.service__content .table.style1 table td {
   height: 55px;
   font-weight: 700;
   vertical-align: middle;
   text-align: center;
   line-height: 22px;
   padding: 0;
}

.service__content .table.style1 table thead th {
   background-color: #2D9CB2;
   color: #fff;
   font-size: 15px;
   width: 20%;
}

.service__content .table.style1 table thead th:first-child {
   background-color: #fff;
}

.service__content .table.style1 table thead tbody th,
.service__content .table.style1 table thead tbody td {
   font-size: 14px;
}

.service__content .list-check li {
   background: url("../img/service/icon-check.png") no-repeat top 5px left/20px auto;
   padding-left: 35px;
}

.service__content .list-check li:not(:last-child) {
   padding-bottom: 20px;
}

.service__content .list-check li strong {
   font-weight: 700;
}

.service__content .list-check.df {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 16px 32px;
}

.service__content .list-check.df li {
   min-width: 170px;
   padding-bottom: 0;
}

.service__content .cl-green {
   color: #0F8EA7;
}

.service__content .merit .list {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 30px;
   padding-top: 30px;
}

.service__content .merit .list figure {
   max-width: 162px;
   margin: 5px auto 0;
}

.service__content .merit .list .txt {
   font-weight: 700;
   line-height: 2.06;
   letter-spacing: 0;
   padding-top: 15px;
}

.service__content .merit .list.x4 {
   grid-template-columns: repeat(4, 1fr);
}

.service__content .photo-1 {
   display: grid;
   grid-template-columns: 50% 43%;
   gap: 0 7%;
   max-width: 707px;
   margin-right: auto;
   margin-left: auto;
}

.service__content .box-col-x2 {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 45px;
}

.service__content .box-col-x3 {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 45px;
   font-size: 15px;
}

.service__content .box-cause {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 45px;
}

.service__content .box-cause .item {
   display: flex;
   flex-direction: column;
}

.service__content .box-cause h4 {
   background-color: #F9F9F9;
   border: 1px solid #ccc;
   padding: 20px;
}

.service__content .box-cause h4 span {
   font-weight: 700;
   font-size: 15px;
}

.service__content .box-cause .txt {
   padding: 24px 27px 32px;
   border: 1px solid #ccc;
   border-top: 0;
   flex: 1 0 0;
}

.service__content .box-cause .txt p {
   font-size: 15px;
}

.service__content .box-cause .txt ul li:not(:last-child) {
   padding-bottom: 10px;
}

.service__content .flow {
   font-size: 15px;
}

.service__content .flow ul {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 20px;
   font-weight: 700;
   color: #0F8EA7;
   text-align: center;
}

.service__content .flow ul li {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   min-height: 132px;
   border: 1px solid #ccc;
   position: relative;
}

.service__content .flow ul li:not(:last-child):before {
   content: '';
   width: 0;
   height: 0;
   border-width: 4px 0 4px 8px;
   border-color: transparent transparent transparent #0F8EA7;
   border-style: solid;
   position: absolute;
   top: calc(50% - 4px);
   left: 100%;
   margin-left: 8px;
}

.service__content .problems {
   display: grid;
   grid-template-columns: 281px 1fr;
   gap: 40px;
}

.service__content .amamori-banner {
   padding: 55px 48px;
   position: relative;
   color: #fff;
}

.service__content .amamori-banner .img-obj {
   position: absolute;
   top: 0;
   left: 0;
}

.service__content .amamori-banner h4 {
   display: grid;
   grid-template-columns: 100px 1fr;
   align-items: center;
   gap: 50px;
   position: relative;
   line-height: 1.85;
   letter-spacing: 0.02em;
}

.service__content .improved {
   display: grid;
   border: 2px solid #ccc;
   padding: 18px;
   text-align: center;
}

.service__content .improved p {
   grid-area: 1/1;
   line-height: 1.7;
}

.service__content .improved .en {
   color: #000;
   font-weight: 700;
   font-size: 44px;
   letter-spacing: 0.09em;
   opacity: 0.03;
   text-transform: uppercase;
}

.service__content figure.has-caption {
   text-align: center;
}

.service__content figure.has-caption figcaption {
   font-size: 15px;
   padding-top: 15px;
}

.service__content figure.has-caption.txt-l {
   text-align: left;
}

.service__content .photo-gr {
   position: relative;
}

.service__content .photo-gr figure:nth-child(1) {
   width: 67.4%;
}

.service__content .photo-gr figure:nth-child(2),
.service__content .photo-gr figure:nth-child(3) {
   width: 32.6%;
   height: 50%;
   position: absolute;
   right: 0;
}

.service__content .photo-gr figure:nth-child(2) {
   top: 0;
}

.service__content .photo-gr figure:nth-child(3) {
   bottom: 0;
}

.service__content .photo-gr-1 {
   display: flex;
   flex-wrap: wrap;
}

.service__content .photo-gr-1 figure {
   width: 50%;
}

.service__content .photo-gr-1 figure:first-child {
   width: 100%;
}

.service__content .qa-item .txt-q {
   border-bottom: 2px solid #0F6CA7;
   text-indent: -24px;
   padding-bottom: 12px;
   padding-left: 24px;
}

.service__content .qa-item .txt-a {
   font-size: 17px;
   line-height: 2.45;
   padding-top: 30px;
}

.service__content .differs h4 {
   background-color: #F9F9F9;
   border: 1px solid #ccc;
   padding: 18px;
}

.service__content .differs h4 span {
   font-size: 15px;
}

.service__content .differs .txt {
   border: 1px solid #ccc;
   border-top: 0;
   padding: 40px 27px;
}

@media screen and (max-width: 1200px) {
   .service__content .row:not(.no-aside) {
      grid-template-columns: 280px calc(100% - 280px);
      padding-right: 30px;
   }

   .service__content aside {
      padding: 0 20px;
   }

   .service__content .improved .en {
      font-size: 36px;
   }
}

@media screen and (max-width: 1023px) {
   .service__content .head {
      padding: 30px 0;
   }

   .service__content .h2.type-1 {
      flex-direction: column;
      text-align: center;
      gap: 15px;
   }

   .service__content .h2.type-1 .en {
      flex-direction: column;
      gap: 15px;
      top: 0;
   }

   .service__content .h2.type-1 .en:before {
      width: 0;
      height: 40px;
      border-top: 0;
      border-left: 2px solid #B5C9DC;
   }

   .service__content .row {
      padding: 120px 30px 160px;
   }

   .service__content .row:not(.no-aside) {
      grid-template-columns: 100%;
   }

   .service__content aside {
      padding: 50px 0;
      position: relative;
      top: 0;
   }

   .service__content aside h3 {
      text-align: center;
   }

   .service__content aside ul {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
   }

   .service__content aside ul li:not(:last-child) {
      padding-bottom: 0;
   }

   .service__content .box-col-x3 {
      gap: 20px;
      font-size: 14px;
   }

   .service__content .box-col-x3 .h-18 {
      font-size: 16px;
   }

   .service__content .flow {
      font-size: 14px;
   }

   .service__content .flow ul {
      grid-template-columns: repeat(3, 1fr);
   }

   .service__content .amamori-banner {
      padding: 40px 30px;
   }

   .service__content .amamori-banner h4 {
      gap: 20px;
   }
}

@media screen and (max-width: 767px) {
   .service__content .row {
      padding: 50px 20px;
   }

   .service__content .row .wrap {
      padding: 0;
   }

   .service__content aside h3 {
      padding-bottom: 20px;
   }

   .service__content aside ul {
      grid-template-columns: repeat(2, 1fr);
   }

   .service__content aside ul li a {
      font-size: 12px;
   }

   .service__content aside ul li a:before {
      top: 5px;
   }

   .service__content .block {
      padding: 30px 20px;
   }

   .service__content .block:not(:last-child) {
      margin-bottom: 50px;
   }

   .service__content .title {
      font-size: 20px;
      line-height: 30px;
   }

   .service__content .title span {
      grid-template-columns: 20px 1fr;
      gap: 10px;
      font-size: 16px;
      margin-top: 5px;
   }

   .service__content .title img {
      margin-left: 0;
   }

   .service__content .desc {
      font-size: 15px;
      line-height: 2;
      margin-top: 20px;
   }

   .service__content .txt-bg {
      font-size: 14px;
      margin-top: 30px;
      padding: 20px;
   }

   .service__content .photo-ba {
      grid-template-columns: 1fr;
   }

   .service__content .photo-ba:after {
      top: 50%;
      transform: translate(-50%, -50%) rotate(90deg);
   }

   .service__content .photo-ba figcaption {
      margin-bottom: 15px;
   }

   .service__content .table th,
   .service__content .table td {
      padding: 10px;
   }

   .service__content .table th {
      width: 35%;
      padding-right: 5px;
      padding-left: 5px;
   }

   .service__content .merit .list,
   .service__content .merit .list.x4 {
      grid-template-columns: 1fr;
   }

   .service__content .list-check li {
      background-size: 15px auto;
      padding-left: 20px;
   }

   .service__content .list-check.df {
      flex-direction: column;
      align-items: flex-start;
      flex-wrap: nowrap;
      gap: 10px;
   }

   .service__content .photo-1 {
      grid-template-columns: 1fr;
      gap: 20px;
   }

   .service__content figure.has-caption figcaption {
      font-size: 12px;
      padding-top: 10px;
   }

   .service__content .box-col-x2 {
      grid-template-columns: 1fr;
      gap: 30px;
   }

   .service__content .box-col-x3 {
      grid-template-columns: 1fr;
      gap: 30px;
      font-size: 14px;
   }

   .service__content .box-cause {
      grid-template-columns: 1fr;
      gap: 30px;
   }

   .service__content .box-cause .txt {
      padding: 20px;
   }

   .service__content .box-cause .txt p {
      font-size: 14px;
   }

   .service__content .flow {
      font-size: 14px;
   }

   .service__content .flow ul {
      grid-template-columns: repeat(2, 1fr);
   }

   .service__content .flow ul li {
      min-height: 80px;
   }

   .service__content .problems {
      grid-template-columns: 1fr;
      gap: 20px;
   }

   .service__content .amamori-banner {
      padding: 30px 20px;
   }

   .service__content .amamori-banner h4 {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      text-align: center;
   }

   .service__content .amamori-banner h4 img {
      max-width: 120px;
   }

   .service__content .improved {
      padding: 20px 10px;
   }

   .service__content .improved p {
      grid-area: inherit;
   }

   .service__content .improved .en {
      font-size: 28px;
      line-height: 1;
      padding-bottom: 10px;
   }

   .service__content .photo-gr {
      display: flex;
      flex-wrap: wrap;
   }

   .service__content .photo-gr figure:nth-child(1) {
      width: 100%;
   }

   .service__content .photo-gr figure:nth-child(2),
   .service__content .photo-gr figure:nth-child(3) {
      width: 50%;
      height: auto;
      position: static;
   }

   .service__content .differs h4 {
      font-size: 18px;
      padding: 15px 10px;
   }

   .service__content .differs .txt {
      padding: 20px 20px;
   }

   .service__content .qa-item .txt-q {
      padding-left: 20px;
      text-indent: -20px;
   }

   .service__content .qa-item .txt-a {
      font-size: 14px;
      line-height: 2;
      padding-top: 15px;
   }
}

/*=============================================
 * お問い合わせ
*=============================================*/
.entry_form {
   padding-bottom: 100px;
}

.entry_form h2.h-22 {
   border-bottom: 2px solid #1471CA;
   padding-bottom: 15px;
}

.entry_form h2.h-32 {
   letter-spacing: 0.03em;
}

.entry_form .desc {
   font-size: 17px;
   line-height: 2.42;
   letter-spacing: 0.04em;
   padding-top: 40px;
}

.entry_form__inner {
   background-color: #F9F9F9;
   margin-top: 60px;
   padding: 40px 40px 80px;
}

.entry_form input,
.entry_form select,
.entry_form textarea {
   line-height: 2;
   border: 1px solid #8a8a8a;
   padding: 8px 15px;
   vertical-align: middle;
   width: 100%;
   width: 100%;
   box-sizing: border-box;
}

.entry_form textarea {
   resize: vertical;
}

.entry_form input[type="checkbox"],
.entry_form input[type="radio"] {
   width: auto;
   margin: 0 0.5em 0 0;
}

.entry_form .short {
   width: 55%;
}

.entry_form .short02 {
   width: 20%;
}

.entry_form .middle {
   width: 60%;
}

.entry_form .long {
   width: 100%;
}

.entry_form .address .long {
   width: 100%;
}

.entry_form .error {
   color: #b93c3c;
   font-size: clamp(14px, 1.7vw, 16px) !important;
   display: block;
}

.entry_form .lead {
   font-size: clamp(14px, 1.7vw, 16px);
   margin: 0 auto 5rem;
}

.entry_form table {
   width: 100%;
   margin-bottom: 60px;
}

.entry_form table tr th,
.entry_form table tr td {
   padding: 0.8em 0;
   border: none;
}

.entry_form table tr td {
   font-size: clamp(14px, 1.7vw, 16px);
}

.entry_form table tr th {
   font-weight: 600;
   text-align: left;
   width: 30%;
   vertical-align: top;
   font-size: clamp(18px, 1.7vw, 20px);
}

.entry_form td .radio_area li {
   display: flex;
   align-items: center;
   margin-bottom: 0.8em;
}

.entry_form th .must-fill {
   color: #E35252;
   font-size: clamp(14px, 1.7vw, 16px);
   margin-left: 2%;
   font-weight: 400;
}

.entry_form tr:first-child td .radio_area li:last-child {
   margin-bottom: 0;
}

.entry_form tr:first-child td label {
   display: block;
}

.entry_form tr:last-child td label {
   display: block;
}

.entry_form td span {
   font-size: clamp(14px, 1.7vw, 16px);
   line-height: 1;
   font-weight: 600;
}

.entry_form tr:first-child td span {
   margin-right: 1em;
   line-height: 1;
}

.entry_form table tr:nth-child(5) td {
   font-size: 85%;
   font-weight: 500;
   line-height: 1.7;
}

.entry_form table tr:nth-child(5) td .addres-zip,
.entry_form table tr:nth-child(5) td .addres-pref {
   margin-bottom: 0.8em;
}

.entry_form table tr:nth-child(5) td .addres-zip input {
   max-width: 200px;
}

.entry_form table tr:nth-child(5) td select {
   max-width: 160px;
   font-weight: 500;
}

.entry_form .date {
   justify-content: start;
}

.entry_form table tr:nth-child(5) td .date select {
   max-width: 80px;
   margin-right: 10px;
   padding: 0.4rem 0.1rem;
}

.entry_form td span.date-txt {
   padding-right: 10px;
   display: flex;
   align-items: center;
}

.entry_form .address li {
   display: flex;
   justify-content: flex-start;
   align-items: stretch;
   padding-bottom: 1em;
}

.entry_form .address li span {
   margin-right: 1em;
   width: 30%;
}

.entry_form .address li.short {
   width: 65%;
}

.entry_form .address li span.text {
   width: 72%;
}

.entry_form .address li:last-child {
   padding-bottom: 0;
}

.entry_form .mwform-radio-field label {
   font-weight: 500;
}

.entry_form .submit_area {
   max-width: 325px;
   margin: 0 auto;
}

.entry_form ol.address li .ttl {
   margin-right: 1.5%;
}

.entry_form ol.address li {
   margin-top: 2%;
}

.entry_form ol.address li:first-child {
   margin-top: 0;
}

.entry_form .flyer {
   margin-top: 1em;
}

.entry_form .submit_area .btn_submit,
.entry_form .submit_area .back {
   display: block;
   width: 100%;
   height: 70px;
   background: #1471CA;
   border: 0;
   color: #fff;
   font-weight: 700;
   font-size: 20px;
   letter-spacing: 0.04em;
   border-radius: 50px;
   transition-duration: 0.3s;
   cursor: pointer;
}

.entry_form .submit_area .back {
   background: #737373;
   border: 1px solid #737373;
   margin-top: 20px;
}

.entry_form .submit_area .btn_submit:hover {
   opacity: 0.7;
}

.entry_form .submit_area .back:hover {
   opacity: 0.7;
}

.entry_form .btn_submit:disabled {
   opacity: 0.6;
   pointer-events: none;
}

.entry_form .thanks {
   text-align: center;
   font-weight: 400;
   margin-bottom: 2em;
}

.entry_form .column-box {
   display: flex;
   flex-wrap: wrap;
}

.table-3col .column-box__3col {
   width: 28%;
}

.contact-tel {
   text-align: center;
   border: 1px solid #ABABAB;
   margin-top: 100px;
   padding: 45px 10px 20px;
}

.contact-tel a {
   display: inline-flex;
   background: url("../img/common/icon_freedial_blue1.png") no-repeat center left/66px auto;
   font-weight: 700;
   font-size: 64px;
   line-height: 2;
   padding-left: 70px;
}

@media screen and (max-width: 1023px) {

   .entry_form .short,
   .entry_form .short02,
   .entry_form .middle,
   .entry_form .long {
      width: 100%;
   }

   .entry_form tr,
   .entry_form th,
   .entry_form td,
   .entry_form tr:first-child th,
   .entry_form tr:first-child td {
      display: block;
      width: 100%;
      padding: 0;
   }

   .entry_form table tr:not(:last-child) {
      padding-bottom: 30px;
   }

   .entry_form table tr th {
      width: 100%;
      padding: 0;
   }

   .entry_form tr:first-child td {
      padding-top: 3%;
   }

   .entry_form table tr td {
      padding: 15px 0 0;
      width: 100%;
   }

   .entry_form td {
      border: none;
   }

   .entry_form td .item {
      display: block;
   }

   .entry_form td .support,
   .entry_form td .support02 {
      display: block;
   }

   .entry_form tr:first-child th {
      border-top: 0;
   }

   .entry_form tr td {
      padding: 1em 2% 2em;
   }

   .entry_form th,
   .entry_form td {
      font-size: 1.5rem;
   }

   .entry_form #thanks .txt_area {
      text-align: left;
      width: 92%;
      margin: 0 auto 3em;
   }
}

@media screen and (max-width: 767px) {
   .entry_form {
      padding-bottom: 50px;
   }

   .entry_form h2.h-32 {
      font-size: 20px;
   }

   .entry_form .desc {
      font-size: 16px;
      line-height: 2;
      padding-top: 20px;
   }

   .entry_form__inner {
      margin-top: 40px;
      padding: 30px 20px 40px;
   }

   .entry_form table {
      margin-bottom: 40px;
   }

   .entry_form .submit_area {
      max-width: 250px;
   }

   .entry_form .submit_area .btn_submit,
   .entry_form .submit_area .back {
      height: 60px;
      font-size: 18px;
   }

   .table-3col .column-box__3col {
      width: 20%;
   }

   .contact-tel {
      margin-top: 50px;
      padding: 30px 10px 10px;
   }

   .contact-tel a {
      background-size: 40px auto;
      font-size: 40px;
      padding-left: 45px;
   }
}

.btn_form__privacy-check {
   background-color: #F5F5F5;
   padding: 1.5em;
   font-weight: 500;
   color: #707070;
}

.btn_form__privacy-check h4::before {
   content: "";
   display: inline-block;
   width: 12px;
   height: 12px;
   background-color: #707070;
   margin-right: 0.5em;
   vertical-align: middle;
}

.btn_form__privacy-check p {
   font-size: 90%;
   margin-bottom: 1.5em;
}

.btn_form__privacy-check a {
   text-decoration: underline;
   color: #707070;
}

.mw_wp_form .vertical-item+.vertical-item {
   margin-top: 12px !important;
}

.entry-form-complete {
   padding-bottom: 100px;
}

.entry-form-complete .tel {
   margin-top: 20px;
}

.entry-form-complete .tel a {
   display: inline-block;
   background: url("../img/common/icon-tel.png") no-repeat center left/25px auto;
   font-family: "Plus Jakarta Sans", sans-serif;
   font-weight: 800;
   font-size: 35px;
   line-height: 44px;
   padding-left: 30px;
}

.entry-form-complete .tel .time {
   display: block;
   color: #555;
   font-size: 13px;
   line-height: 16px;
   padding-top: 10px;
}

.entry-form-complete .entry_form__inner {
   padding-bottom: 40px;
}

.entry-form-complete .button {
   padding-top: 30px;
}

@media screen and (max-width: 767px) {
   .entry-form-complete {
      padding-bottom: 50px;
   }

   .entry-form-complete h2 {
      font-size: 20px;
   }

   .entry-form-complete .entry_form__inner {
      padding-bottom: 30px;
   }

   .entry-form-complete .button {
      padding-top: 20px;
   }
}

/*=============================================
 * Post type
*=============================================*/
.wp-pagenavi {
   display: flex;
   align-items: center;
   justify-content: center;
   flex-wrap: wrap;
   gap: 10px;
   font-size: 18px;
   margin-top: 50px;
   position: relative;
}

.wp-pagenavi .pages {
   display: none;
}

.wp-pagenavi span,
.wp-pagenavi a {
   display: block;
   border-bottom: 1px solid transparent;
}

.wp-pagenavi .previouspostslink {
   margin-right: 20px;
}

.wp-pagenavi .nextpostslink {
   margin-left: 20px;
}

.wp-pagenavi a:hover {
   border-bottom-color: #555;
}

.wp-pagenavi .current {
   pointer-events: none;
   border-bottom-color: #555;
}

@media screen and (max-width: 767px) {
   .wp-pagenavi {
      margin-top: 50px;
   }

   .wp-pagenavi a,
   .wp-pagenavi span {
      font-size: 16px;
   }
}

/* -- -- */
.sidebar .banner {
   background-color: #1471CA;
   color: #fff;
   padding: 30px 30px;
   position: relative;
}

.sidebar .banner .deco {
   width: 94%;
   position: absolute;
   bottom: 0;
   right: 0;
}

.sidebar .banner h3 {
   text-align: center;
}

.sidebar .banner .txt {
   font-weight: 600;
   font-size: 17px;
   padding: 25px 20px 0;
}

.sidebar .banner .button {
   padding-top: 35px;
}

.sidebar .banner .button a {
   display: flex;
   justify-content: center;
   gap: 15px;
   width: auto;
   background-color: #fff;
   border-color: #fff;
   color: #1471CA;
   font-weight: 700;
   font-size: 17px;
   letter-spacing: 0.03em;
   box-shadow: 0 8px 8px rgba(0, 0, 0, 0.15);
   padding-right: 0;
}

.sidebar .banner .button a:after {
   display: none;
}

.sidebar .banner .button a i {
   display: block;
   width: 22px;
   height: 22px;
   background: url("../img/common/icon-mail.png") no-repeat center top/cover;
}

.sidebar .banner .button a:hover {
   opacity: 0.7;
}

.sidebar .item {
   padding-top: 80px;
}

.sidebar .item h3 {
   border-bottom: 1px solid #1471CA;
   padding-bottom: 5px;
}

.sidebar .item ul {
   padding-top: 40px;
}

.sidebar .wpp-list li {
   display: grid;
   grid-template-columns: 120px 1fr;
   align-items: center;
   gap: 20px;
}

.sidebar .wpp-list li+li {
   padding-top: 20px;
}

.sidebar .wpp-list .thumbnail a {
   display: block;
   padding-top: 66.66%;
   position: relative;
}

.sidebar .wpp-list .thumbnail a img {
   width: 100%;
   max-width: inherit;
   height: 100%;
   object-fit: cover;
   margin-right: 0;
   position: absolute;
   top: 0;
   left: 0;
}

.sidebar .wpp-list time {
   display: block;
   font-weight: 700;
   font-size: 13px;
   letter-spacing: 0.1em;
   color: #868686;
}

.sidebar .wpp-list .ttl {
   font-weight: 700;
   font-size: 14px;
   letter-spacing: 0.01em;
   padding-top: 8px;
}

.sidebar .wpp-list .ttl a {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

.sidebar .list-tax {
   display: flex;
   align-items: flex-start;
   flex-wrap: wrap;
   gap: 12px 10px;
   font-weight: 700;
   font-size: 14px;
   letter-spacing: 0.03em;
   line-height: 26px;
}

.sidebar .list-tax a {
   display: block;
   background-color: #1471CA;
   color: #fff;
   padding: 0 14px;
}

.sidebar .list-tax a:hover {
   background-color: #333;
   opacity: 1;
}

@media screen and (max-width: 767px) {
   .sidebar .item {
      padding-top: 40px;
   }

   .sidebar .item ul {
      padding-top: 20px;
   }
}

/* -- -- */
.works__list {
   display: flex;
   flex-wrap: wrap;
   gap: 40px 30px;
}

.works__list .col {
   width: calc(33.33% - 20px);
   background-color: #fff;
   padding: 35px;
   box-sizing: border-box;
   box-shadow: 5px 5px 40px rgba(0, 0, 0, 0.05);
}

.works__list .location {
   background: url("../img/common/icon-location.png") no-repeat center left/15px auto;
   padding-left: 20px;
   font-weight: 700;
   font-size: 15px;
}

.works__list h3 {
   min-height: 68px;
   font-weight: 700;
   font-size: 20px;
   letter-spacing: 0.05em;
   padding: 10px 0 18px;
}

.works__list h3 a {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

.works__list .swiper {
   width: 100%;
}

.works__list .txt-info {
   font-size: 14px;
   line-height: 1.5;
   padding-top: 20px;
}

.works__list .txt-info dl {
   display: grid;
   grid-template-columns: 72px 1fr;
   align-items: flex-start;
   gap: 8px;
}

.works__list .txt-info dl:not(:last-child) {
   padding-bottom: 8px;
}

.works__list .txt-info dl dt {
   border: 1px solid #333;
   line-height: 23px;
   text-align: center;
}

.works__list .txt-info dl dd {
   font-weight: 400;
}

.works__list .txt-info dl:not(.last) dd {
   font-size: 16px;
}

.works__list .before-after-swiper .swiper-slide {
   margin: 0;
   padding: 0;
}

.works__list .before-after-swiper .swiper-slide a {
   display: block;
   position: relative;
   padding-top: 53.2%;
}

.works__list .before-after-swiper .swiper-slide a img {
   position: absolute;
   top: 0;
   left: 0;
}

.works__list .before-after-swiper .swiper-button-prev,
.works__list .before-after-swiper .swiper-button-next {
   display: inline-block;
   background: transparent;
   width: auto;
   height: auto;
   font-weight: 700;
   font-size: 14px;
   line-height: 1.5;
   color: #1471CA;
   margin: 0;
}

.works__list .before-after-swiper .swiper-button-prev:after,
.works__list .before-after-swiper .swiper-button-next:after {
   content: '';
   width: 0;
   height: 0;
   border-width: 8px;
   border-color: transparent;
   border-style: solid;
   position: absolute;
   top: 3px;
}

.works__list .before-after-swiper .swiper-button-prev {
   padding-left: 16px;
}

.works__list .before-after-swiper .swiper-button-prev:after {
   border-right-color: #1471CA;
   border-left: 0;
   left: 0;
}

.works__list .before-after-swiper .swiper-button-next {
   padding-right: 16px;
}

.works__list .before-after-swiper .swiper-button-next:after {
   border-left-color: #1471CA;
   border-right: 0;
   right: 0;
}

.works__list .before-after-swiper .nav {
   display: flex;
   justify-content: space-between;
   padding-top: 8px;
}

@media screen and (max-width: 1023px) {
   .works__list .col {
      width: calc(50% - 15px);
   }
}

@media screen and (max-width: 767px) {
   .works__list .col {
      width: 100%;
      padding: 20px;
   }

   .works__list h3 {
      min-height: inherit;
   }
}

/* -- -- */
.news__list {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 57px;
}

.news__list .col a {
   display: block;
}

.news__list figure {
   width: 100%;
   padding-top: 66.3%;
   position: relative;
}

.news__list figure img {
   position: absolute;
   top: 0;
   left: 0;
}

.news__list time {
   display: block;
   color: #767676;
   font-size: 14px;
   padding-top: 20px;
}

.news__list .ttl {
   font-weight: 700;
   font-size: 18px;
   letter-spacing: 0.03em;
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
   margin-top: 5px;
}

@media screen and (max-width: 767px) {
   .news__list {
      grid-template-columns: 1fr;
      gap: 40px;
   }
}

.column__list {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 60px 40px;
}

.column__list figure a {
   display: block;
   padding-top: 62.2%;
   position: relative;
}

.column__list figure a img {
   position: absolute;
   top: 0;
   left: 0;
}

.column__list .gr {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 10px;
   padding-top: 15px;
}

.column__list .cat {
   display: inline-block;
   min-width: 33px;
   background-color: #1471CA;
   color: #fff;
   font-weight: 700;
   font-size: 14px;
   letter-spacing: 0.03em;
   line-height: 26px;
   padding: 0 15px;
}

.column__list .cat:hover {
   background-color: #333;
   opacity: 1;
}

.column__list time {
   font-size: 14px;
   line-height: 26px;
   color: #767676;
}

.column__list .ttl {
   font-weight: 700;
   font-size: 18px;
   letter-spacing: 0.03em;
   padding-top: 10px;
}

.column__list .ttl a {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

@media screen and (max-width: 767px) {
   .column__list {
      grid-template-columns: 1fr;
      gap: 50px;
   }

   .column__list .gr {
      gap: 15px;
   }

   .column__list .cat {
      font-size: 12px;
   }

   .column__list time {
      font-size: 13px;
   }

   .column__list .ttl {
      font-size: 16px;
      padding-top: 5px;
   }
}

/*=============================================
 * Post Detail
 *=============================================*/
.pt-detail {
   position: relative;
   padding-bottom: 100px;
}

.pt-detail-meta {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 25px 15px;
}

.pt-detail-time {
   color: #767676;
}

.pt-detail-cate {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 10px;
   font-weight: 500;
   line-height: 30px;
}

.pt-detail-cate a {
   display: block;
   background-color: #1471CA;
   color: #fff;
   font-weight: 700;
   font-size: 15px;
   line-height: 30px;
   padding: 5px 20px;
}

.pt-detail-cate a:hover {
   background-color: #333;
   opacity: 1;
}

.pt-detail-title {
   width: 100%;
   font-weight: 700;
   font-size: 34px;
   letter-spacing: 0.04em;
}

.pt-detail-content {
   letter-spacing: 0.02em;
   line-height: 1.83;
   margin-top: 30px;
}

.pt-detail-content .thumbnail {
   margin-bottom: 70px;
}

.pt-detail-content h2 {
   background-color: #FAFAFA;
   font-weight: 700;
   font-size: 24px;
   letter-spacing: 0.02em;
   margin: 60px 0 30px;
   padding: 20px 25px;
}

.pt-detail-content h3 {
   font-weight: 700;
   font-size: 22px;
   letter-spacing: 0.02em;
   border-bottom: 2px solid #1471CA;
   margin: 60px 0 30px;
   padding: 0 0 10px;
}

.pt-detail-content h4 {
   font-weight: 700;
   font-size: 20px;
   letter-spacing: 0.02em;
   border-left: 5px solid #1471CA;
   margin: 60px 0 30px;
   padding: 0 0 0 15px;
}

.pt-detail-content h1:first-child,
.pt-detail-content h2:first-child,
.pt-detail-content h3:first-child,
.pt-detail-content h4:first-child,
.pt-detail-content h5:first-child,
.pt-detail-content h6:first-child {
   margin-top: 0;
}

.pt-detail-content h2+h3,
.pt-detail-content h2+h4,
.pt-detail-content h3+h4 {
   margin-top: 0;
}

.pt-detail-content mark {
   background-color: #FFF6A8;
   color: #333;
}

.pt-detail-content strong {
   font-weight: 700;
}

.pt-detail-content a {
   text-decoration: underline;
}

.pt-detail-content a:hover {
   text-decoration: none;
}

.pt-detail-content hr {
   margin: 30px 0;
}

.pt-detail .button {
   padding-top: 60px;
}

.pt-detail .button a {
   min-width: 220px;
   height: 42px;
   font-size: 15px;
   padding-right: 25px;
}

.pt-detail .button a:after {
   width: 28px;
   height: 28px;
}

.pt-detail .hr {
   border-bottom: 1px solid #E1E1E1;
   margin-top: 90px;
}

.pt-detail-related {
   padding-top: 90px;
}

.pt-detail-related .title:after {
   content: '';
   width: 33px;
   height: 0;
   border-bottom: 2px solid #0F6CA7;
   display: block;
   margin: 20px auto 0;
}

.pt-detail-related .column__list {
   grid-template-columns: repeat(3, 1fr);
   gap: 50px;
   padding-top: 60px;
}

.single-post .pt-detail-related {
   background-color: #F9F9F9;
   margin-top: 100px;
   padding: 40px 40px 50px;
}

.single-post .pt-detail-related .works__list {
   gap: 48px;
   max-width: 805px;
   margin: 0 auto;
   padding-top: 40px;
}

.single-post .pt-detail-related .works__list .col {
   width: calc(50% - 24px);
}

.pt-detail-works {
   padding-top: 45px;
}

.pt-detail-works .txt-info {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 25px 40px;
   background-color: #F9F9F9;
   margin-bottom: 45px;
   padding: 26px 32px;
}

.pt-detail-works .txt-info dl {
   display: grid;
   grid-template-columns: 100px auto;
   align-items: center;
   gap: 12px;
   font-weight: 600;
   line-height: 27px;
}

.pt-detail-works .txt-info dl dt {
   background-color: #fff;
   border: 1px solid #333;
   text-align: center;
   font-size: 16px;
   padding: 3px 0;
}

.pt-detail-works .txt-info dl dd {
   font-size: 18px;
}

.pt-detail-works .txt-info .location {
   width: 100%;
   grid-template-columns: 100px 1fr;
}

.pt-detail-works .works-slider-main figure {
   width: 100%;
   padding-top: 56.25%;
   position: relative;
   background-color: #F9F9F9;
}

.pt-detail-works .works-slider-main figure img {
   height: 100%;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   object-fit: cover;
}

.pt-detail-works .works-slider-main figure figcaption {
   width: 95px;
   position: absolute;
   top: 0;
   right: 0;
   text-align: center;
   font-weight: 500;
   font-size: 18px;
   letter-spacing: 0.06em;
   line-height: 30px;
}

.pt-detail-works .works-slider-main figure .bf-cap {
   background-color: #fff;
}

.pt-detail-works .works-slider-main figure .af-cap {
   background-color: #1471CA;
   color: #fff;
}

.pt-detail-works .works-slider-main .photo-desc {
   position: absolute;
   left: 0;
   bottom: 0;
   background: rgba(0, 0, 0, 0.7);
   color: #fff;
   padding: 10px 20px;
   width: 100%;
   font-size: 20px;
   text-align: left;
   box-sizing: border-box;
}

.pt-detail-works .works-slider-nav {
   margin-top: 10px;
}

.pt-detail-works .works-slider-nav figure {
   width: 140px;
   height: 84px;
   position: relative;
   cursor: pointer;
   margin-right: 10px;
   transition: all 0.3s;
}

.pt-detail-works .works-slider-nav figure figcaption {
   width: 50px;
   position: absolute;
   top: 0;
   right: 0;
   text-align: center;
   font-weight: 500;
   font-size: 10px;
   letter-spacing: 0.06em;
   line-height: 16px;
}

.pt-detail-works .works-slider-nav figure .bf-cap {
   background-color: #fff;
}

.pt-detail-works .works-slider-nav figure .af-cap {
   background-color: #1471CA;
   color: #fff;
}

.pt-detail-works .works-slider-nav .swiper-slide {
   border: 2px solid transparent;
}

.pt-detail-works .works-slider-nav .swiper-slide:hover {
   transform: translateY(-4px);
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.pt-detail-works .works-slider-nav .swiper-slide-thumb-active {
   border-color: #333;
}

@media screen and (max-width: 1023px) {
   .pt-detail-content p img {
      display: block;
      margin: 0 auto 15px;
   }

   .pt-detail-content p img:last-child {
      margin: 0 auto;
   }
}

@media screen and (max-width: 767px) {
   .pt-detail {
      padding-bottom: 50px;
   }

   .pt-detail-meta {
      gap: 15px;
   }

   .pt-detail-cate a {
      padding: 0 15px;
   }

   .pt-detail-title {
      font-size: 20px;
      line-height: 30px;
   }

   .pt-detail-content {
      margin-top: 20px;
   }

   .pt-detail-content .thumbnail {
      margin-bottom: 40px;
   }

   .pt-detail-content h2 {
      font-size: 22px;
      line-height: 32px;
      padding: 15px 20px;
   }

   .pt-detail-content h3 {
      font-size: 20px;
      line-height: 30px;
   }

   .pt-detail-content h4 {
      font-size: 18px;
      line-height: 26px;
   }

   .pt-detail-content p img {
      display: block;
      margin: 0 auto 15px;
   }

   .pt-detail-content p img.alignright {
      margin: 0 auto 15px;
   }

   .pt-detail-content p img:last-child {
      margin: 0 auto !important;
   }

   .pt-detail .button {
      padding-top: 40px;
   }

   .pt-detail hr {
      margin-top: 40px;
   }

   .pt-detail-related {
      padding-top: 40px;
   }

   .pt-detail-related .column__list {
      grid-template-columns: 1fr;
      gap: 30px;
      padding-top: 30px;
   }

   .single-post .pt-detail-related {
      margin-top: 50px;
      padding: 30px 20px;
   }

   .single-post .pt-detail-related .works__list {
      padding-top: 30px;
   }

   .single-post .pt-detail-related .works__list .col {
      width: 100%;
   }

   .pt-detail-works {
      padding-top: 30px;
   }

   .pt-detail-works .txt-info {
      flex-direction: column;
      align-items: flex-start;
      margin-bottom: 30px;
      padding: 20px;
   }

   .pt-detail-works .txt-info dl {
      width: 100%;
      grid-template-columns: 1fr;
      text-align: center;
   }

   .pt-detail-works .txt-info dl dt {
      font-size: 14px;
   }

   .pt-detail-works .txt-info dl dd {
      font-size: 16px;
   }

   .pt-detail-works .txt-info .location {
      grid-template-columns: 1fr;
   }

   .pt-detail-works .works-slider-main .photo-desc {
      font-size: 12px;
      line-height: 1.5;
      padding: 10px;
   }

   .pt-detail-works .works-slider-nav figure {
      width: 100px;
      height: 60px;
   }

   .pt-detail-works .works-slider-nav .swiper-slide:hover {
      transform: translateY(0);
      box-shadow: none;
   }
}

/*=============================================
 * 施工実績
 *=============================================*/
.pt-works .txt {
   font-size: 17px;
   line-height: 2;
   letter-spacing: 0.04em;
   padding-bottom: 52px;
}

.pt-works .list-cat {
   background-color: #F9F9F9;
   margin-bottom: 64px;
   padding: 30px;
}

.pt-works .list-cat ul {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   gap: 17px 19px;
}

.pt-works .list-cat a {
   display: flex;
   align-items: center;
   justify-content: center;
   font-weight: 700;
   font-size: 15px;
   line-height: 30px;
   background-color: #fff;
   border: 1px solid #1549AC;
   color: #1471CA;
   border-radius: 50px;
   padding: 5px 25px 5px 0;
   position: relative;
}

.pt-works .list-cat a:after {
   content: '';
   width: 28px;
   height: 28px;
   background: url("../img/common/arrow-circle-right.png") no-repeat center top/cover;
   position: absolute;
   top: calc(50% - 14px);
   right: 8px;
   transition: all 0.3s;
}

.pt-works .list-cat a:hover {
   background-color: #1471CA;
   color: #fff;
   opacity: 1;
}

.pt-works .list-cat a:hover:after {
   background-image: url("../img/common/arrow-circle-right-wh.png");
   transform: translateX(4px);
}

.pt-works .list-cat a.current {
   background-color: #1471CA;
   color: #fff;
}

.pt-works .list-cat a.current:after {
   background-image: url("../img/common/arrow-circle-right-wh.png");
}

@media screen and (max-width: 1200px) {
   .pt-works .list-cat ul {
      grid-template-columns: repeat(4, 1fr);
   }
}

@media screen and (max-width: 1023px) {
   .pt-works .list-cat ul {
      grid-template-columns: repeat(3, 1fr);
   }
}

@media screen and (max-width: 767px) {
   .pt-works .txt {
      font-size: 16px;
      padding-bottom: 40px;
   }

   .pt-works .list-cat {
      margin-bottom: 40px;
      padding: 20px;
   }

   .pt-works .list-cat ul {
      grid-template-columns: repeat(2, 1fr);
      gap: 10px;
   }

   .pt-works .list-cat a {
      font-size: 12px;
   }

   .pt-works .list-cat a:after {
      right: 5px;
   }
}

@media screen and (min-width: 1201px) {
   .pt-works .wrap {
      max-width: 1210px;
   }
}

/*=============================================
 * 導入事例
 *=============================================*/
#column-slider {
   overflow: hidden;
}

#column-slider .slick-slider {
   width: 863px;
   margin: 0 auto;
}

#column-slider .slick-arrow {
   position: absolute;
   top: 38%;
   z-index: 1;
   filter: none;
}

#column-slider .slick-next {
   background-image: url("../img/common/slider-next-1.png");
   right: -105px;
}

#column-slider .slick-prev {
   background-image: url("../img/common/slider-prev-1.png");
   left: -105px;
}

#column-slider .slick-list {
   overflow: visible;
   margin: 0 -40px;
}

#column-slider .slick-slide {
   margin: 0 40px;
}

#column-slider .slick-slide figure a {
   display: block;
   padding-top: 58.8%;
   position: relative;
}

#column-slider .slick-slide figure a img {
   position: absolute;
   top: 0;
   left: 0;
}

#column-slider .slick-slide .gr {
   display: flex;
   align-items: center;
   gap: 20px;
   padding-top: 35px;
}

#column-slider .slick-slide .cat {
   display: inline-block;
   background-color: #1471CA;
   color: #fff;
   font-weight: 700;
   font-size: 14px;
   letter-spacing: 0.03em;
   line-height: 30px;
   padding: 0 14px;
}

#column-slider .slick-slide .cat:hover {
   background-color: #333;
   opacity: 1;
}

#column-slider .slick-slide time {
   font-weight: 700;
   font-size: 19px;
   letter-spacing: 0.1em;
   color: #868686;
}

#column-slider .slick-slide .ttl {
   padding-top: 20px;
}

#column-slider .slick-slide .ttl a {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   display: -webkit-box;
   overflow: hidden;
}

@media screen and (max-width: 1200px) {
   #column-slider .slick-slider {
      width: 100%;
      box-sizing: border-box;
      padding: 0 120px;
   }

   #column-slider .slick-slider .slick-prev {
      left: 20px;
   }

   #column-slider .slick-slider .slick-next {
      right: 20px;
   }
}

@media screen and (max-width: 767px) {
   #column-slider .slick-slider {
      padding: 0 40px;
   }

   #column-slider .slick-slider .slick-arrow {
      top: 19vw;
   }

   #column-slider .slick-slider .slick-prev {
      left: 10px;
   }

   #column-slider .slick-slider .slick-next {
      right: 10px;
   }

   #column-slider .slick-slider .slick-list {
      margin: 0 -10px;
   }

   #column-slider .slick-slider .slick-slide {
      margin: 0 10px;
   }

   #column-slider .slick-slider .slick-slide .gr {
      gap: 15px;
      padding-top: 20px;
   }

   #column-slider .slick-slider .slick-slide .cat {
      font-size: 12px;
   }

   #column-slider .slick-slider .slick-slide time {
      font-size: 13px;
   }

   #column-slider .slick-slider .slick-slide .ttl {
      font-size: 16px;
      padding-top: 5px;
   }
}

/* -- -- */
.cpt-column {
   padding: 120px 0 80px;
}

.cpt-column .wrap {
   display: flex;
   justify-content: space-between;
   gap: 100px;
}

.cpt-column .block {
   width: calc(100% - 450px);
}

.cpt-column .sidebar {
   width: 350px;
}

@media screen and (max-width: 1023px) {
   .cpt-column .wrap {
      flex-direction: column;
      align-items: center;
      gap: 75px;
   }

   .cpt-column .block {
      width: 100%;
   }
}

@media screen and (max-width: 767px) {
   .cpt-column {
      padding: 50px 0;
   }

   .cpt-column .wrap {
      gap: 50px;
   }

   .cpt-column .sidebar {
      width: 100%;
      max-width: 350px;
   }
}

@media screen and (min-width: 1201px) {
   .cpt-column .wrap {
      max-width: 1170px;
   }
}

.img_d {
   margin-top: 30px;
   width: 570px;
   height: auto;
}

.img_d2 {
   margin-top: 30px;
   width: 100%;
   height: auto;
}

@media screen and (max-width: 767px) {
   .img_d {
      width: 100%;
   }
}