@charset "utf-8";
/* CSS Document */
*, ::before, ::after {
  box-sizing: border-box;
}
html {
  font-size: 62.5%;
}
body {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  font-family: 'Zen Old Mincho', YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
  font-style: normal;
  font-weight: normal;
  font-size: 1.2rem;
  color: #333;
  -webkit-text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
  z-index: 0;
  font-feature-settings: "pkna"1;
  overflow-x: hidden;
}
a {
  text-decoration: none;
}
h1, h2, h3, h4, h5, h6 {
  margin-bottom: 0;
  font-weight: 400;
  font-size: inherit;
  font-feature-settings: "palt";
  line-height: 1.65;
}
p {
  margin-bottom: 0;
}
pre {
  margin-bottom: 0;
}
dl {
  margin-bottom: 0;
}
ul {
  margin-bottom: 0;
}
ol {
  margin-bottom: 0;
  list-style: decimal;
  padding-left: 1em;
}
img {
  max-width: 100%;
  height: auto;
}
.fadeInUpTrigger,
.fadeInDownTrigger,
.fadeInUpTriggerOnce{
    opacity:0;
}
a
{
    transition: all 0.3s;
}
a:hover
{
    transition: all 0.3s;
    opacity: 0.6;
}
.t18
{
    font-size: 1.8rem;
    padding: 1rem 0;
}
.tc
{
    text-align: center;
}
.mb50
{
    margin-bottom: 5rem;
}
/*-----------------------------------------------------------------*/
#header {
  width: 100%;
  padding: 1rem 4rem;
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 100;
}
.hr {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.gnav ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.gnav li {
  margin-right: 3rem;
  color: #FFFFFF;
  font-size: 1.8rem;
  font-weight: 600;
}
.gnav li:last-child {
  margin-right: 5rem;
}
.rbox {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end;
}
.htel {
  margin-bottom: 1rem;
}
.mv {
  height: 100vh;
  position: relative;
}
.mv img {
  width: 100%;
  height: 100vh;
  object-fit: cover;
}
.catch {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 4rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.06em;
  color: #FFFFFF;
  text-align: center;
}
.greeting {
  margin-bottom: 5rem;
}
.flex {
  display: flex;
  flex-wrap: wrap;
    justify-content: space-between;
}
.works .flex
{
    justify-content: flex-start;
}
.gimg {
  width: 60%;
  height: 773px;
}
.gimg img {
  height: 773px;
  object-fit: cover;
}
.gtxt {
  width: 40%;
  padding: 5rem;
  background: url("images/greeting_bg.png") no-repeat top right;
  background-size: contain;
  position: relative;
}
.gtxt::before {
  content: "";
  position: absolute;
  top: 3rem;
  right: 8vw;
  background: url("images/greeting_deco.png")no-repeat top center;
  height: 143px;
  width: 134px;
}
.gtxt p {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.06em;
  margin-bottom: 1rem;
}
.ttl {
  font-size: 5rem;
  color: #CC5F00;
  padding-bottom: 1rem;
  margin-bottom: 3rem;
}
.ttl span {
  font-size: 3rem;
  color: #333333;
  display: block;
}
.service {
  background: url("images/service_bg.png")no-repeat 50% 50%;
  background-size: 70%;
  padding: 6% 3% 10%;
}
.ttl01 {
  font-size: 2rem;
  text-align: center;
  margin-bottom: 5rem;
  position: relative;
  padding-top: 5rem;
}
.service .ttl01 {
  margin-bottom: 12rem;
}
.t01::before {
  content: "";
  position: absolute;
  background: url("images/doglogo.png")no-repeat top center;
    background-size: auto;
  background-size: cover;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  height: 80px;
  width: 100px;
}
.t02::before {
  content: "";
  position: absolute;
  background: url("images/doglogo.png")no-repeat top center;
    background-size: auto;
  background-size: cover;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  height: 80px;
  width: 100px;
}
.t03::before {
  content: "";
  position: absolute;
  background: url("images/doglogo.png")no-repeat top center;
    background-size: auto;
  background-size: cover;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  height: 80px;
  width: 100px;
}
.ttl01 span {
  font-size: 5rem;
  color: #CC5F00;
  display: block;
}
.sbox {
  width: calc(100% / 3 - 4rem);
  padding: 8rem 4rem 2rem;
  height: 332px;
  margin: 0 2rem;
  position: relative;
}
.s01 {
  background: url("images/service01.png")no-repeat top center;
  background-size: cover;
  color: #FFFFFF;
}
.s02 {
  background: url("images/service02.png")no-repeat top center;
  background-size: cover;
  color: #FFFFFF;
}
.s03 {
  background: url("images/service03.png")no-repeat top center;
  background-size: cover;
  color: #FFFFFF;
}
.subttl {
  font-size: 2.8rem;
  position: relative;
  font-weight: 600;
  letter-spacing: 0.06em;
  margin-bottom: 3rem;
  padding-left: 8rem;
}
.subttl2 {
    font-size: 2.8rem;
    position: relative;
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 3rem;
  }
.sb01::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: url("images/service_icon01.png")no-repeat top center;
  background-size: cover;
  height: 87px;
  width: 70px;
}
.sb02::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: url("images/service_icon02.png")no-repeat top center;
  background-size: cover;
  height: 78px;
  width: 77px;
}
.sb03::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: url("images/service_icon03.png")no-repeat top center;
  background-size: cover;
  height: 52px;
  width: 72px;
}
.sbox p {
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.06em;
  font-weight: 500;
}
.more {
  position: absolute;
  padding-right: 5rem;
  bottom: 2rem;
  right: 10rem;
}
.more::before {
  content: "";
  background: url("images/arrow-right.png")no-repeat top center;
  background-size: cover;
  position: absolute;
  bottom: 0.5rem;
  right: 0rem;
  transform: translateY(-50%);
  height: 11px;
  width: 48px;
}
.recruit {
  padding: 6% 0;
}
.rtxt p {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.06em;
  margin-bottom: 1rem;
  margin-bottom: 5rem;
}
.rtxt {
  width: 50%;
  padding: 0 5vw;
}
.rimg {
  width: 50%;
}
.btn {
  padding: 2rem 0;
    margin-top: 5rem;
}
.btn a {
  padding: 1.5rem 14rem 1.5rem 2rem;
  background: #CC5F00;
  color: #FFFFFF;
  font-size: 1.8rem;
  position: relative;
}
.btn a::before {
  content: "";
  background: #FFFFFF;
  position: absolute;
  right: 0;
  top: 50%;
  height: 1px;
  width: 5rem;
  transform: translateY(-50%);
}
.works {
  padding: 3% 0;
  background: #FFF6EF;
}
.wrap {
  max-width: calc(1300px + 6%);
  margin: 0 auto;
  padding: 3%;
}
.wbox {
  width: calc(100% / 3);
  padding: 1rem;
    margin-bottom: 3rem;
}
.wboxttl {
  font-size: 1.8rem;
  font-weight: 600;
  padding-top: 1rem;
  letter-spacing: 0.06em;
}
.flow {
  padding: 6% 0;
  background: url("images/flow_bg.png")no-repeat top center;
  background-size: cover;
}
.flow-flex {
  margin: 9rem auto 0;
  display: flex;
  justify-content: space-between;
}
.flow-flex .item {
  position: relative;
  z-index: 1;
  padding: 7rem 0;
  max-width: 90px;
  width: calc(100% / 9 + 2rem);
  background: #FFF3E9;
  margin: 0 1rem 5rem;
  display: inherit;
}
.flow-flex .number {
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  width: 74px;
  height: 74px;
  border-radius: 50%;
  background: #CC5F00;
}
.flow-flex .number span {
  display: block;
  color: #FFFFFF;
  font-size: 2.6rem;
  font-weight: bold;
  line-height: 80px;
  text-align: center;
  position: relative;
}
.flow-flex .number span::before {
  content: "step";
  font-size: 1.8rem;
  position: absolute;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
}
.flow-flex .item p {
  font-size: 2.6rem;
  writing-mode: vertical-rl;
  margin: 0 auto;
}
.contact {
  padding: 6% 0;
  background: url("images/contact_bg.png")no-repeat top center;
  background-size: cover;
}
.f_wrap {
  max-width: calc(900px + 6%);
  margin: 0 auto;
  padding: 3%;
  color: #FFFFFF;
  text-align: center;
}
.f_ttl {
  font-size: 5rem;
  margin-bottom: 5rem;
}
.f_wrap p {
  font-size: 1.8rem;
  line-height: 1.6;
  letter-spacing: 0.06em;
  margin-bottom: 5rem;
}
.f_btn {
  width: 48%;
  text-align: center;
  font-size: 1.6rem;
}
.f_btn a {
  display: block;
  border: 1px solid #fff;
  padding: 4rem 2rem;
}
.f_btn span {
  display: block;
  font-size: 2.8rem;
  padding-bottom: 1rem;
  position: relative;
  padding-left: 3rem;
}
.f_tel {
  position: relative;
}
.f_tel::before {
  content: "";
  background: url("images/Icon-phone.png")no-repeat top center;
  background-size: cover;
  width: 23px;
  height: 23px;
  position: absolute;
  top: 50%;
  left: 16%;
  transform: translateY(-50%);
}
.f_mail {
  position: relative;
}
.f_mail::before {
  content: "";
  background: url("images/Icon-mail.png")no-repeat top center;
  background-size: cover;
  width: 30px;
  height: 23px;
  position: absolute;
  top: 50%;
  left: 2%;
  transform: translateY(-50%);
}
.f_link {
  background: url("images/f_link_bg.png")no-repeat top center;
  background-size: cover;
}
.f_link_wrap {
  padding: 3%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.f_link .gnav li {
  color: #333333 !important;
}
.f_logo p {
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
.copy {
  background: #CC5F00;
  padding: 1rem;
  color: #FFFFFF;
  text-align: center;
  font-size: 1.6rem;
}
#g-nav {
  /*position:fixed;にし、z-indexの数値を小さくして最背面へ*/
  position: fixed;
  z-index: -1;
  opacity: 0; /*はじめは透過0*/
  /*ナビの位置と形状*/
  top: 0;
  width: 100%;
  height: 100vh; /*ナビの高さ*/
  background: #FFF6EF;
  /*動き*/
  transition: all 0.3s;
}
/*アクティブクラスがついたら透過なしにして最前面へ*/
#g-nav.panelactive {
  opacity: 1;
  z-index: 999;
}
/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list {
  /*ナビの数が増えた場合縦スクロール*/
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100vh; /*表示する高さ*/
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
/*ナビゲーション*/
#g-nav ul {
  display: none;
  /*ナビゲーション天地中央揃え*/
  position: absolute;
  z-index: 999;
  top: 10%;
  left: 50%;
  transform: translate(-50%, 0%);
}
#g-nav.panelactive ul {
  display: block;
}
/*リストのレイアウト設定*/
#g-nav li {
  list-style: none;
  text-align: center;
  font-size: 1.8rem;
}
#g-nav li a {
  color: #333;
  text-decoration: none;
  padding: 10px;
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: bold;
}
/*========= ボタンのためのCSS ===============*/
.openbtn1 {
  position: fixed;
  z-index: 9999; /*ボタンを最前面に*/
  top: 10px;
  right: 10px;
  cursor: pointer;
  width: 50px;
  height: 50px;
  background: #CC5F00;
  border-radius: 10px;
}
/*×に変化*/
.openbtn1 span {
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 14px;
  height: 3px;
  border-radius: 2px;
  background-color: #FFFFFF;
  width: 45%;
}
.openbtn1 span:nth-of-type(1) {
  top: 15px;
}
.openbtn1 span:nth-of-type(2) {
  top: 23px;
}
.openbtn1 span:nth-of-type(3) {
  top: 31px;
}
.openbtn1.active span:nth-of-type(1) {
  top: 18px;
  left: 18px;
  transform: translateY(6px) rotate(-45deg);
  width: 30%;
}
.openbtn1.active span:nth-of-type(2) {
  opacity: 0;
}
.openbtn1.active span:nth-of-type(3) {
  top: 30px;
  left: 18px;
  transform: translateY(-6px) rotate(45deg);
  width: 30%;
}

/*--------------------------------------------------------------------------

下層ページ

--------------------------------------------------------------------------*/
.h2_ttl
{
    background: url("images/h2_ttl.png")no-repeat top center;
    text-align: center;
    padding: 22rem 0 20rem;
    color: #FFFFFF;
    font-size: 5rem;
    margin-bottom: 5rem;
    font-weight: 600;
}
.container
{
    max-width: calc(1300px + 6%);
    margin: 0 auto;
    padding: 3%;
}
 /* table01 */
    #table01 {
        width: 80%;
        margin: 0 auto 3rem;
        font-size: 1.6rem;
    }

    #table01 tr {
        border-bottom: 1px solid #b5b1b1;
    }

    #table01 th, #table01 td {
        padding: 24px 0;
        border: none;
    }

    #table01 th {
        width: 30%;
        vertical-align: middle;
    }

    /* sp */
    @media only screen and (max-width: 559px) {
        #table01 th, #table01 td {
            width: 100%;
            display: block;
        }

        #table01 th {
            width: 100%;
        }

        #table01 td {
            padding-top: 0;
        }
    }
.wrap2
{
    max-width: 900px;
    margin: 0 auto;
}
.h3_ttl {
  font-size: 3.8rem;
    font-weight: 600;
  text-align: center;
  margin-bottom: 5rem;
  position: relative;
  padding-top: 5rem;
    padding-bottom: 1rem;
}
.h3_ttl::after
{
    content: "";
    position: absolute;
    height: 5px;
    width: 100px;
    background: #CC5F00;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 3px;
}
.txt
{
    width: 48%;
}
.img
{
    width: 48%;
}
.name
{
    text-align: right;
    font-size: 1.8rem;
    font-weight: 600;
    margin-top: 3rem;
}
.txt p
{
    font-size: 1.8rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
}
.rev
{
    flex-direction: row-reverse;
}
.recruit p
{
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
}
.retel p
{
    font-size: 3.8rem!important;
    font-weight: 600;
    color: #CC5F00;
    padding: 2rem 0;
}
.Form {
    margin-top: 80px;
    margin-left: auto;
    margin-right: auto;
    max-width: 900px;
}
.Form-Item {
    border-top: 1px solid #ddd;
    padding-top: 24px;
    padding-bottom: 24px;
    width: 100%;
    display: flex;
    align-items: center;
}
.Form-Item-Label {
    width: 100%;
    max-width: 300px;
    letter-spacing: 0.05em;
    font-weight: bold;
    font-size: 18px;
}
.Form-Item-Input {
    border: 1px solid #ddd;
    border-radius: 6px;
    margin-left: 40px;
    padding-left: 1em;
    padding-right: 1em;
    height: 48px;
    flex: 1;
    width: 100%;
    max-width: 510px;
    background: #eaedf2;
    font-size: 18px;
}
.Form-Item-Label-Required {
    border-radius: 6px;
    margin-right: 8px;
    padding-top: 8px;
    padding-bottom: 8px;
    width: 48px;
    display: inline-block;
    text-align: center;
    background: #CC5F00;
    color: #fff;
    font-size: 14px;
}
.Form-Item-Textarea {
    border: 1px solid #ddd;
    border-radius: 6px;
    margin-left: 40px;
    padding-left: 1em;
    padding-right: 1em;
    height: 216px;
    flex: 1;
    width: 100%;
    max-width: 510px;
    background: #eaedf2;
    font-size: 18px;
}
.Form-Btn {
    border-radius: 6px;
    margin-top: 32px;
    margin-left: auto;
    margin-right: auto;
    padding-top: 20px;
    padding-bottom: 20px;
    width: 280px;
    display: block;
    letter-spacing: 0.05em;
    background: #CC5F00;
    color: #fff;
    font-weight: bold;
    font-size: 20px;
    text-align: center;
}
.Form-Item-Label.isMsg {
    margin-top: 8px;
    margin-bottom: auto;
}

/*--------------------------------------------------------------------------

PC

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

tablet

--------------------------------------------------------------------------*/
@media only screen and (min-width: 560px) and (max-width: 845px) {
  .sp-only {
    display: none !important;
  }
  .pc-only {
    display: none !important;
  }
  #header {
    width: 100%;
    padding: 1rem 4rem;
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 100;
  }
  .hr {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .gnav ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .gnav li {
    margin-right: 3rem;
    color: #FFFFFF;
    font-size: 1.8rem;
    font-weight: 600;
  }
  .gnav li:last-child {
    margin-right: 5rem;
  }
  .rbox {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
    padding-right: 5rem;
  }
  .htel {
    margin-bottom: 1rem;
  }
  .mv {
    height: 60vh;
    position: relative;
  }
  .mv img {
    width: 100%;
    height: 60vh;
    object-fit: cover;
  }
  .catch {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 3.2rem;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.06em;
    color: #FFFFFF;
    text-align: center;
    width: 100%;
  }
  .greeting {
    margin-bottom: 5rem;
  }
  .flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .gimg {
    width: 100%;
    height: auto;
  }
  .gimg img {
    height: auto;
    object-fit: cover;
  }
  .gtxt {
    width: 100%;
    padding: 5rem;
    background: url("images/greeting_bg.png") no-repeat top right;
    background-size: contain;
    position: relative;
  }
  .gtxt::before {
    content: "";
    position: absolute;
    top: 3rem;
    right: 8vw;
    background: url("images/greeting_deco.png")no-repeat top center;
    height: 143px;
    width: 134px;
  }
  .gtxt p {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
  }
  .ttl {
    font-size: 5rem;
    color: #CC5F00;
    padding-bottom: 1rem;
    margin-bottom: 3rem;
  }
  .ttl span {
    font-size: 3rem;
    color: #333333;
    display: block;
  }
  .service {
    background: url("images/service_bg.png")no-repeat 50% 50%;
    background-size: 70%;
    padding: 6% 3% 10%;
  }
  .ttl01 {
    font-size: 2rem;
    text-align: center;
    margin-bottom: 5rem;
    position: relative;
    padding-top: 5rem;
  }
  .service .ttl01 {
    margin-bottom: 12rem;
  }
  .t01::before {
    content: "";
    position: absolute;
    background: url("images/ttl01_icon.png")no-repeat top center;
    background-size: cover;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 72px;
    width: 60px;
  }
  .t02::before {
    content: "";
    position: absolute;
    background: url("images/ttl02_deco.png")no-repeat top center;
    background-size: cover;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 72px;
    width: 60px;
  }
  .t03::before {
    content: "";
    position: absolute;
    background: url("images/ttl03_deco.png")no-repeat top center;
    background-size: cover;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 60px;
    width: 70px;
  }
  .ttl01 span {
    font-size: 5rem;
    color: #CC5F00;
    display: block;
  }
  .sbox {
    width: 100%;
    padding: 8rem 4rem 2rem;
    height: 280px;
    margin: 1rem 2rem;
    position: relative;
  }
  .s01 {
    background: url("images/service01.png")no-repeat top center;
    background-size: cover;
    color: #FFFFFF;
  }
  .s02 {
    background: url("images/service02.png")no-repeat top center;
    background-size: cover;
    color: #FFFFFF;
  }
  .s03 {
    background: url("images/service03.png")no-repeat top center;
    background-size: cover;
    color: #FFFFFF;
  }
  .subttl {
    font-size: 2.8rem;
    position: relative;
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 3rem;
    padding-left: 8rem;
  }
    .subttl2 {
    font-size: 2.8rem;
    position: relative;
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 3rem;
  }
  .sb01::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: url("images/service_icon01.png")no-repeat top center;
    background-size: cover;
    height: 87px;
    width: 70px;
  }
  .sb02::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: url("images/service_icon02.png")no-repeat top center;
    background-size: cover;
    height: 78px;
    width: 77px;
  }
  .sb03::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: url("images/service_icon03.png")no-repeat top center;
    background-size: cover;
    height: 52px;
    width: 72px;
  }
  .sbox p {
    font-size: 1.6rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
    font-weight: 500;
  }
  .more {
    position: absolute;
    padding-right: 5rem;
    bottom: 2rem;
    right: 10rem;
  }
  .more::before {
    content: "";
    background: url("images/arrow-right.png")no-repeat top center;
    background-size: cover;
    position: absolute;
    bottom: 0.5rem;
    right: 0rem;
    transform: translateY(-50%);
    height: 11px;
    width: 48px;
  }
  .recruit {
    padding: 6% 0;
  }
  .recruit .flex {
    flex-direction: column-reverse;
  }
  .rtxt p {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
    margin-bottom: 5rem;
  }
  .rtxt {
    width: 100%;
    padding: 0 5vw;
  }
  .rimg {
    width: 100%;
  }
  .btn {
    padding: 2rem 0;
  }
  .btn a {
    padding: 1.5rem 14rem 1.5rem 2rem;
    background: #CC5F00;
    color: #FFFFFF;
    font-size: 1.8rem;
    position: relative;
  }
  .btn a::before {
    content: "";
    background: #FFFFFF;
    position: absolute;
    right: 0;
    top: 50%;
    height: 1px;
    width: 5rem;
    transform: translateY(-50%);
  }
  .works {
    padding: 3% 0;
    background: #FFF6EF;
  }
  .wrap {
    max-width: calc(1300px + 6%);
    margin: 0 auto;
    padding: 3%;
  }
  .wbox {
    width: calc(100% / 3);
    padding: 1rem;
      margin-bottom: 3rem;
  }
  .wboxttl {
    font-size: 1.8rem;
    font-weight: 600;
    padding-top: 1rem;
    letter-spacing: 0.06em;
  }
  .flow {
    padding: 6% 0;
    background: url("images/flow_bg.png")no-repeat top center;
    background-size: cover;
  }
  .flow-flex {
    margin: 9rem auto 0;
    display: flex;
    justify-content: space-between;
  }
  .flow-flex .item {
    position: relative;
    z-index: 1;
    padding: 7rem 0;
    max-width: 90px;
    width: calc(100% / 9 + 2rem);
    background: #FFF3E9;
    margin: 0 1rem 5rem;
    display: inherit;
  }
  .flow-flex .number {
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    width: 74px;
    height: 74px;
    border-radius: 50%;
    background: #CC5F00;
  }
  .flow-flex .number span {
    display: block;
    color: #FFFFFF;
    font-size: 2.6rem;
    font-weight: bold;
    line-height: 80px;
    text-align: center;
    position: relative;
  }
  .flow-flex .number span::before {
    content: "step";
    font-size: 1.8rem;
    position: absolute;
    top: -24px;
    left: 50%;
    transform: translateX(-50%);
  }
  .flow-flex .item p {
    font-size: 2.6rem;
    writing-mode: vertical-rl;
    margin: 0 auto;
  }
  .contact {
    padding: 6% 0;
    background: url("images/contact_bg.png")no-repeat top center;
    background-size: cover;
  }
  .f_wrap {
    max-width: calc(900px + 6%);
    margin: 0 auto;
    padding: 3%;
    color: #FFFFFF;
    text-align: center;
  }
  .f_ttl {
    font-size: 4rem;
    margin-bottom: 5rem;
  }
  .f_wrap p {
    font-size: 1.8rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 5rem;
  }
  .f_btn {
    width: 48%;
    text-align: center;
    font-size: 1.6rem;
  }
  .f_btn a {
    display: block;
    border: 1px solid #fff;
    padding: 4rem 2rem;
  }
  .f_btn span {
    display: block;
    font-size: 2.8rem;
    padding-bottom: 1rem;
    position: relative;
    padding-left: 3rem;
  }
  .f_tel {
    position: relative;
  }
  .f_tel::before {
    content: "";
    background: url("images/Icon-phone.png")no-repeat top center;
    background-size: cover;
    width: 23px;
    height: 23px;
    position: absolute;
    top: 50%;
    left: 16%;
    transform: translateY(-50%);
  }
  .f_mail {
    position: relative;
  }
  .f_mail::before {
    content: "";
    background: url("images/Icon-mail.png")no-repeat top center;
    background-size: cover;
    width: 30px;
    height: 23px;
    position: absolute;
    top: 50%;
    left: 2%;
    transform: translateY(-50%);
  }
  .f_link {
    background: url("images/f_link_bg.png")no-repeat top center;
    background-size: cover;
  }
  .f_link_wrap {
    padding: 3%;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .f_link .gnav li {
    color: #333333 !important;
  }
  .f_logo p {
    font-size: 1.6rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }
  .copy {
    background: #CC5F00;
    padding: 1rem;
    color: #FFFFFF;
    text-align: center;
    font-size: 1.6rem;
  }
/*--------------------------------------------------------------------------

下層ページ

--------------------------------------------------------------------------*/
.h2_ttl
{
    background: url("images/h2_ttl.png")no-repeat top center;
    text-align: center;
    padding: 20rem 0 14rem;
    color: #FFFFFF;
    font-size: 4rem;
    margin-bottom: 5rem;
    font-weight: 600;
}
.container
{
    max-width: calc(1300px + 6%);
    margin: 0 auto;
    padding: 3%;
}
.h3_ttl {
  font-size: 3.8rem;
    font-weight: 600;
  text-align: center;
  margin-bottom: 5rem;
  position: relative;
  padding-top: 5rem;
    padding-bottom: 1rem;
}
.h3_ttl::after
{
    content: "";
    position: absolute;
    height: 5px;
    width: 100px;
    background: #CC5F00;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 3px;
}
.t01::before {
  content: "";
  position: absolute;
  background: url("images/ttl01_icon.png")no-repeat top center;
  background-size: cover;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 72px;
  width: 60px;
}
.txt
{
    width: 48%;
}
.img
{
    width: 48%;
}
.name
{
    text-align: right;
    font-size: 1.8rem;
    font-weight: 600;
    margin-top: 3rem;
}
.txt p
{
    font-size: 1.8rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
}
.rev
{
    flex-direction: row-reverse;
}
.recruit p
{
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.06em;
    text-align: center;
    margin-bottom: 1rem;
}
.retel p
{
    font-size: 3.8rem!important;
    font-weight: 600;
    color: #CC5F00;
    padding: 2rem 0;
}
.Form {
    margin-top: 80px;
    margin-left: auto;
    margin-right: auto;
    max-width: 900px;
}
.Form-Item {
    border-top: 1px solid #ddd;
    padding-top: 24px;
    padding-bottom: 24px;
    width: 100%;
    display: flex;
    align-items: center;
}
.Form-Item-Label {
    width: 100%;
    max-width: 300px;
    letter-spacing: 0.05em;
    font-weight: bold;
    font-size: 18px;
}
.Form-Item-Input {
    border: 1px solid #ddd;
    border-radius: 6px;
    margin-left: 40px;
    padding-left: 1em;
    padding-right: 1em;
    height: 48px;
    flex: 1;
    width: 100%;
    max-width: 510px;
    background: #eaedf2;
    font-size: 18px;
}
.Form-Item-Label-Required {
    border-radius: 6px;
    margin-right: 8px;
    padding-top: 8px;
    padding-bottom: 8px;
    width: 48px;
    display: inline-block;
    text-align: center;
    background: #CC5F00;
    color: #fff;
    font-size: 14px;
}
.Form-Item-Textarea {
    border: 1px solid #ddd;
    border-radius: 6px;
    margin-left: 40px;
    padding-left: 1em;
    padding-right: 1em;
    height: 216px;
    flex: 1;
    width: 100%;
    max-width: 510px;
    background: #eaedf2;
    font-size: 18px;
}
.Form-Btn {
    border-radius: 6px;
    margin-top: 32px;
    margin-left: auto;
    margin-right: auto;
    padding-top: 20px;
    padding-bottom: 20px;
    width: 280px;
    display: block;
    letter-spacing: 0.05em;
    background: #CC5F00;
    color: #fff;
    font-weight: bold;
    font-size: 20px;
    text-align: center;
}
}
/*--------------------------------------------------------------------------

sp

--------------------------------------------------------------------------*/
@media screen and (max-width: 559px) {
  .pc-only {
    display: none !important;
  }
  .pc-tab-only {
    display: none !important;
  }
  .tab-only {
    display: none !important;
  }
  #header {
    width: 100%;
    padding: 1rem 4rem;
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 100;
  }
  .logo {
    width: 40%;
  }
  .hr {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .gnav ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .gnav li {
    margin-right: 3rem;
    color: #FFFFFF;
    font-size: 1.8rem;
    font-weight: 600;
  }
  .gnav li:last-child {
    margin-right: 5rem;
  }
  .rbox {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
    padding-right: 5rem;
  }
  .htel {
    margin-bottom: 1rem;
  }
  .mv {
    height: 60vh;
    position: relative;
  }
  .mv img {
    width: 100%;
    height: 60vh;
    object-fit: cover;
  }
  .catch {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 2.2rem;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.06em;
    color: #FFFFFF;
    text-align: center;
    width: 100%;
  }
  .greeting {
    margin-bottom: 5rem;
  }
  .flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .gimg {
    width: 100%;
    height: auto;
  }
  .gimg img {
    height: auto;
    object-fit: cover;
  }
  .gtxt {
    width: 100%;
    padding: 5rem;
    background: url("images/greeting_bg.png") no-repeat top right;
    background-size: contain;
    position: relative;
  }
  .gtxt::before {
    content: "";
    position: absolute;
    top: 3rem;
    right: 8vw;
    background: url("images/greeting_deco.png")no-repeat top center;
    height: 143px;
    width: 134px;
  }
  .gtxt p {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
  }
  .ttl {
    font-size: 5rem;
    color: #CC5F00;
    padding-bottom: 1rem;
    margin-bottom: 3rem;
  }
  .ttl span {
    font-size: 3rem;
    color: #333333;
    display: block;
  }
  .service {
    background: url("images/service_bg.png")no-repeat 50% 50%;
    background-size: 70%;
    padding: 6% 3% 10%;
  }
  .ttl01 {
    font-size: 2rem;
    text-align: center;
    margin-bottom: 5rem;
    position: relative;
    padding-top: 5rem;
  }
  .service .ttl01 {
    margin-bottom: 4rem;
  }
  .t01::before {
    content: "";
    position: absolute;
    background: url("images/ttl01_icon.png")no-repeat top center;
    background-size: cover;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 72px;
    width: 60px;
  }
  .t02::before {
    content: "";
    position: absolute;
    background: url("images/ttl02_deco.png")no-repeat top center;
    background-size: cover;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 72px;
    width: 60px;
  }
  .t03::before {
    content: "";
    position: absolute;
    background: url("images/ttl03_deco.png")no-repeat top center;
    background-size: cover;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 60px;
    width: 70px;
  }
  .ttl01 span {
    font-size: 5rem;
    color: #CC5F00;
    display: block;
  }
  .sbox {
    width: 100%;
    padding: 4rem 2rem 2rem;
    height: 280px;
    margin: 1rem 2rem;
    position: relative;
  }
  .s01 {
    background: url("images/service01.png")no-repeat top center;
    background-size: cover;
    color: #FFFFFF;
  }
  .s02 {
    background: url("images/service02.png")no-repeat top center;
    background-size: cover;
    color: #FFFFFF;
  }
  .s03 {
    background: url("images/service03.png")no-repeat top center;
    background-size: cover;
    color: #FFFFFF;
  }
  .subttl {
    font-size: 2.8rem;
    position: relative;
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 3rem;
    padding-left: 8rem;
  }
  .sb01::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: url("images/service_icon01.png")no-repeat top center;
    background-size: cover;
    height: 87px;
    width: 70px;
  }
  .sb02::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: url("images/service_icon02.png")no-repeat top center;
    background-size: cover;
    height: 78px;
    width: 77px;
  }
  .sb03::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: url("images/service_icon03.png")no-repeat top center;
    background-size: cover;
    height: 52px;
    width: 72px;
  }
  .sbox p {
    font-size: 1.6rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
    font-weight: 500;
  }
  .more {
    position: absolute;
    padding-right: 5rem;
    bottom: 2rem;
    right: 2rem;
  }
  .more::before {
    content: "";
    background: url("images/arrow-right.png")no-repeat top center;
    background-size: cover;
    position: absolute;
    bottom: 0.5rem;
    right: 0rem;
    transform: translateY(-50%);
    height: 11px;
    width: 48px;
  }
  .recruit {
    padding: 6% 0;
  }
  .recruit .flex {
    flex-direction: column-reverse;
  }
  .rtxt p {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
    margin-bottom: 5rem;
  }
  .rtxt {
    width: 100%;
    padding: 0 5vw;
  }
  .rimg {
    width: 100%;
  }
  .btn {
    padding: 2rem 0;
  }
  .btn a {
    padding: 1.5rem 14rem 1.5rem 2rem;
    background: #CC5F00;
    color: #FFFFFF;
    font-size: 1.8rem;
    position: relative;
  }
  .btn a::before {
    content: "";
    background: #FFFFFF;
    position: absolute;
    right: 0;
    top: 50%;
    height: 1px;
    width: 5rem;
    transform: translateY(-50%);
  }
  .works {
    padding: 3% 0;
    background: #FFF6EF;
  }
  .wrap {
    max-width: calc(1300px + 6%);
    margin: 0 auto;
    padding: 3%;
  }
  .wbox {
    width: 100%;
    padding: 1rem;
    margin-bottom: 2rem;
  }
  .wboxttl {
    font-size: 1.8rem;
    font-weight: 600;
    padding-top: 1rem;
    letter-spacing: 0.06em;
  }
  .flow {
    padding: 6% 0;
    background: url("images/flow_bg.png")no-repeat top center;
    background-size: cover;
  }
  .flow-flex {
    margin: 9rem auto 0;
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
  }
  .flow-flex .item {
    position: relative;
    z-index: 1;
    padding: 2rem 0;
    width: 100%;
    background: #FFF3E9;
    margin: 0 1rem 5rem;
    display: inherit;
    max-width: 320px;
  }
  .flow-flex .number {
    position: absolute;
    top: 50%;
    left: -3rem;
    transform: translateY(-50%);
    z-index: 1;
    width: 74px;
    height: 74px;
    border-radius: 50%;
    background: #CC5F00;
  }
  .flow-flex .number span {
    display: block;
    color: #FFFFFF;
    font-size: 2.6rem;
    font-weight: bold;
    line-height: 80px;
    text-align: center;
    position: relative;
  }
  .flow-flex .number span::before {
    content: "step";
    font-size: 1.8rem;
    position: absolute;
    top: -24px;
    left: 50%;
    transform: translateX(-50%);
  }
  .flow-flex .item p {
    font-size: 2rem;
    writing-mode: inherit;
    margin: 0 auto;
  }
  .contact {
    padding: 6% 0;
    background: url("images/contact_bg.png")no-repeat top center;
    background-size: cover;
  }
  .f_wrap {
    max-width: calc(900px + 6%);
    margin: 0 auto;
    padding: 3%;
    color: #FFFFFF;
    text-align: center;
  }
  .f_ttl {
    font-size: 2.4rem;
    margin-bottom: 5rem;
  }
  .f_wrap p {
    font-size: 1.8rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 5rem;
  }
  .f_btn {
    width: 100%;
    text-align: center;
    font-size: 1.6rem;
    margin-bottom: 2rem;
  }
  .f_btn a {
    display: block;
    border: 1px solid #fff;
    padding: 4rem 2rem;
  }
  .f_btn span {
    display: block;
    font-size: 2.8rem;
    padding-bottom: 1rem;
    position: relative;
    padding-left: 3rem;
  }
  .f_tel {
    position: relative;
  }
  .f_tel::before {
    content: "";
    background: url("images/Icon-phone.png")no-repeat top center;
    background-size: cover;
    width: 23px;
    height: 23px;
    position: absolute;
    top: 50%;
    left: 16%;
    transform: translateY(-50%);
  }
  .f_mail {
    position: relative;
  }
  .f_mail::before {
    content: "";
    background: url("images/Icon-mail.png")no-repeat top center;
    background-size: cover;
    width: 30px;
    height: 23px;
    position: absolute;
    top: 50%;
    left: 2%;
    transform: translateY(-50%);
  }
  .f_link {
    background: url("images/f_link_bg.png")no-repeat top center;
    background-size: cover;
  }
  .f_link_wrap {
    padding: 3%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
  }
  .f_link_wrap .hr {
    width: 100%;
    justify-content: center;
    margin-bottom: 3rem;
  }
  .f_logo {
    width: 100%;
    text-align: center;
    margin-bottom: 3rem;
  }
  .f_link .gnav li {
    color: #333333 !important;
  }
  .f_logo p {
    font-size: 1.6rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }
  .copy {
    background: #CC5F00;
    padding: 1rem;
    color: #FFFFFF;
    text-align: center;
    font-size: 1.6rem;
  }
  .footer_btn {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 100;
    display: flex;
  }
  #footer {
    margin-bottom: 5rem;
  }
/*--------------------------------------------------------------------------

下層ページ

--------------------------------------------------------------------------*/
.h2_ttl
{
    background: url("images/h2_ttl.png")no-repeat top center;
    text-align: center;
    padding: 12rem 0 10rem;
    color: #FFFFFF;
    font-size: 3rem;
    margin-bottom: 5rem;
    font-weight: 600;
}
.container
{
    max-width: calc(1300px + 6%);
    margin: 0 auto;
    padding: 3%;
}
.h3_ttl {
  font-size: 2.8rem;
    font-weight: 600;
  text-align: center;
  margin-bottom: 5rem;
  position: relative;
  padding-top: 6rem;
    padding-bottom: 1rem;
}
.h3_ttl::after
{
    content: "";
    position: absolute;
    height: 5px;
    width: 100px;
    background: #CC5F00;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 3px;
}
.t01::before {
  content: "";
  position: absolute;
  background: url("images/ttl01_icon.png")no-repeat top center;
  background-size: cover;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 72px;
  width: 60px;
}
.txt
{
    width: 100%;
}
.img
{
    width: 100%;
}
.name
{
    text-align: right;
    font-size: 1.8rem;
    font-weight: 600;
    margin-top: 3rem;
}
.txt p
{
    font-size: 1.8rem;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin-bottom: 1rem;
}
.rev
{
    flex-direction: row-reverse;
}
.recruit p
{
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.06em;
    text-align: center;
    margin-bottom: 1rem;
}
.retel p
{
    font-size: 3.8rem!important;
    font-weight: 600;
    color: #CC5F00;
    padding: 2rem 0;
}
.Form {
        margin-top: 40px;
    margin-bottom: 5rem;
    }
.Form-Item {
        padding-left: 14px;
        padding-right: 14px;
        padding-top: 16px;
        padding-bottom: 16px;
        flex-wrap: wrap;
    }
.Form-Item-Label {
        max-width: inherit;
        display: flex;
        align-items: center;
        font-size: 15px;
    }
.Form-Item-Input {
        margin-left: 0;
        margin-top: 18px;
        height: 40px;
        flex: inherit;
        font-size: 15px;
    }
.Form-Item-Label-Required {
        border-radius: 4px;
        padding-top: 4px;
        padding-bottom: 4px;
        width: 32px;
        font-size: 10px;
    }
.Form-Item-Textarea {
        margin-top: 18px;
        margin-left: 0;
        height: 200px;
        flex: inherit;
        font-size: 15px;
}
.Form-Btn {
        margin-top: 24px;
        padding-top: 8px;
        padding-bottom: 8px;
        width: 160px;
        font-size: 16px;
    }
    .Form-Item-Label.isMsg {
        margin-top: 0;
    }
    
}