/*
    LOADING
================================================ */
#loading .loading-logo {
  opacity: 0;
  transition: opacity 1s ease-in;
  }
  #loading.loaded .loading-logo {
  opacity: 1;
  }
  .loading {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: #2B293C;
  display: grid;
  place-content: center;
  transition: opacity 1s ease-in-out, visibility 1s;
  opacity: 1;
  visibility: visible;
  }
  .loading.is-active {
  opacity: 0;
  visibility: hidden;
  }
  .loading-logo {
  opacity: 0;
  transition: opacity 1s ease-in-out;
  width: 320px;
  transform: translate(-50%, calc(-50% - 15px));
  top: 50%;
  position: relative;
  animation: fadeDown-animate 3s ease-in-out forwards;
  }
  @keyframes fadeDown-animate {
    0% { transform: translateY(calc(-50% - 15px)); opacity: 0; }
    60% { transform: translateY(-50%); opacity: 1; }
    100% { transform: translateY(calc(-50% + 15px)); opacity: 0; }
  }
  @media(max-width:768px) {
  .loading-logo {
      width: 191px;
  }
  }
  @keyframes fadeLeft-animate {
    0% { transform: translateX(-330px); opacity: 0; }
    100% { transform: translateX(0); opacity: 1; }
  }
  .loading2.is-active {
    opacity: 1;
    animation: fixed-animate 1s ease-in-out forwards;
    transform: translateX(0);
  }
  @keyframes fixed-animate {
    0% { transform: translateX(0); opacity: 0; }
    100% { transform: translateX(0); opacity: 1; }
  }
  .loading-logo.is-active {
    opacity: 0;
    visibility: hidden;  
  }
  
  /* アニメーション 2 */
  .loading2 {
    opacity: 0;/* 初期状態は透明 */
    transition: opacity 4s ease-in-out;
    transform: translateX(0);
    animation: fadeLeft-animate 4s ease-in-out forwards;
    display: flex;
    flex-direction: column;
    height: 100vh;
    justify-content: space-between;
  }
  @keyframes fadeLeft-animate {
    0% {
    transform: translateX(-330px);
    opacity: 0;
    }
    100% {
    transform: translateX(0);
    opacity: 1;
    }
  }
  
  @media(max-width:768px){
  .top_fixed {
    position: fixed;
    z-index: 999;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin-left: 15px;
    max-width: 191px;
  }
  .loading2 {
    width: 191px;
    margin-top: 23px;
    height: auto;
  }
  }
  
  /* アニメーション 2 二回目以降 */
  .loading2.is-active {
    opacity: 1;
    animation: fixed-animate 1s ease-in-out forwards;
    transform: translateX(0);
    }
    @keyframes fixed-animate {
    0% {
    transform: translateX(0);
    opacity: 0;
    }
    100% {
    transform: translateX(0);
    opacity: 1;
  }
}

/* 
    COMMON
================================================ */
html {
    width: 100%;
    scroll-behavior: smooth;
    box-sizing: border-box;
    overflow-x: hidden;
}
body {
    font-family: "Zen Old Mincho", serif;
    font-weight: 400;
    font-style: normal;
    color: #FFFFFF;
    overflow: hidden;
}
a {
    text-decoration: none;
}
a:hover {
  opacity: 1;
  -webkit-transition: background-color 0.5s ease-in;
}
.inner {
    max-width: 1140px;
    margin: 0 auto;
}
br.sp-br {
    display: none;
}
@media(max-width:768px){
  br.sp-br {
    display: block;
} 
}

* {
  box-sizing: border-box;
  caret: none;
}

/* ================= */
/* * {
  animation-name: fuwa;
  animation-duration: .5s;
}

@keyframes fuwa{
  0%{
    opacity: 0;
  }
  100%{
    opacity: 1;
  }
} */
/* ================= */


.h2_ttl {
font-weight: 400;
letter-spacing: 0.05em;
line-height: 1.23;
font-size: clamp(34px, 4.14vw, 45px);
}

.h2_subTtl {
color: #FFFFFF;
opacity: 0.58;
font-size: 20px;
font-weight: bold;
line-height: 3.55;
letter-spacing: 0.1em;
text-align: left;
text-transform: capitalize;
}
.underLine {
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
}

.forSp {
    display: none;
}
.forPc {
    display: block;
}
span.pc-br {
    display: block;
}

/* 詳細を見るボタン */
a.moreBtn {
  position: relative;
  display: flex;
  font-size: 18px;
  color: #FFFFFF;
  width: 120px;
  letter-spacing: 0.1em;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 8px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  font-family: "Noto Serif JP", serif;
}
a.moreBtn::after {
  content: url(../images/arrow-gr.svg);
  position: absolute;
  right: 0;
  margin: auto;
  display: inline-block;
}
a.moreBtn:hover::after {
  transform: translateX( 8px);
  transition: all .5s;
}
a.moreBtn:hover {
  color: #888888;
  text-decoration-color: #888888;
  text-underline-offset: 8px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  transition: all .5s;
}
a.moreBtn:hover::after {
  transition: all .5s;
}
/*
    HEADER
================================================ */
.header-nav.site-id a {
  color: #FFFFFF;
  font-weight: bold;
  line-height: 1.3;
  letter-spacing: 0;
  font-size: 29px;
  margin-left: 32px;
  vertical-align: bottom;
  display: flex;
}
.header {
  display: block;
  width: 100%;
  position: fixed;
  z-index: 1000;
}
#jsgnav {
  position:fixed;
  z-index: 999;
  top:100px;
  right: 0;
  background:#E6E6E6;
  transition: all 1s;
  width: auto;
  height: auto;
  opacity: 0;
  padding: 0 0 0;
  pointer-events: none;
}
#jsgnav.panelactive {
  width: auto;
  height: auto;
  right: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  top: 0;
  opacity: 1;
  padding: 133px 0 47px;
  pointer-events: auto;
}
/*リストのレイアウト設定*/
#jsgnav li{
  list-style: none;
  text-align: center;
  white-space: nowrap;
}
#jsgnav li a{
  color: #4A4A4A;
  font-size: 18px;
  text-decoration: none;
  padding: 13px 44px;
  display: flex;
  letter-spacing: 0.1em;
  font-weight: 500;
  align-items: center;
  justify-content: center;
  margin: 0;     
}
    @media(max-width:768px){
      #jsgnav.panelactive {
        padding: 90px 0 70px;
    }
    }

/*========= ハンバーガーボタンのためのCSS ===============*/
.openbtn{
  position: fixed;
  z-index: 9999;
  cursor: pointer;
  width: 34px;
  height: 10px;
  caret-color: transparent;
  padding: 10px;
  top: 27px;
  right: 65px;
}
.openbtn span{
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 14px;
  height: 1px;
  background-color: #FFFFFF;
  width: 30px;
}
.openbtn span:nth-of-type(1) {
  top: 10px;
  width: 34px;
  left: 10px;
}
.openbtn span:nth-of-type(2) {
  top: 20px;
  width: 17px;
  left: 10px;
}
.openbtn.active span:nth-of-type(1) {
  background-color: #2C3E4D;
}
.openbtn.active span:nth-of-type(2) {
opacity: 1;
background-color: #2C3E4D;
}

    @media(max-width:768px){
      .openbtn {
        top: 22px;
        right: 26px;
        width: 50px;
        height: 50px;
        padding: 25px;
      }
    }

/*
    下層ページ共通
================================================ */
/* 下層ページヘッダー */
.u_header {
  background-color: #2B293C;
  position: fixed;
  width: 100%;
  height: 83px;
  display: flex;
  align-items: center;
  top: 0;
}
.u_header h1 {
  width: 276px;
  margin-left: 32px;
}
.u_header h1 a img {
  width: 100%;
  object-fit: cover;
}
    @media(max-width:768px){
      .u_header h1 {
        width: 191px;
        margin-left: 5%;
    }
    }

picture.u_fv-img {
  display: flex;
  align-items: flex-end;
  filter: brightness(0.56);
}
picture.u_fv-img img {
  object-fit: cover;
  display: block;
  width: 100%;
  height: auto;
}
section.u_fv {
  position: relative;
  z-index: 0;
  margin-top: 83px;
}
section.u_fv h2 {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #FFFFFF;
  font-size: 42px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
  width: 100%;
  text-align: center;
  padding: 0 5%;
}
section.u_fv h2 span {
  display: block;
  color: #FFFFFF;
  opacity: 0.58;
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1;
  text-align: center;
  margin-bottom: 0.8em;
}
    @media(max-width:768px){
      picture.u_fv-img {
        height: 262px;
        width: 100%;
      }
      picture.u_fv-img img {
        height: 100%;
      }  
      section.u_fv h2 {
        font-size: clamp(30px, 4.69vw, 42px);
      }
      section.u_fv h2 span {
        font-size: 15px;
        margin-bottom: 0.6em;
      }
      .u_header {
        height: 73px;
      }
      section.u_fv {
        margin-top: 73px;
      }
    }

/* 下層ページ スクロールアニメ
================================================ */
#scroll-line {
  background-color: transparent;
  height: 100px;
  overflow: hidden;
  position: absolute;
  z-index: 999;
  bottom: -30px;
  left: 50%;
}
#scroll-line:after{
  content:"";
  display: block;
  width: 1px;
  border-left:1px #FFFFFF solid;
  animation:scroll 1.8s ease 0s infinite normal;
  margin: 0 auto 0;
}
@keyframes scroll{
  0%{
      height: 0;
  }
  50%{
      height: 100px;
      margin-top: 0;
  }
  100%{
      margin-top: 100px;
      height: 100px;
  }
}
    @media(max-width:768px){
          #scroll-line {
            bottom: -50px;
        }
        }


/* ================================================
    TOP
================================================ */
/* サイトID */
.top_fixed {
  position: fixed;
  z-index: 10;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-left: 53px;
  max-width: 321px;
}
.top_fixed-list li a {
  color: #FFFFFF;
  font-size: 15px;
  letter-spacing: 0.1em;
  line-height: 3.93;
}
.top_fixed hr {
  border-top: solid 1px #FFFFFF;
  width: 53px;
}
h1.top_fixed-siteId {
  margin-top: 50px;
  max-width: 321px;
}
h1.top_fixed-siteId a img {
  width: 100%;
  object-fit: cover;
  vertical-align: bottom;
}
ul.top_fixed-list {
  margin-bottom: 40px;
}
.top_textWrap {
display: flex;
height: 100vh;
justify-content: flex-end;
align-items: flex-end;
}
p.top_ttl {
  font-size: 49px;
  color: #FFFFFF;
  writing-mode: tb;
  letter-spacing: 0.1em;
  line-height: 1.25;
  margin: auto 70px 30px auto;
  max-width: 190px;
}
span.top_text {
  font-size: 16px;
    display: block;
    letter-spacing: 0.18em;
    line-height: 1.6;
    margin-top: 8px;
    margin-right: 4%;
}
.top_textFlex {
  display: flex;
}





/*========= スクロール途中でヘッダーが表示＆非表示するためのCSS ===============*/
#jsheader{
  /*fixedで上部固定*/
  position: fixed;
  height: 75px;
  width:100%;
  z-index: 999;/*最前面へ*/
  top: 0;
  left: 50%;
}

/*画面右にフェイドアウトする動き*/
#moveText.outMove{
  animation: UpAnime .7s forwards;
}

  @keyframes UpAnime{
    from {
      opacity: 1;
      transform: translate(0, 0);
    }
    to {
      opacity: 0;
      transform: translate(100px, 0px);
    }
  }

/*画面に戻る動き*/
#moveText.inMove{
  animation: DownAnime 0.8s forwards;
}

  @keyframes DownAnime{
    from {
      opacity: 0;
      transform: translate(100px, 0px);
    }
    to {
      opacity: 1;
      transform: translate(0);
    }
  }



ul.top_fixed-list span.hr {
  border-bottom: solid 1px #FFFFFF;
  width: 53px;
  height: 1px;
  display: block;
  margin: 13px 0;
}
    @media(max-width:768px){
    .top_fixed {
      margin-left: 15px;
      max-width: 191px;
      height: auto;
      z-index: 1;
    }
    ul.top_fixed-list {
      display: none;
    }
    h1.top_fixed-siteId {
      margin-top: 0;
      max-width: 191px;
      height: auto;
    }
    p.top_ttl {
      font-size: 46px;
      margin: auto 40px 30px auto;
    }
    }

/* ★★★ footerエリアに入る前にふわっと消える ★★★*/
.fade-text {
  opacity: 1;
  transition: opacity 1s ease-in-out;
}
.fade-out {
  opacity: 0;
  transform: translateY(-100px);
  transition: all .5s;
}


/* ------------------
  TOP_concept
  ------------------ */
section.concept {
  background-color: #2B293C;
  padding: 73px 0 100px 0;
}
picture.concept_img {
  aspect-ratio: 682 / 729;
}
picture.concept_img img,
picture.concept_img source {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.concept_text {
  line-height: 2.66;
  font-size: 15px;
  font-weight: 400;
  color: #FFFFFF;
  margin-top: 46px;
  letter-spacing: 0.05em;
}
p.concept_text .forPc {
  display: block;
}

.concept .moreBtn-wrap {
  display: flex;
  margin-top: 76px;
  justify-content: end;
}
.concept_grid {
  justify-content: space-between;
  display: grid;
  grid-template-areas:
      "d e"
      "d f";
  align-items: flex-start;
  grid-template-columns: 51.6% 40.4%;
  grid-template-rows: 230px 1fr;
  padding-right: 7%;
}
.d {
  grid-area: d;
}
.e {
  grid-area: e;
  min-width: 400px;
}
.f {
  grid-area: f;
  max-width: 441px;
}
    @media(max-width:1024px){
      p.concept_text .forPc {
        display: none;
        }
    }
    @media(max-width:768px){
      section.concept {
        padding: 40px 0 185px 0;
    }
    .concept_inner {
    padding: 0 5%;
    }
    
    .concept_grid {
    justify-content: space-between;
    display: grid;
    grid-template-areas:
      "e"
      "d"
      "f";
    align-items: flex-start;
    grid-template-columns: 100%;
    grid-template-rows: 180px 1fr auto;
    padding-right: 0;
    }
    .e {
      margin-right: 0;
      min-width: auto;
  }
    .f {
      margin-right: 0;
      max-width: 100%;
    }
    p.concept_text {
    line-height: 2.14;
    font-size: 14px;
    font-weight: 400;
    color: #FFFFFF;
    margin-top: 43px;
    letter-spacing: 0;
    }
    .concept .moreBtn-wrap {
    margin-top: 49px;
    }
    picture.concept_img {
      aspect-ratio: 350 / 264;
      margin-top: 48px;
  }
  .concept .h2_ttl {
    font-size: 34px;
}
    }


/* ------------------
    TOP_works
  ------------------ */
section.works {
  background-color: #2B293C;
    padding: 260px 0 0 200px;
    margin-top: -130px;/*link-positionの調整*/
}
.works_inner {
  margin: 0 0 0 auto;
  padding: 0;
}
.works_wrap {
  display: flex;
  position: relative;
  padding-bottom: 70px;
  z-index: 0;
}
.works_wrap::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background-color: #464457;
  bottom: 0;
  z-index: -1;
}
.h2_wrap-vertical {
  display: inline-flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  padding: 0 0 0 50px;
  margin-top: -109px;
}
h2.h2_ttl-vertical {
  writing-mode: vertical-lr;
  color: #FFFFFF;
  font-size: clamp(34px, 4.14vw, 41px);
  font-weight: 400;
  letter-spacing: 0.15em;
}
p.h2_subTtl-vertical {
  transform: rotate(90deg);
  transform-origin: top;
  display: inline-block;
  color: #FFFFFF;
  opacity: 0.58;
  font-size: 20px;
  font-weight: bold;
  letter-spacing: 0.1em;
  margin-top: 34px;
  margin-right: -34px;
  text-transform: capitalize;
}
.works_listWrap {
  margin: -74px auto 0;
  width: 100%;
}
.works_list {
  display: flex;
  grid-column-gap: 3%;
  justify-content: space-between;
  padding: 0 6% 0 5%;
}
.works_item {
  width: 100%;
}
.works_item img {
  width: 100%;
  object-fit: cover;
}
p.works_text {
  max-width: 100%;
  padding: 50px 5% 0 5%;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2.22;
}
.works_listWrap .moreBtn-wrap {
    padding: 0 0 0 5%;
    margin-top: 60px;
}
.works_listWrap a.moreBtn {
  margin: 0 97px 0 auto;
}
    @media(max-width:768px){
      section.works {
        padding: 0;
        margin-top: 0;
    }
    .works_wrap {
      flex-direction: column;
  }
      .works_list {
        flex-direction: column;
        padding: 0;
    }
    .works_listWrap {
      margin: 0;
      width: 100%;
  }
  .h2_wrap-vertical {
    font-size: clamp(34px, 4.14vw, 41px);
    margin: -109px auto auto 0;
    }
    .works_item:nth-child(2) {
      width: 100%;
      margin-left: 0;
    }
    p.works_text {
      margin-left: 0;
      font-size: 14px;
      letter-spacing: 0.1em;
      line-height: 2.14;
    }
    .works_item:first-child {
    z-index: 3;
    width: 65%;
    margin: -102px auto 0 35%;
  }
    .works_item:nth-child(2) {
      z-index: 2;
      width: 65%;
      margin: -30px 35% 0 0;
  }
    picture.works_item:last-child {
      z-index: 1;
      width: 65%;
      margin: -30px auto 0 35%;
  }
    .works_listWrap .moreBtn-wrap {
    padding: 0;
    margin-top: 30px;
    }
    .works_listWrap a.moreBtn {
    margin: 0 5% 0 auto;
    }
    }

/* ------------------
    TOP_Our Business
------------------ */
section.business {
  background-color: #2B293C;
  padding: 0 0 167px;
}
.business_inner {
    display: flex;
    margin: 0 0 125px auto;
    width: 100%;
    justify-content: space-between;
    max-width: calc(100% - 200px);
}
.business_textWrap {
  width: 30%;
  margin: 154px 5.5% 0 9%;
}
p.business_text {
  font-size: 15px;
  font-weight: 400;
  line-height: 2.66;
  letter-spacing: 0.05em;
  margin-top: 37px;
}
.business .moreBtn-wrap {
  margin-top: 78px;
}
.business_imgWrap {
  width: 55.5%;
}
.business_imgPosition {
  position: relative;
  display: inline-block;
  width: 100%;
}
picture.business_imgL {
  display: block;
  width: 76.7%;
  aspect-ratio: 532 / 674;
  margin: 0 0 0 auto;
}
picture.business_imgS {
  display: block;
  width: 40%;
  aspect-ratio: 277 / 340;
  position: absolute;
  left: 0;
  bottom: -125px;
}
picture.business_imgL img,
picture.business_imgL source,
picture.business_imgS img,
picture.business_imgS source {
  width: 100%;
  height: 100%;
  object-fit: cover;
  vertical-align: bottom;
}
    @media(max-width:768px){
      section.business {
        padding: 0 0 65px;
    }
    .business_inner {
    padding: 63px 0 100px;
    flex-direction: column;
    display: flex;
    margin: 0;
    width: 100%;
    justify-content: space-between;
    max-width: 100%;
    }
    .business_textWrap {
    width: 100%;
    margin: 0;
    padding: 0 5%;
    }
    .business_imgWrap {
    width: 100%;
    padding-top: 50px;
    }
    p.business_text {
    font-size: 14px;
    line-height: 2.14;
    }
    .business .moreBtn-wrap {
    margin-top: 52px;
    }
    .business a.moreBtn {
      margin: 0 0 0 auto;
    }
    picture.business_imgS {
        bottom: -45px;
    }
    }
/* ------------------
    TOP_recruit
------------------ */
#recruit {
  padding-top: 130px;
  margin-top: -130px;/*link-positionの調整*/
}
.recruit .h2_wrap-vertical {
  margin-top: 0;
  padding: 0;
}
.recruit_text {
  display: flex;
  justify-content: space-between;
  margin: 46px auto 0 0;
  max-width: 860px;
  align-items: flex-end;
}
.recruit_inner {
  position: relative;
  z-index: 0;
}
.recruit_textWrap {
  width: 59%;
  margin: 0 0 0 auto;
  position: absolute;
  top: 50%;
  z-index: 2;
  transform: translate(-50%, -50%);
  left: 50%;
  max-width: 860px;
}
.recruit p.h2_subTtl-vertical {
  margin-top: 40px;
  text-transform: capitalize;
}
.recruit_text p {
  line-height: 2.66;
  letter-spacing: 0.05em;
}
.recruit a.moreBtn {
  line-height: 2.66;
  margin-bottom: 8px;
}
@media(max-width:1210px){
  .recruit_text {
    flex-direction: column;
}
}
    @media(max-width:768px){
    .recruit_textWrap {
      width: 71%;
      top: 50%;
      transform: translate(-50%, -50%);
      left: 50%;
      margin: 0 auto;
      max-width: 490px;
    }
    .recruit_text {
    flex-direction: column;
    }
    .recruit_text p {
    line-height: 2.66;
    letter-spacing: 0.05em;
    font-size: 14px;
    line-height: 2.14;
    font-weight: 400;
    }
    .recruit_text .moreBtn-wrap {
      margin-top: 20px;
    }
    }
/* ------------------
    PARTS_contact
------------------ */
section.parts-contact {
  background-color: #2B293C;
  padding: 100px 10% 80px;
  color: #2B293C;
  text-align: center;
}
.parts-contact_bg {
  border-radius: 10px;
  background-color: #E8E5E1;
  max-width: 812px;
  margin: 0 auto;
  padding: 50px 5% 66px;
}
.parts-contact_inner {
  max-width: 723px;
  margin: 0 auto;
}
.parts-contact_inner ul {
  display: flex;
  margin-top: 37px;
  /* flex-wrap: wrap; */
  margin: 0 auto;
  grid-column-gap: 5%;
}
@media(max-width:950px){
  .parts-contact_inner ul {
    flex-wrap: wrap;
}
}
li.parts-contact_card {
  background-color: #FFFFFF;
  border-radius: 10px;
  width: 340px;
  padding: 24px 28px 30px;
  margin: 37px auto 0;
}
li.parts-contact_card h3 {
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.05em;
}
.parts-contact .h2_subTtl {
  text-align: center;
  margin-top: 0;
  color: #2B293C;
  opacity: 0.58;
  text-transform: capitalize;
  font-size: 20px;
  letter-spacing: 0.1em;
  font-weight: bold;
}
p.parts-contact_text {
  font-size: 14px;
  margin-top: 20px;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.05em;
}
.parts-contact .h2_ttl {
  margin-top: -11px;
}
.parts-contact_num {
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: solid 1px #F4F0EA;
  padding: 6px 0;
  width: auto;
  margin: 0 auto;
}
.parts-contact_num img {
  width: 21px;
  height: 21px;
  margin-right: 19px;
}
.parts-contact_num a,
.parts-contact_num p {
  font-size: 27px;
  color: #2B293C;
  letter-spacing: 0.05em;
  white-space: nowrap;
  margin-top: 0;
}
.parts-contact_card hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #2B293C;
  margin: 1em 0;
  padding: 0;
  transform: rotate(90deg);
  width: 23px;
  position: relative;
  left: 50%;
  transform-origin: left;
}
.parts-contact_card small {
  font-size: 12px;
  letter-spacing: 0.1em;
  line-height: 2.4;
}
.parts-contact_card .moreBtn {
  border-radius: 30px;
  margin: 0 auto;
  position: relative;
  display: flex;
  font-size: clamp(15px,1.8vw, 18px);
  color: #FFFFFF;
  width: 100%;
  letter-spacing: 0.1em;
  background-color: #2B293C;
  padding: 19px 24px 19px 10px;
  justify-content: center;
  text-decoration: none;
  box-shadow: 3px 3px 6px rgba(0, 0, 0, .16);
}
.parts-contact_card a.moreBtn::after {
  content: url(../images/arrow-wh.svg);
  position: absolute;
  right: 20px;
  margin: auto;
  display: inline-block;
}
.parts-contact-p p {
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1.4;
  margin-top: 16px;
}
.parts-contact .moreBtn-wrap {
  margin-top: 24px;
}
.parts-contact-item:nth-child(2) {
  margin-top: 16px;
}
.parts-contact_itemWrap {
  padding-top: 10px;
}
    @media(max-width:768px){
    .parts-contact_bg {
    padding: 33px 5% 46px;
    }
    section.parts-contact {
    padding: 100px 5% 65px;
    }
    li.parts-contact_card {
    width: 100%;
    max-width: 340px;
    }
    li.parts-contact_card:nth-child(2) {
      margin-top: 16px;
    }
    }
    @media(max-width:650px){
        p.parts-contact_text {
          text-align: left;
          width: 311px;
          margin: 20px auto 0;
      }
    }
/* ================================================
    下層ページ_COMPANY
================================================ */
.company-page h3 {
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  font-size: clamp(30px, 4vw, 42px);
}
.company-page h4 {
  color: #FFFFFF;
  opacity: 0.58;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: left;
  text-transform: capitalize;
}
/* ------------------
    COMPANY_理念
------------------ */
section.u_company_sec1 {
  background-color: #2B293C;
  padding: 100px 5% 118px;
}
.u_company_sec1-inner {
  display: flex;
  justify-content: space-between;
  max-width: 1140px;
  margin: 0 auto;
}
.u_company_sec1-text {
  width: 59%;
  margin-left: 5%;
}
.u_company_sec1-img {
  width: 31%;
  margin-right: 5%;
}
.u_company_sec1-img img {
  width: 100%;
  object-fit: cover;
  vertical-align: bottom;
  margin-top: 58px;
}
.u_company_sec1-text p {
  margin-top: 53px;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2.66;
}
.u_company_sec1-text .forSp {
  display: none;
}
    @media(max-width:768px){
      section.u_company_sec1 {
        padding: 135px 5% 70px;
    }
    .u_company_sec1-inner {
      flex-direction: column;
    }
    .u_company_sec1-text {
      width: 100%;
      margin-left: 0;
    }
    .u_company_sec1-img {
      width: 100%;
      margin-right: 0;
    }
    .u_company_sec1-img img {
      margin-top: 40px;
  }
    .u_company_sec1-text h3 {
      letter-spacing: 0.05em;
    }
    .u_company_sec1-text .forSp {
      display: block;
    }
    .u_company_sec1-text p {
      letter-spacing: 0;
    }
    }
/* ------------------
    COMPANY_スライダー
------------------ */
.swiper2 {
  background-color: #2B293C;
}
/* ------------------
    COMPANY_TOP Message
------------------ */
.u_company_sec2 {
  background-color: #2B293C;
  padding: 50px 5% 142px;
}
.u_company_sec2-inner {
  max-width: 1140px;
  margin: 0 auto;
}
.u_company_sec2 .h2_wrap {
  padding: 0 5%;
}
.u_company_sec2-flex {
  display: flex;
  justify-content: space-between;
  margin-top: 43px;
}
.u_company_sec2-img {
  width: 33%;
  margin-left: 5%;
}
.u_company_sec2-img img, .u_company_sec2-img source {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 378 / 440;
}
.u_company_sec2-text {
  width: 52%;
  margin-right: 5%;
  margin-top: 18px;
}
.u_company_sec2-text p {
  font-size: 15px;
  color: #FFFFFF;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2;
}
.u_company_sec2-name {
  text-align: right;
  margin-top: 24px;
}
.u_company_sec2-name p:first-child {
  font-size: 18px;
  color: #FFFFFF;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.u_company_sec2-name p:nth-child(2) {
  font-size: 25px;
  color: #FFFFFF;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
.u_company_sec2 br.forSp {
  display: none;
}
    @media(max-width:768px){
      section.u_company_sec2 {
        padding: 96px 5% 84px;
      }
      
      .u_company_sec2-flex {
        display: block;
    }
    .u_company_sec2-img {
      width: 100%;
      margin-left: 0;
    }
    .u_company_sec2-text {
      width: 100%;
      margin-right: 0;
      margin-top: 30px;
      }
      .u_company_sec2-text p {
        letter-spacing: 0;
    }
      .u_company_sec2 .h2_wrap {
        padding: 0;
      }
      .u_company_sec2 br.forSp {
        display: block;
    }
    section.u_company_sec2 h3 {
      letter-spacing: 0.05em;
    }
    }

/* ------------------
    COMPANY_Overview,COMPANY_History共通
------------------ */
section.u_company_sec3 {
  background-color: #464457;
  padding: 135px 5% 113px;
}
.u_company_sec3-inner,
.u_company_sec4-inner {
  display: flex;
  max-width: 1140px;
  margin: 0 auto;
  justify-content: space-between;
  padding: 0 5%;
}
.u_company_sec3 .h2_wrap,
.u_company_sec4 .h2_wrap {
  width: 22%;
}
    @media(max-width:768px){
      .u_company_sec3-inner, .u_company_sec4-inner {
        display: block;
        padding: 0;
    }
    section.u_company_sec3 {
      padding: 77px 0 73px;
  }
    }

/* ★ ★ 会社概要 ★ ★ */
.u_company_sec3 table,
.u_company_sec4 table {
  width: 68%;
  margin-top: 20px;
}
.u_company_sec3 td:first-child,
.u_company_sec4 td:first-child {
  width: 172px;
  line-height: 2;
  letter-spacing: 0.1em;
  font-size: 15px;
  font-weight: 400;
  padding: 20px 18px 20px 36px;
}
.u_company_sec3 td:nth-child(2),
.u_company_sec4 td:nth-child(2) {
  width: calc(100% - 172px);
  line-height: 2;
  letter-spacing: 0.1em;
  font-size: 15px;
  font-weight: 400;
  padding-right: 18px;
  padding: 20px 18px 20px 0;
}
.u_company_sec3 tr,
.u_company_sec4 tr {
  border-bottom: solid 1px #777490;
}

/* ~ */
span.rotate {
  transform-origin: center;
  position: relative;
  display: flex;
  align-items: center;
  margin: 10px 27px;
  width: 10px;
  height: 10px;
}
span.rotate:after {
  position: absolute;
  content: "~";
  color: #FFFFFF;
  transform: rotate(90deg);
}



    @media(max-width:768px){
    .u_company_sec3 table, .u_company_sec4 table {
      width: 100%;
    }
    .u_company_sec3 .h2_wrap, .u_company_sec4 .h2_wrap {
      width: 100%;
      padding: 0 5%;
    }
    .u_company_sec3-inner {
      padding: 0;
    }
    .u_company_sec3 tr,
    .u_company_sec4 tr {
      flex-direction: column;
      display: flex;
    }
    .u_company_sec3 td:first-child, .u_company_sec4 td:first-child {
      width: 100%;
      padding: 16px 5% 0;
      line-height: 2.14;
      font-size: 14px;
    }
    .u_company_sec3 td:nth-child(2), .u_company_sec4 td:nth-child(2) {
      width: 100%;
      padding: 0 5% 16px;
      font-size: 14px;
    }
    }

/* ------------------
    COMPANY_History
------------------ */
section.u_company_sec4 {
  background-color: #2B293C;
  padding: 74px 5% 106px;
}
    @media(max-width:768px){
      section.u_company_sec4 {
        padding: 120px 0 80px;
    }
    .u_company_sec4 td:first-child {
      width: 100%;
      padding: 16px 5% 2px;
      line-height: 2.14;
      font-size: 14px;
      letter-spacing: 0;
      display: flex;
    }
      span.rotate {
        margin: 10px;
    }
    span.rotate:after {
      transform: none;
    }
    .u_company_sec4 td:nth-child(2) {
      font-size: 14px;
      letter-spacing: 0;
    }
    }

/* ------------------
    COMPANY_Access
------------------ */
section.u_company_access {
  background-color: #464457;
  padding: 58px 5% 82px;
}
.u_company_access-inner {
  margin: 0 auto;
  max-width: 1140px;
  display: flex;
  justify-content: space-between;
  padding: 0 5%;
}
.u_company_acces-item p,
.u_company_acces-item address,
.u_company_acces-item p a {
  font-size: 15px;
  font-style: normal;
  color: #FFFFFF;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2;
}
.u_company_acces-item {
  line-height: 2;
}
.u_company_access-text {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.u_company_mapWrap {
  width: 62%;
}
.map {
  aspect-ratio: 635 / 361;
}
iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
p.u_company_logo {
  width: 236px;
  display: block;
}
p.u_company_logo img {
  width: 100%;
  object-fit: cover;
}
.u_company_mapWrap.forPc {
display: block;
}
.u_company_mapWrap.forSp {
display: none;
}
    @media(max-width:768px){
      section.u_company_access {
        padding: 50px 5% 57px;
    }
    .u_company_acces-item {
      margin-top: 34px;
    }
    .u_company_acces-item p, .u_company_acces-item address, .u_company_acces-item p a {
        margin-left: 5%;
        letter-spacing: 0;
    }
    .u_company_access-text .h2_wrap {
      padding: 0 5%;
    }
    .u_company_mapWrap.forPc {
      display: none;
    }
    .u_company_mapWrap.forSp {
      display: block;
      width: 100vw;
    }
    .map {
      aspect-ratio: 390 / 310;
    }
    .u_company_access-inner {
      margin: 0 auto;
      justify-content: center;
      padding: 0;
    }
    p.u_company_logo {
      width: 213px;
      display: block;
      margin-top: 23px;
    }
    }


/* 
    下層ページ_BUSINESS
================================================ */
/* ------------------
    BUSINESS_Message
------------------ */
.company-page h4 {
  color: #FFFFFF;
  opacity: 0.58;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: left;
  text-transform: capitalize;
}
/* ------------------
    COMPANY_理念
------------------ */
section.u_business_sec1 {
  background-color: #2B293C;
  padding: 90px 5% 100px;
}
.u_business_sec1-inner {
  justify-content: space-between;
  max-width: 787px;
  margin: 0 auto;
  width: 69%;
}
.u_business_sec1-text h3 {
  /* font-size: 42px; */
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-align: center;
  font-size: clamp(30px, 3.14vw, 42px);
}
.u_business_sec1-text p {
  margin-top: 50px;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2.66;
}
    @media(max-width:768px){
      section.u_business_sec1 {
        padding: 120px 5% 60px;
    }
      .u_business_sec1-inner {
        justify-content: space-between;
        width: 100%;
      }
      .u_business_sec1-text h3 {
        font-size: 30px;
        font-weight: 400;
        letter-spacing: 0.1em;
        line-height: 1.5;
        text-decoration-color: #FFFFFF;
        text-underline-offset: 6px;
        text-decoration-line: underline;
        text-decoration-thickness: 1px;
        text-align: left;
    }
    .u_business_sec1-text p {
      letter-spacing: 0;
  }
    }
/* ------------------
    BUSINESS_What’s?
------------------ */
section.u_business_sec2 {
  background-color: #464456;
  padding: 66px 5% 86px;
}
.u_business_sec2-inner {
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  width: 100%;
}
picture.u_business_sec2-img {
  width: 100%;
  aspect-ratio: 314 / 427;
  margin: 0 0 auto 0;
}
picture.u_business_sec2-img img,
picture.u_business_sec2-img source {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.u_business_sec2-title h3 {
  font-size: 34px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration: none;
  text-align: left;
  position: relative;
  padding-bottom: 8px;
}
.u_business_sec2-text {
  margin: 60px 0 auto;
}
.u_business_sec2-title h3::after {
  position: absolute;
  content: "";
  transform: skew(-60deg);
  border-top: solid 1px #FFFFFF;
  border-left: solid 2px #FFFFFF;
  width: 250px;
  height: 75px;
  bottom: calc(-100% - 16px);
  left: -63px;
}
.u_business_sec2-text h4 {
  color: #FFFFFF;
  opacity: 0.58;
}
.u_business_sec2-text {
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.05em;
  font-weight: 400;
  margin-top: 56px;
}
.u_business_sec2-grid {
  grid-column-gap: 11%;
  display: grid;
  grid-template-areas:
      "a b"
      "a c";
  align-items: center;
  grid-template-columns: 30% 59%;
  grid-template-rows: 20px 1fr;
  max-width: 1054px;
    margin: 0 auto;
}
.a {
  grid-area: a;
}
.b {
  grid-area: b;
  text-align: start;
  margin: 0 auto auto 0;
}
.c {
  grid-area: c;
  margin: 0 auto auto 0;
}
.u_business_sec2-title h4.b {
  color: #FFFFFF;
  opacity: 0.58;
  letter-spacing: 0.1em;
  font-size: 20px;
  font-weight: bold;
}
.u_business_sec1-text .forSp {
  display: none;
}

    @media(max-width:768px){
    section.u_business_sec2 {
    padding: 52px 5% 64px;
    }
    .u_business_sec2-inner {
    padding: 0;
    }
    .u_business_sec2-grid {
    grid-row-gap: 0;
    grid-column-gap: 0;
    display: grid;
    grid-template-areas:
        "b"
        "a"
        "c";
    align-items: center;
    grid-template-columns: 100%;
    grid-template-rows: 100px auto auto;
    }
    .u_business_sec2-title h3 {
      font-size: 30px;
      padding-bottom: 6px;
    }
    .u_business_sec2-title h3::after {
    border-left: none;
    width: 220px;
    }
    picture.u_business_sec2-img {
    aspect-ratio: 349 / 200;
    margin: 40px auto 0;
    }
    .u_business_sec2-text {
    font-size: 15px;
    line-height: 2;
    letter-spacing: 0;
    font-weight: 400;
    margin: 46px auto 0;
    }
    .u_business_sec1-text .forSp {
      display: block;
    }  

    }


/* ------------------
    BUSINESS_Type & Method Of Construction
------------------ */
section.u_business_sec3 {
  background-color: #2B293C;
  padding: 125px 5% 90px;
}
.u_business_sec3-inner {
  max-width: 1140px;
  margin: 0 auto;
}
h3.u_business_sec3-h3 {
  font-size: 34px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-align: center;
}
.u_business_sec3-text1 h3 {
  font-size: 34px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-align: center;
}
.u_business_sec3-inner h4 {
  color: #FFFFFF;
  opacity: 0.58;
  font-size: 15px;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 2;
  text-align: center;
}
.u_business_sec3-text2 p {
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.05em;
  margin-top: 20px;
  margin-left: 5%;
}
picture.u_business_sec3-img2 {
  width: 39%;
  aspect-ratio: 302 / 278;
  position: relative;
  z-index: 1;
}
.u_business_sec3-text2 h3 {
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-align: left;
  margin-left: 5%;
}
.u_business_sec3-flex1 h3 {
  font-size: 35px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-align: left;
}

.u_business_sec3-inner h4 {
  text-align: center;
}
.u_business_sec3-flex1 {
  display: grid;
    grid-template-areas:
        "g i"
        "h i";
    align-items: flex-start;
    grid-template-columns: 40% 57%;
    grid-template-rows: 63px auto;
    max-width: 931px;
    margin: 82px auto 0;
    grid-column-gap: 3%;
}
.g {
  grid-area: g;
}
.h,
.k {
  grid-area: h;
  margin-top: 46px;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.05em;
}
.i {
  grid-area: i;
}
picture.u_business_sec3-img1.i img,
picture.u_business_sec3-img1.i source {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 530 / 372;
}
.u_business_sec3-box {
  display: flex;
  align-items: center;
}

.u_business_sec3-flex2 {
  display: flex;
  align-items: center;
  max-width: 1128px;
  margin: 50px auto 0 0;
  padding-left: 104px;
}
picture.u_business_sec3-img2 {
  width: 39%;
  aspect-ratio: 302 / 278;
  position: relative;
  z-index: 1;
}
picture.u_business_sec3-img2 img, picture.u_business_sec3-img2 source {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.u_business_sec3-text2 {
  border: solid 1px #FFFFFF;
  width: 89%;
  position: relative;
  left: -93px;
  padding: 50px 5% 53px 12%;
  z-index: 0;
}
.u_business_sec3-text2 p {
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.05em;
  margin-top: 20px;
}


      @media(max-width:768px){
      section.u_business_sec3 {
      padding: 80px 0 70px;
      }
      picture.u_business_sec3-img1.i img {
      width: 100%;
      aspect-ratio: 390 / 229;
      }
      picture.u_business_sec3-img1 img {
      width: 100%;
      }
      .u_business_sec3-flex1 {
      display: grid;
      grid-template-areas:
      "g"
      "i"
      "h";
      align-items: flex-start;
      grid-template-columns: 100%;
      grid-template-rows: 73px 1fr auto;
      margin: 75px auto 0;
      grid-column-gap: 36px;
      }
      h3.u_business_sec3-h3 {
      font-size: 30px;
      letter-spacing: 0.05em;
      }
      .u_business_sec3-inner h4 {
      letter-spacing: 0;
      }
      .u_business_sec3-flex1 h3 {
      font-size: 24px;
      letter-spacing: 0.05em;
      text-align: center;
      }
      .h, .k {
      grid-area: h;
      margin-top: 46px;
      letter-spacing: 0;
      margin: 32px 5% 0;
      }
      .u_business_sec3-flex2 {
        border: solid 1px #FFFFFF;
        flex-direction: column;
        margin: 110px 5% 0;
        padding: 0;
      }
        picture.u_business_sec3-img2 {
          width: 70%;
          top: -54px;
          aspect-ratio: 275 / 195;
      }
      picture.u_business_sec3-img2 img, picture.u_business_sec3-img2 source {
        width: 100%;
        height: 100%;
        object-fit: cover;
        aspect-ratio: 275 / 195;
    }
      .u_business_sec3-box {
      padding: 0 10% 43px;
      margin: 54px 5% 0;
      display: block;
      }
      .u_business_sec3-text2 {
      border: none;
      width: 100%;
      left: 0;
      padding: 0 5% 53px;
      z-index: 0;
      margin-top: -26px;
      }
      .u_business_sec3-text2 p {
        margin: 20px 5% auto;
        letter-spacing: 0;
      }
      .u_business_sec3-text2 h3 {
        margin: 0 auto;
        text-align: center;
      } 
      }
/* ------------------
    BUSINESS_施工事例スライダー
------------------ */
.business-page .swiper3,
.business-page .swiper4 {
  background-color: #464456;
  padding: 16px 0 40px;
}
.business-page .swiper3 h3,
.business-page .swiper4 h3 {
  font-size: 32px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration: none;
  text-align: center;
  position: relative;
  top: -40px;
}
.business-page a.moreBtn {
  text-align: center;
  margin: 52px auto 0;
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  letter-spacing: 0.1em;
  color: #FFFFFF;
}
.swiper4 .forSp {
  display: none;
}
.swiper4 .forPc {
  display: block;
}
.swiper4 a.moreBtn{
  width: 118px;
}
    @media(max-width:768px){
      .business-page .swiper3 h3, .business-page .swiper4 h3 {
        font-size: 25px;
    }
    .swiper4 .forSp {
      display: block;
    }
    .swiper4 .forPc {
      display: none;
    }
    section.swiper4 a.moreBtn {
      width: 97px;
  }
    }
/* ------------------
    BUSINESS_その他の種類・工法
------------------ */
section.u_business_sec5 {
  background-color: #2B293C;
  padding: 90px 5% 40px;
}
.u_business_sec5-inner {
  max-width: 1140px;
  margin: 0 auto;
}
h2.u_business_sec5-h2 {
  font-size: 32px;
  text-align: center;
  letter-spacing: 0.1em;
  font-weight: 400;
}
.u_business_sec5-flex {
  display: flex;
  flex-wrap: wrap;
  max-width: 870px;
  margin: 0 auto;
  justify-content: space-between;
}
.u_business_sec5-card {
  width: 390px;
  margin-top: 55px;
}
.u_business_sec5-text h3 {
  font-size: 35px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-align: left;
}
.u_business_sec5-text {
  margin-top: 20px;
}
.u_business_sec5-text p {
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2;
  margin-top: 20px;
}
picture.u_business_sec5-img1 {
  aspect-ratio: 407 / 291;
}
picture.u_business_sec5-img1 img,
picture.u_business_sec5-img1 source {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 407 / 291;
}
.u_business_sec5-h2 .forSp {
  display: none;
}
.u_business_sec5-h2 .forPc {
  display: block;
}
h3.u_business_sec5-card-forSp {
  display: none;
}

    @media(max-width:920px){
      .u_business_sec5-flex {
      display: block;
      flex-wrap: wrap;
      max-width: 870px;
      margin: 0 auto;
      }
      .u_business_sec5-card {
        width: 100%;
        margin: 55px auto 0;
        max-width: 390px;
      }
      .u_business_sec5-text h3 {
      font-size: 24px;
      text-align: center;
      }
      h3.u_business_sec5-card-forSp {
        margin-bottom: 40px;
    }
    h3.u_business_sec5-card-forSp {
      display: block;
      font-size: 24px;
      font-weight: 400;
      letter-spacing: 0.1em;
      line-height: 1.5;
      text-decoration-color: #FFFFFF;
      text-underline-offset: 6px;
      text-decoration-line: underline;
      text-decoration-thickness: 1px;
      text-align: center;
      }
      .u_business_sec5-text h3.forPc {
          display: none;
      }
      }
  

    @media(max-width:768px){
    .business-page a.moreBtn {
      font-size: 14px;
    }
    h2.u_business_sec5-h2.forSp {
    font-size: 24px;
    display: block;
    }
    h2.u_business_sec5-h2.forPc {
    display: none;
    }
    section.u_business_sec5 {
    padding: 90px 0 40px;
    }
    .u_business_sec5-text p {
      padding: 0 5%;
      letter-spacing: 0;
    }
    
    }
    @media (max-width: 920px) {
      .u_business_sec5-card {
          max-width: 100%;
      }
  }

/* 
    下層ページ_WORKS
================================================ */
ul.u_worksList {
  display: flex;
  justify-content: space-around;
  background-color: #FFFFFF;
}
.u_worksList li {
  border: solid 1px #2B293C;
  width: 25%;
  align-items: center;
  display: flex;
  justify-content: center;
}
.u_worksList li a {
  color: #2B293C;
  font-size: clamp(20px, 2.48vw, 25px);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.6;
  padding: 19px 10%;
}
.u_worksList li a:hover {
  opacity: .8;
  transition: all .3s;
}
.u_worksList li.active {
  background-color: #667480;
}
.u_worksList li.active a {
  color: #FFFFFF;
  font-size: clamp(20px, 2.48vw, 25px);
}
    @media(max-width:768px){
    ul.u_worksList {
      flex-wrap: wrap;
    }  
.u_worksList li a {
  padding: 14px 0;
  font-size: 20px;
}
    .u_worksList li {
    width: 50%;
    }
.u_worksList li.active a {
  padding: 14px 0;
  font-size: 20px;
}
    }
/* ------------------
    WORKS_その他の種類・工法
------------------ */
section.u_works {
  background-color: #2B293C;
}
.u_works-ttlWrap {
  text-align: center;
  margin: 120px auto 20px;
}
.works-page h4 {
  color: #FFFFFF;
  opacity: 0.58;
  font-size: 15px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: center;
  text-transform: capitalize;
}
.works-page h3 {
  font-size: clamp(25px, 3.7vw, 42px);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
}
.u_works-ttlWrap h3 {
  text-align: center;
}
.u_works-flex {
  display: flex;
  justify-content: space-between;
}
.u_works-archive-inner {
  padding: 0 5%;
}
.u_works-archive {
  max-width: 1140px;
  margin: 0 auto;
  padding: 100px 0 42px;
  display: grid;
  grid-row-gap: 80px;
}
.u_works-postimg {
  width: 44%;
  aspect-ratio: 475 / 352;
}
.u_works-postimg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.u_works-table {
  width: 48%;
  padding-bottom: 35px;
}
.u_works-flex table {
  width: 100%;
  max-width: 530px;
}
.works-page th {
  padding: 30px 0;
  font-size: clamp(20px, 2.76vw, 30px);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.33;
  text-align: left;
}
.works-page tr {
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 2;
  color: #FFFFFF;
  border-bottom: solid 1px #FFFFFF;
}
.works-page td:first-child {
  padding: 15px 53px 15px 15px;
  width: 38%;
}
.works-page td:nth-child(2) {
  padding: 15px 0 15px 15px;
  width: 65%;
}

    @media(max-width:1024px){
      .u_works-ttlWrap {
        margin: 90px auto 44px;
    }

    .u_works-archive {
      padding: 0 0 27px;
        grid-row-gap: 100px;
      }
  
    .u_works-flex {
      display: block;
      padding: 0;
      max-width: 530px;
      margin: 0 auto;
    }
    .u_works-postimg {
    width: 100%;
    }
    .u_works-table {
    width: 100%;
    padding-bottom: 0;
    }
    .u_works-postimg img {
      max-width: 530px;
      margin: 0 auto;
  }
  .works-page h3 {
    font-size: clamp(25px, 3.7vw, 42px);
    letter-spacing: 0;
    text-align: center;
}
    .works-page th {
      letter-spacing: 0;
      line-height: 2;
      text-align: center;
      padding: 23px 0;
    }
    .works-page td:first-child,
    .works-page td:nth-child(2) {
      font-size: 15px;
      font-weight: bold;
      letter-spacing: 0;
  }
    .works-page td:first-child {
      padding: 15px 32px 15px 15px;
    }
    .works-page td:nth-child(2) {
      padding: 15px 5% 15px 0;
    }
    }

.preparation{
  text-align: center;
  margin-top: 100px;
}


/* 
    下層ページ_RECRUIT
================================================ */
/* ------------------
    RECRUIT_Message
------------------ */
section.u_recruit-sec1 {
  background-color: #2B293C;
  padding: 100px 5% 0;
}
.u_recruit-sec1-flex {
  display: flex;
  max-width: 1140px;
  margin: 0 auto;
  justify-content: space-between;
}
.u_recruit-sec1-text {
  width: 40%;
}
picture.u_recruit-sec1-img {
  max-width: 600px;
  aspect-ratio: 603 / 424;
  width: 60%;
  margin-top: 140px;
}
picture.u_recruit-sec1-img.forSP {
  display: none;
}
picture.u_recruit-sec1-img.forPc {
  display: block;
  margin-left: 6%;
}
picture.u_recruit-sec1-img img,
picture.u_recruit-sec1-img source {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 603 / 424;
  vertical-align: bottom;
}
section.u_recruit-sec1 h3 {
  white-space: nowrap;
  position: relative;
  z-index: 1;
  color: #FFFFFF;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.43;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  font-size: clamp(23px, 3.9vw, 48px);
}
.u_recruit-ttlWrap h4 {
  color: #FFFFFF;
  opacity: 0.58;
  font-size: clamp(15px, 1.93vw, 20px);
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-transform: capitalize;
}
section.u_recruit-sec1 h4 {
  text-align: left;
}
.u_recruit-sec1-text p {
  margin-top: 70px;
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.05em;
}
.u_recruit-ttlWrap .forSP {
  display: none;
}
    @media(max-width:768px){
    picture.u_recruit-sec1-img.forPc {
    display: none;
    }
    .u_recruit-sec1-flex {
    display: block;
    }
    .u_recruit-sec1-text {
    width: 100%;
    }
    section.u_recruit-sec1 {
    padding: 100px 0 0;
    }
    .u_recruit-ttlWrap {
    padding: 0 5%;
    }
    picture.u_recruit-sec1-img.forSP {
    display: block;
    margin-top: 37px;
    padding-left: 10%;
    aspect-ratio: 352 / 212;
    }
    picture.u_recruit-sec1-img img, picture.u_recruit-sec1-img source {
      width: 100%;
      height: 100%;
      vertical-align: bottom;
      object-fit: cover;
  }
    .u_recruit-sec1-text p {
      margin-top: 36px;
      line-height: 2.66;
      letter-spacing: 0;
      padding: 0 5%;
      }
      section.u_recruit-sec1 h4 {
        text-align: left;
        font-size: 15px;
      }
      section.u_recruit-sec1 h3 {
        font-size: 30px;
      }
      .u_recruit_sec6-inner br.forSp {
        display: block;
      }
      .u_recruit-ttlWrap .forSP {
        display: block;
      }
    }
/* ------------------
    RECRUIT_Future
------------------ */
section.u_recruit-sec2 {
  background-color: #2B293C;
  padding: 120px 5%;
}
.u_recruit-sec2 h4,
.u_recruit-sec2 h3 {
  text-align: center;
}
section.u_recruit-sec2 h3,
section.u_recruit-sec4 h3,
section.u_recruit-sec5 h3,
section.u_recruit_sec6 h3 {
  white-space: nowrap;
  position: relative;
  z-index: 1;
  color: #FFFFFF;
  font-size: clamp(30px, 3.53vw, 34px);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.43;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
}
ul.u_recruit-sec2-list {
  display: flex;
  max-width: 1140px;
  justify-content: center;
  margin: 0 auto;
  grid-column-gap: 6%;
  margin-top: 40px;
}
ul.u_recruit-sec2-list li {
  width: 30%;
}
ul.u_recruit-sec2-list li img {
  width: 100%;
  aspect-ratio: 332 / 277;
  height: auto;
  object-fit: cover;
  vertical-align: bottom;
}
.u_recruit-sec2-text {
  color: #FFFFFF;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 2;
  margin-top: 18px;
}
p.u_recruit-sec2-num {
  color: #888888;
  font-size: clamp(16px, 1.6vw, 20px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 2;
  margin-top: 12px;
}
.u_recruit-sec2 h5 {
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.75;
}
    @media(max-width:768px){
      section.u_recruit-sec2 {
        padding: 65px 7%;
      }
      ul.u_recruit-sec2-list {
        display: block;
      }
      ul.u_recruit-sec2-list li {
      width: 100%;
      display: block;
      justify-content: space-between;
      }
      picture.u_recruit-sec1-img {
        width: 100%;
        margin-top: 65px;
        aspect-ratio: 332 / 221;
        display: block;
        max-width: 100%;
      }
      ul.u_recruit-sec2-list li img,
      ul.u_recruit-sec2-list li source {
        aspect-ratio: 332 / 221;
    }
      .u_recruit-sec1-textWrap {
      width: 100%;
      }
      p.u_recruit-sec2-num {
        margin-top: 25px;
        font-size: 15px;
        text-align: center;
      }
      .u_recruit-sec2 h5 {
        letter-spacing: 0;
        text-align: center;
    }
    }

/* ------------------
    RECRUIT_image
------------------ */
.u_recruit-sec3 picture {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1440 / 566;
}
.u_recruit-sec3 picture img,
.u_recruit-sec3 picture source {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media(max-width:768px){
  .u_recruit-sec3 picture {
    aspect-ratio: 390 / 218;
}
}
/* ------------------
    RECRUIT_Person
------------------ */
section.u_recruit-sec4 {
  background-color: #2B293C;
  padding: 85px 5% 50px;
  text-align: center;
}
section.u_recruit-sec4 h3,
.u_recruit-sec4 .u_recruit-ttlWrap h4 {
  text-align: center;
}
.u_recruit-sec4 ul {
  margin: 40px auto 0;
  grid-row-gap: 20px;
  display: grid;
  max-width: 943px;
}
section.u_recruit-sec4 h5 {
  background-color: #FFFFFF;
  color: #2B293C;
  font-size: 20px;
  font-weight: 900;
  padding: 10px;
  letter-spacing: 0.1em;
}
.u_recruit-sec4 ul li {
  border: solid 1px #FFFFFF;
}
.u_recruit-sec4 ul li p {
  padding: 29px 46px;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0;
  font-weight: 400;
  text-align: left;
}
    @media(max-width:768px){
      section.u_recruit-sec4 {
        padding: 70px 5% 125px;
    }
    .u_recruit-sec4 ul {
      grid-row-gap: 23px;
  }
    section.u_recruit-sec4 h5 {
      font-size: 18px;
      letter-spacing: 0;
      line-height: 1.94;
  }
    .u_recruit-sec4 ul li p {
      padding: 29px 8%;
      letter-spacing: 0;
    }
    .u_recruit-sec4 ul li:last-child h5 {
      font-size: 16px;
      line-height: 2.18;
  }
    }
/* ------------------
    RECRUIT_Interview
------------------ */
section.u_recruit-sec5 {
  background-color: #464457;
  padding: 110px 5% 158px;
}
section.u_recruit-sec5 ul {
  margin: 100px auto 0;
  max-width: 946px;
  display: grid;
  grid-row-gap: 127px;
}
section.u_recruit-sec5 ul li {
  display: flex;
  justify-content: space-between;
  grid-column-gap: 4%;
}
section.u_recruit-sec5 ul li:nth-child(2) {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
}

.u_recruit-sec5-textWrap:nth-child(2) {
  max-width: 496px;
  width: 52%;
}
section.u_recruit-sec5 picture img,
section.u_recruit-sec5 picture source {
  aspect-ratio: 400 / 524;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
section.u_recruit-sec5 picture {
  width: 42%;
}
section.u_recruit-sec5 h4,
section.u_recruit-sec5 h3 {
  text-align: center;
}
.u_recruit-sec5-textWrap {
  max-width: 496px;
}
.u_recruit-sec5-textWrap h5 {
  letter-spacing: 0.1em;
  line-height: 1.33;
  font-weight: bold;
  font-size: clamp(25px, 3vw, 30px);
}
p.u_recruit-sec5-name {
  font-size: clamp(20px, 2.32vw, 25px);
    font-weight: bold;
    letter-spacing: 0.1em;
    margin-top: 36px;
    display: flex;
    align-items: center;
}
span.pipe {
  position: relative;
}
span.pipe:after {
  font-size: 19px;
  content: "";
  border-right: solid 1px #FFFFFF;
  height: 20px;
}
.u_recruit-sec5-name span {
  font-size: clamp(15px, 1.8vw, 20px);
  font-weight: bold;
  letter-spacing: 0.1em;
  margin-left: 20px;
  position: relative;
}
span.pipe:after {
  font-size: 19px;
  content: "";
  border-right: solid 1px #FFFFFF;
  height: 20px;
}
p.u_recruit-sec5-text {
  font-size: 15px;
  font-weight: bold;
  left: 0;
  line-height: 2;
  margin-top: 36px;
  letter-spacing: 0;
}
    @media(max-width:768px){
    section.u_recruit-sec5 {
      padding: 61px 0 65px;
    }
    section.u_recruit-sec5 ul li {
      display: block;
    }
    section.u_recruit-sec5 ul li:nth-child(2) {
    display: block;
    }

    section.u_recruit-sec5 ul li img {
    max-width: 100%;
    }
    .u_recruit-sec5-textWrap:nth-child(2) {
      max-width: 100%;
      padding: 28px 5% 0;
      width: 100%;
    }
      .u_recruit-sec5-textWrap h5 {
        font-size: 25px;
        letter-spacing: 0;
        line-height: 1.6;
    }
      .u_recruit-sec5-name span {
        font-size: 15px;
    }
    section.u_recruit-sec2 h3, section.u_recruit-sec4 h3, section.u_recruit-sec5 h3, section.u_recruit_sec6 h3 {
      line-height: 1.63;
    }
      section.u_recruit-sec5 ul li picture {
        aspect-ratio: 400 / 241;
    }
    section.u_recruit-sec5 ul li picture img {
      width: 100%;
      height: auto;
      object-fit: cover;
      vertical-align: bottom;
      aspect-ratio: 400 / 241;
    }
    section.u_recruit-sec5 ul {
      margin: 60px auto 0;
      grid-row-gap: 107px;
    }
    p.u_recruit-sec5-name {
      font-size: 20px;
    }
    }
/* ------------------
    RECRUIT_Guideline
------------------ */
section.u_recruit_sec6 {
  background-color: #2B293C;
  padding: 110px 5% 40px;
}
.u_recruit_sec6-inner {
  max-width: 962px;
  margin: 0 auto;
}
.u_recruit_sec6 h4,
.u_recruit_sec6 h3 {
  text-align: center;
}
    @media(max-width:768px){
      section.u_recruit_sec6 {
        padding: 89px 0 0;
    }
    }


/* ★ ★ 募集要項 ★ ★ */
.u_recruit_sec6 table {
  width: 100%;
  margin-top: 40px;
}
.u_recruit_sec6 td:first-child {
  width: 200px;
  line-height: 2;
  letter-spacing: 0;
  font-size: 18px;
  font-weight: bold;
  padding: 20px 30px 20px 20px;
}
.u_recruit_sec6 td:nth-child(2) {
  width: calc(100% - 200px);
  line-height: 2;
  letter-spacing: 0;
  font-size: 18px;
  font-weight: 400;
  padding: 20px 18px 20px 0;
}
.u_recruit_sec6 tr {
  border-bottom: solid 1px #777490;
}
    @media(max-width:768px){
      .u_recruit_sec6 tr {
        display: block;
        border-bottom: none;
    }
      .u_recruit_sec6 td:first-child {
        display: block;
        padding: 20px 5% 0 5%;
    }
    .u_recruit_sec6 td:nth-child(2) {
      padding: 0 5% 20px;
      display: block;
      width: 100%;
      border-bottom: solid 1px #DBDBDB;
  }
    }

/* 
    下層ページ_CONTACT
================================================ */
.u_contact {
  background-color: #2B293C;
  padding: 90px 5% 75px;
}
.u_contact-inner {
  max-width: 1000px;
  margin: 0 auto;
}
.u_contact h3 {
  font-size: clamp(30px, 3.3vw,34px);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-align: center;
}
.u_contact-itemWrap {
  background-color: #FFFFFF;
  color: #2B293C;
  border-radius: 10px;
  padding: 36px 0;
  display: flex;
  text-align: center;
  justify-content: space-around;
  position: relative;
  margin-top: 55px;
}
.u_contact-itemWrap::after {
  position: absolute;
  content: "";
  border-top: solid 1px #2B293C;
  width: 100px;
  transform: rotate(90deg);
  top: 50%;
}
.u_contact-num {
  display: flex;
  align-items: center;
  border-bottom: solid 1px #F4F0EA;
}
.u_contact-num img {
  width: 41px;
  vertical-align: bottom;
}
.u_contact-num p,
.u_contact-num a {
  font-size: clamp(30px, 3.9vw, 43px);/*43px*/
  display: flex;
  align-items: center;
  color: #2B293C;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-left: 30px;
}
.u_contact-item small {
  font-size: clamp(13px, 1.45vw, 19px);/*19px*/
  line-height: 3;
  letter-spacing: 0.1em;
}
.u_contact-inner .forSp {
  display: none;
}
    @media(max-width:768px){
      .u_contact-inner .forSp {
        display: block;
      }
      .u_contact-inner {
        text-align: center;
    }
      .u_contact h3 {
        letter-spacing: 0.05em;
        line-height: 1.16;
        text-decoration: none;
        text-align: center;
        display: inline-block;
        border-bottom: solid 1px #FFFFFF;
        padding-bottom: 12px;
    }
      .u_contact-itemWrap {
      flex-direction: column;
      grid-row-gap: 60px;
      max-width: 390px;
      margin: 36px auto 0;
    }
    .u_contact-itemWrap::after {
      left: 50%;
      position: absolute;
      content: "";
      border-top: solid 1px #2B293C;
      width: 95px;
      transform: rotate(180deg) translateX(50%);
      top: 50%;
    }
    .u_contact-num p, .u_contact-num a {
      font-size: min(9vw, 30px);
      margin-left: 20px;
    }
    .u_contact-num img {
      width: 28px;
    }
    .u_contact-item {
      margin: 0 auto;
      }
    }


.form-title {
  width: 100%;
  margin: 0 auto;
  max-width: 768px;
  text-align: center;
}
.form-title h3 {
  color: #FFFFFF;
  font-size: 34px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration-color: #FFFFFF;
  text-underline-offset: 6px;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-align: center;
}
.form-title p {
  color: #FFFFFF;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.15em;
  line-height: 2.33;
  text-align: center;
  margin-top: 55px;
}
p.u_contact-rec {
  color: #212121;
  background-color: #CBCBCB;
  display: inline-block;
  padding: 0 30px;
  font-size: 15px;
  letter-spacing: 0.05em;
  line-height: 2.66;
  margin-top: 40px;
}
.form-title .forSp {
  display: none;
}
p.c_forSp-text {
  display: none;
}
p.c_forPc-text {
  display: block;
}
    @media(max-width:768px){
    p.c_forSp-text {
      display: block;
    }
    p.c_forPc-text {
      display: none;
    }
    .form-title h3 {
    font-size: clamp(30px, 3.3vw, 34px);
    }
    .form-title p {
    font-size: 15px;
    letter-spacing: 0;
    }
    .form-title .forSp {
    display: block;
    }
    }


/*
 コンタクトフォーム
---------------------------------------------------- */
.form-wrapper {
  width: 100%;
  margin: 0 auto;
  background-color: #464457;
  padding: 63px 5% 160px;
}
.form-box {
  width: 100%;
  max-width: 618px;
  margin: 60px auto 0;
}
.form-box dl {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
}
.form-box dd {
  width: 72%;
  margin-inline-start: 0;
}
.form-box dt {
  min-width: 173px;
  width: 27%;
  font-size: 15px;
  font-weight: 400;
  color: #191919;
  letter-spacing: 0.1em;
  line-height: 2.66;
  display: flex;
  align-items: center;
  text-align: left;
}
select#prefecture {
  min-width: 100px;
  width: auto;
  padding: 6px 10px;
  border: 1px solid #C4C4C4;
  outline: none;
}
.dd-flex {
  display: flex;
}
.dd-flex label {
  width: 20%;
  min-width: 90px;
}

input[type=text],
input[type=email],
input[type=tel],
textarea {
  width: 100%;
  padding: 15.4px 20px;
  border: none;
  outline: none;
  font-size: 16px;
  color: #191919;
  caret-color: #191919;
  background-color: #464457;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0px;
}
input[type=text]:last-of-type,
input[type=email],
input[type=tel],
textarea {
  max-width: 100%;
  width: 100%;
  border-bottom: solid 1px #A5A5A5;
  caret-color: #FFFFFF;
  color: #FFFFFF;
  letter-spacing: 0.1em;
  font-weight: 400;
  font-family: "Zen Old Mincho", serif;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0px;
}
input[type=checkbox] {
  display: none;
}
label {
  color: #FFFFFF;
}
label.checkbox {
  position: relative;
}
label.checkbox::before {
  position: absolute;
  content: url(../images/checkbox.svg);
  width: 14px;
  height: 14px;
  left: -30px;
  background-size: contain;
}
input:checked + label.checkbox::before {
  content: url(../images/checked.svg);
}

.form-box dt, .form-box dd {
  padding-bottom: 41px;
  display: flex;
  align-items: center;
}
dt.message {
  align-items: flex-start;
}
.required {
  display: inline-block;
}
.required::after {
  content: "*";
  display: inline-block;
  padding-left: .2em;
  color: #FFFFFF;
}
::placeholder {
  font-size: 12px;
  color: #898989;
  letter-spacing: 0.1em;
}
dd.radio {
  font-size: 12px;
}
dd.radio p {
  display: flex;
  align-items: center;
  margin-right: 27px;
}
    @media(max-width:1024px){
      .u_contact-flex {
      flex-direction: column;
      }
      .u_contact-text p:first-child {
      margin-top: 80px;
      }
    }

      @media(max-width:935px){
        .form-box dl {
        display: block;
        }
        dd.radio p {
          margin: 10px 14px 10px 0;
          letter-spacing: 0.05em;
      }
        .form-box dt {
        display: block;
        width: 100%;
        padding-bottom: 0;
        }
        .form-box dd {
          flex-wrap: wrap;
        width: 100%;
        padding-bottom: 36px;
        }
        }

          @media(max-width:768px){
            .form-box {
              margin: 48px auto 0;
          }
          section.u_contact {
            padding: 70px 5% 87px;
          }
          .u_contact .u_title h2 {
            display: inline;
          }
          .u_contact-text {
            font-size: 17px;
            color: #000;
            font-weight: bold;
            letter-spacing: 0;
          }    
          .u_contactForm-flex {
            flex-direction: column;
          }
          input[type=text]#your-name, input[type=tel] {
            max-width: 100%;
            width: 100%;
          }
          .u_contact-text p:first-child {
            margin-top: 80px;
            line-height: 1.47;
            letter-spacing: 0;
          }
          .form-wrapper {
            padding: 63px 5% 84px;
        }
        .u_contact-text br.pc-only {
          display: none;
        }
          }

/*
ラジオボタンカスタマイズ
---------------------------------------------------- */
input[type=radio] {
  appearance: none;
  border: none;
  position: relative;
  width: 20px;
  height: 20px;
  cursor: pointer;
  margin-right: 8px;
}
input[type=radio]::before {
  position: absolute;
  content: "";
  display: block;
  border-radius: 50%;
  background-color: #A5A5A5;
  width: 12px;
  height: 12px;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: 1;
  border: solid 4px #FFFFFF;
}
input[type=radio]:checked::after {
  position: absolute;
  content: "";
  display: block;
  border-radius: 50%;
  background-color: #4861C9;
  width: 12px;
  height: 12px;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: 2;
  border: solid 4px #FFFFFF;
}
.mailForm form input[type=radio] {
  accent-color: #4861C9;
}
input[type=radio]:nth-child(2),
input[type=radio]:nth-child(3) {
  margin-left: 36px;
}

/* プライバシーポリシー */
.Form__privacy h2 {
  color: #171717;
  font-size: 17px;
  font-weight: 500;
  line-height: 2.26;
  letter-spacing: 0.05em;
  font-family: "Zen Old Mincho", serif;
  margin-bottom: 27px;
}
.Form__privacy p {
  color: #171717;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.66;
  letter-spacing: 0;
  font-family: "Zen Old Mincho", serif;
}
.Form__privacy h3 {
  color: #171717;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.66;
  letter-spacing: 0;
  font-family: "Zen Old Mincho", serif;
  margin-top: 20px;
  margin-bottom: 20px;
}
.Form__privacy h4 {
  color: #171717;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.66;
  letter-spacing: 0;
  font-family: "Zen Old Mincho", serif;
}
.Form__wrapper {
  background-color: #CCCCCC;
  box-shadow: inset 3px 3px 10px rgba(0, 0, 0, .06), inset -3px -3px 10px rgba(0, 0, 0, .06);
  border: solid 1px #CCCCCC;
  padding: 34px 0 34px 50px;
}
.Form__scrollArea {
  height: 260px;
  overflow-y: scroll;
  margin: 0;
  max-width: 747px;
  padding: 0 40px 0 0;
}
    @media(max-width:768px){
      .Form__scrollArea {
        padding: 0;
    }
    }
.Form__scrollArea::-webkit-scrollbar {
  width: 12px;
}
.Form__scrollArea::-webkit-scrollbar-thumb {
  border-radius: 100px;
  border: 0px solid transparent;
  background-color:#8E8E8E;
  background-clip: content-box;
  height: 43px;
}
.Form__scrollArea::-webkit-scrol.malbar-track {
  background-color: #FFFFFF;
  border-radius: 100px;
}
.Form__checkbox {
  margin-top: 56px;
  display: flex;
  justify-content: center;
}
label.checkbox {
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: 450;
  line-height: 1.08;
  font-family: "Noto Serif JP", serif;
}
    @media(max-width:768px){
      .Form__wrapper {
        padding: 20px 0 20px 20px;
        margin-top: 10px
      }
      section.Form__privacy {
        margin: 0 26px 0 0;
      }
      .Form__checkbox {
        margin-left: 30px;
        margin-top: 50px;
      }
      .Form__privacy h2 {
        font-size: 15px;
        margin-top: 10px;
        margin-bottom: 10px;
      }
    }

/* 送信ボタン */
.btn-wrapper {
  margin-top: 30px;
  text-align: center;
}
input.btn-submit {
  padding: 19px 93px;
  border: none;
  color: #2B293C;
  transition: 0.3s ease-in;
  font-size: 18px;
  letter-spacing: 0.1em;
  background: #FFFFFF;
  display: flex;
  align-items: center;
  margin: 50px auto 0;
  border-radius: 100px;
  font-family: "Noto Serif JP", serif;
}
input.btn-submit:hover {
  color: #FFFFFF;
  background: #667480;
}

/* 送信ボタン矢印 */
.btn-submit_wrapper {
  width: fit-content;
  position: relative;
  margin: 0 auto;
}
.btn-submit_wrapper::after {
  content: url(../images/arrow-bk.svg);
  position: absolute;
  right: 26px;
  margin: auto;
  display: inline-block;
  width: 10px;
  height: 15px;
  top: 50%;
  transform: translateY(-50%);
}
input {
  -webkit-appearance: none;
}


/*
    下層ページ_CONTACT-CONFIRM
================================================ */
.confirm-page input[type=text]:last-of-type,
.confirm-page input[type=email],
.confirm-page input[type=tel],
.confirm-page textarea {
  border-bottom: none;
}
.confirm-page label.checkbox-checked {
  position: relative;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: 400;
}
.confirm-page label.checkbox-checked::before {
  position: absolute;
  content: url(../images/checked.svg);
  width: 14px;
  height: 14px;
  left: -30px;
  background-size: contain;
}
.confirm-page dd {
  font-size: 12px;
  color: #FFFFFF;
  letter-spacing: 0.1em;
  line-height: 1.83;
}
.confirm-page .form-wrapper {
  width: 100%;
  margin: 0 auto;
  background-color: #464457;
  padding: 108px 5% 160px;
}
@media(max-width:768px){
  .confirm-page .form-wrapper {
    padding: 63px 5% 84px;
}
}


/*
    下層ページ_CONTACT-THANKS
================================================ */
.thanks-page .form-wrapper {
  width: 100%;
  margin: 0 auto;
  background-color: #464457;
  padding: 108px 5% 160px;
}
.form-title .forSp {
  display: none;
}

.thanks-page .btn-submit_wrapper a {
  padding: 19px 93px;
  border: none;
  color: #2B293C;
  transition: 0.3s ease-in;
  font-size: 18px;
  letter-spacing: 0.1em;
  background: #FFFFFF;
  display: flex;
  align-items: center;
  margin: 50px auto 0;
  border-radius: 100px;
  font-family: "Noto Serif JP", serif;
}
.thanks-page .btn-submit_wrapper a:hover {
  color: #FFFFFF;
  background: #667480;
}
    @media(max-width:768px){
      .thanks-page .form-wrapper {
        padding: 63px 5% 84px;
      }
      .form-title .forSp {
        display: block;
      }
    }


/* 
    下層ページ_PRIVACY-POLICY
================================================ */


/* 
    全ページ_FOOTER
================================================ */
.footer {
    background-color: transparent;
    padding: 107px 3% 44px 10%;
    position: relative;
    z-index: 100;
}
.footer_inner {
  max-width: 1234px;
  margin: 0 auto;
}
p.footer_text {
  font-size: 49px;
  color: #FFFFFF;
  writing-mode: tb;
  letter-spacing: 0.1em;
  line-height: 1.25;
}
ul.footer_navList {
  display: flex;
  margin-top: 90px;
  flex-wrap: wrap;
}
ul.footer_navList li {
  padding: 12px 0;
}
ul.footer_navList li a {
  font-size: 15px;
  color: #FFFFFF;
  padding: 30px 36px 30px 0;
}
.footer_itemWrap {
    display: flex;
    justify-content: space-between;
    max-width: 1260px;
    margin: 0 auto;
}
.footer_nav {
    display: flex;
}
.footer h1 a, .footer_name-container, .footer_copy {
  text-transform: uppercase;
  color: #FFFFFF;
  text-align: right;
  letter-spacing: 0.05em;
  line-height: 2;
}
.inner.footer_copy {
    max-width: 1260px;
    margin: 0 auto;
    text-align: center;
}
.footer_name-container p {
    font-size: 15px;
    line-height: 2;
    color: #FFFFFF;
    font-weight: 500;
    letter-spacing: 0.05em;
}
.footer_name-container p a {
    color: #FFFFFF;
}
.footer_name-container h1 {
    text-align: left;
    margin-bottom: 6px;
}
.footer_privacyLink {
    margin-top: 50px;
    text-align: right;
}
ul.footer_nav li {
    margin-left: 40px;
}
.footer_copy small {
    font-size: 13px;
    line-height: 2.3;
    letter-spacing: 0;
    margin-top: 40px;
    font-weight: 500;
}
.footer h1.site-id a img {
    width: 321px;
}
.footer_copy {
  font-size: 12px;
}

    @media(max-width:768px){
    .footer {
      padding: 150px 5% 20px;
    }
    .footer_itemWrap {
    flex-direction: column;
    }
    .footer_nav {
      flex-wrap: wrap;
      text-align: center;
      margin-top: 69px;
    }
    .footer h1.site-id a img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .inner.footer_copy {
    margin: 34px auto 0;
    }
    .footer_name-container p {
      font-size: 12px;
      line-height: 1.47;
    }
    .footer_copy {
    font-size: 10px;
    }
      .footer_name-container h1 {
        margin-bottom: 20px;
        width: 246px;
        margin-right: 0;
        margin: 0 auto;
    }   
    .footer_privacyLink {
    margin-top: 16px;
    text-align: left;
    }
    ul.footer_nav li {
    width: 33%;
    margin: 16px auto;
    }
    p.footer_text {
    font-size: clamp(35px, 7.37vw, 49px);
    margin: 0 auto;
    }
    ul.footer_navList {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      grid-row-gap: 0;
      margin: 0 auto;
    }
    ul.footer_navList li a {
      padding: 10px 20px;
    }
    .footer_name-container {
    text-align: center;
    letter-spacing: 0.05em;
    margin-top: 86px;
    }
    }


/* 
    全ページ_videoパララックス
================================================ */
.parallax {
  position: fixed;
  height: 100vh;
  right: 0;
  top: 0;
  width: 100%;
  z-index: -10;
  filter: brightness(0.56);
}
video {
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: -1;
  margin-left: auto;
  right: 0;
  height: 100%;
  object-fit: cover;
}
video.forPc {
  display: block;
}
video.forSp {
  display: none;
}
@media (max-width:768px){
    video {
      width: 100%;
      margin-left: 0;
      right: 0;
      height: 100%;
      object-fit: cover;
    }
    video.forPc {
      display: none;
    }
    video.forSp {
      display: block;
    }
}

/* 
    PRIVACY POLICY
================================================ */
section.u_privacy {
  margin: 0 auto;
  padding: 60px 5%;
  background-color: #2B293C;
}
.u_privacy .u_title {
  max-width: 1150px;
  margin: 0 auto;
}
.u_privacy .u_title h2 {
  font-size: clamp(55px, 7.6vw, 77px);
  left: 50px;
  line-height: 1.28;
  letter-spacing: 0;
  color: #FFFFFF;
  margin-left: -13px;
  position: relative;
  text-transform: capitalize;
}
.u_privacy .u_title h2::before {
  left: -36px;
  border-radius: 10px;
  top: 50%;
  position: absolute;
  content: "";
  background: #FFFFFF;
  width: 19px;
  height: 19px;
}
.u_privacy .u_title p {
  font-size: 18px;
  margin-left: 40px;
  line-height: 1.44;
  letter-spacing: 0;
}
.privacy_text {
  margin: 100px auto;
  padding: 0 20px;
  max-width: 1150px;
  font-size: 17px;
  letter-spacing: 0;
  line-height: 1.66;
  font-weight: 400;
  color: #FFFFFF;
}
.privacy_text h3 {
  font-size: 17px;
  letter-spacing: 0;
  line-height: 1.66;
  font-weight: 600;
  color: #FFFFFF;
  margin: 36px auto 6px 0;
}
.privacy_text h4 {
  font-size: 17px;
  letter-spacing: 0;
  line-height: 1.66;
  font-weight: 400;
  color: #FFFFFF;
  margin: 12px auto 6px 0;
}

    @media (max-width: 768px) {
    section.u_privacy {
      padding: 63px 5% 84px;
    }
    }

        @media(max-width:390px){
          .u_privacy .u_title h2 {
            display: inline;
            font-size: 48px;
        }
        }


.top_fixed-list li a.playVideo{
  display: block;
  padding: 10px 20px;
  border: 1px solid #fff;
  width: fit-content;
  line-height: 1;
  margin-bottom: 30px;
  text-transform: uppercase;
  transition: all .5s;
}

.top_fixed-list li a.playVideo:hover{
  background-color: #fff; 
  color: #2B293C; 
  transition: all .5s;
}

.playBtn-wrap{
  display: none;
}


@media (max-width: 768px) {
  .playBtn-wrap{
    display: block;
    position: absolute;
    bottom: 10px;
    left: 10px;
    z-index: 99;
  }

  .playVideo{
    display: block;
    padding: 10px 20px;
    border: 1px solid #fff;
    width: fit-content;
    line-height: 1;
    margin-bottom: 30px;
    text-transform: uppercase;
    transition: all .5s;
    color: #fff;

  }
  
}