@charset "UTF-8";
/* CSS Document */
/* Reset*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}
body {
  line-height: 1;
overflow-x: hidden;
}
ol, ul {
  list-style: none;
}
blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
  content: '';
  content: none;
}
:focus {
  outline: 0;
}
ins {
  text-decoration: none;
}
del {
  text-decoration: line-through;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
/* common*/
body {
font-family :
	YuMincho,    /* Mac用 */
	'Yu Mincho', /* Windows用 */
	serif;
  font-size: 18px;
  color: #333;
}
a:hover {
  opacity: 0.8;
}
/*マージン*/
.mt10 {
  margin-top: 10px;
}
.mt20 {
  margin-top: 20px;
}
.mt30 {
  margin-top: 30px;
}
.mt40 {
  margin-top: 40px;
}
.mt50 {
  margin-top: 50px;
}
.mt60 {
  margin-top: 60px;
}
.mb10 {
  margin-bottom: 10px;
}
.mb20 {
  margin-bottom: 20px;
}
.mb30 {
  margin-bottom: 30px;
}
.mb40 {
  margin-bottom: 40px;
}
.mb50 {
  margin-bottom: 50px;
}
.mb60 {
  margin-bottom: 60px;
}
.pcnon {
  display: none;
}
.spnon {
  display: block;
}
/* header*/
/* slider */
#top_slider {
  margin: 0 auto;
  width: 100%;
}
/* main*/
#main {
  width: 100%;
  margin: 0 auto;
}
/*TOP*/
h2 span {
  color: #078937;
  font-family: 'Hind', sans-serif;
  font-weight: 500;
  transform: scale(0.7, 1);
  display: inline-block;
  font-size: 32px;
  letter-spacing: 0.2em;
}
h2 {
  font-size: 48px;
  font-family: serif;
}
.service_btn {
  position: relative;
  width: 810px;
  height: 220px;
  /*margin: 0 auto;*/
  display: block;
  border-radius: 0px;
  overflow: hidden;
  cursor: pointer;
}
.service_btn img {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 100%;
  display: block;
  -webkit-transition: .4s ease-in-out;
  transition: .4s ease-in-out;
}
.service_btn:hover img:nth-of-type(2) {
  opacity: 0;
}
#header {
  display: flex;
  justify-content: space-between;
  position: fixed;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 999; /* max-width: 1480px; */
}
#header h1#logo {
  padding: 0.8em 0 0.8em 5%;
}
.hd_menu ul {
  display: flex;
  margin: 0;
  justify-content: flex-end;
}
.hd_menu ul li a {
  font-size: 18px;
  font-weight: bold;
  text-decoration: none;
  color: #fff;
  padding-left: 2em;
  width: 100%;
  display: block;
}
.hd_menu {
  width: 100%;
}
.hd_menu ul li:nth-child(5) a {
  background: #000;
  padding: 1.5em 1.3em;
  color: #fff;
  text-align: center;
}
.hd_menu ul li:nth-child(6) a {
  background: #fff;
  padding: 1.5em 1.5em;
  color: #000;
  overflow: hidden;
}
.hd_menu ul li {
  margin-top: 2em;
}
.hd_menu ul li:nth-child(5), .hd_menu ul li:nth-child(6) {
  margin-top: 0em;
  margin-left: 3em;
  margin-right: 0;
}
.hd_menu ul li:nth-child(5) a:hover {
    background: #E84729;
    opacity: 1;
}

.hd_menu ul li:nth-child(6) a:hover {
    background: #E84729;
    opacity: 1;
    color: #fff;
}
#header {
    background: rgb(0 0 0 / 57%);
}

.hd_menu {
    padding-right: 5%;
}

.hd_menu ul li a {
    font-weight: 600;
}
.contact_fix a {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-decoration: none;
    background: #009D6E;
    display: block;
    padding: 2em 1em;
    font-size: 24px;
    color: #fff;
    position: fixed;
    z-index: 999;
    right: 0;
    top: 30%;
}
#top_sec01 {
    padding: 4% 0;
}
.top_sec01_in {
display: flex;
    justify-content: center;
    max-width: 1150px;
    position: relative;
    margin: 0 auto;
    gap: 80px;
    align-items: center;
}
.top_sec01_h {
  position: absolute;
  /*top: -320px;
    right: -460px;*/
  z-index: 99;
  top: -87%;
  right: -36%;
}
.top_sec01_txt p {
  font-size: 22px;
  line-height: 2.4em;
  padding-bottom: 2em;
}
.top_sec02_in {
  max-width: 1370px;
  margin: 0 auto;
}
.top_sec02_in h2 {
  border-bottom: 1px #000 solid;
  padding: 0 0 0.5em 0;
  margin-bottom: 0.5em;
}
.top_sec02_in h2 + p {
  font-size: 18px;
  line-height: 1.8em;
  font-weight: 500;
}
#top_sec02 {
  padding: 0 0 0;
}
.top_sec02_slider ul {
  display: flex;
  gap: 2%;
  margin: 3% 0;
}
.top_center_sl.slick-initialized.slick-slider.slick-dotted {position: relative;}

ul.slick-dots {
    position: absolute;
    bottom: -43%;
	left:15%;
}
.top_sec02_in {
    display: flex;
    max-width: 100%;
	position: relative;
    top: 120px;
}

.sec02_L img {
    max-width: 100%;
}

.sec02_R ul li h2 {
    border: 0;
    padding-left: 1.8em;
}

.sec02_R ul li p {
    font-size: 20px;
    line-height: 2em;
    padding-left: 4em;
}
.sec02_R_cont {
    position: relative;
}

.sec02Rcont_txt {
    position: absolute;
    top: 0;
    color: #fff;
    background: rgb(0 0 0 / 59%);
    right: 0;
    width: 530px;
    max-height: 461px;
    height: 100%;
}



.sec02Rcont_txt h3 {
    font-size: 30px;
    font-weight: 600;
    text-align: center;
    position: absolute;
    left: 0;
    right: 0;
    top: 41%;
	line-height:1.3em;
}

.sec02Rcont_txt h3 span {
    font-family: sans-serif;
    font-size: 13px;
    font-weight: 100;
    display: block;
    transform: scale(1.4, 1);
    letter-spacing: 0.3em;
    padding-bottom: 0.5em;
	
}

p.more_txt {
    position: absolute;
    bottom: 19px;
    right: 5%;
    border-bottom: 1px #fff solid;
    display: block;
    width: 180px;
    padding-bottom: 0.3em;
}

p.more_txt:after {
    content: '>';
    position: absolute;
    right: 4px;
    bottom: 2px;
}
.sec02Rcont_txt:hover {
    background: rgb(0 157 110 / 86%);
}
.sec02_R_cont._out {
    margin-bottom: 4%;
}


.link_btn.link_works a {
  font-size: 22px;
  background: #000;
  padding: 1.5em;
  text-decoration: none;
  color: #fff;
  font-weight: bold;
  display: block;
}
.link_btn.link_works {
  position: relative;
max-width: 420px;
}
span.stickarrow1 {
  display: inline-block;
  width: 60px;
  height: 8px;
  margin-left: 10px;
  border-bottom: 1px solid #ffffff;
  border-right: 1px solid #ffffff;
  transform: skew(45deg);
  position: absolute;
  right: 32px;
  top: 44%;
}
#top_sec02 {
    background: url(../img/top/pc_sec02_bk.png)no-repeat,linear-gradient(90deg, #ffffff 0%, #fff 20%, #f1ece5 0%, #f1ece5 100%);
    background-position: 96% 36%;
    background-size: auto;
}

.link_wrap {
  max-width: 1370px;
  margin: 0 auto;
  position: relative;
}
.link_wrap_in {
  position: absolute;
  right: 0;
  width: 31%;
}
.top_sec03_in {
    display: flex;
    justify-content: end;
    gap: 80px;
}

.top_sec03_in_R ul {
    display: flex;
    
}

#top_sec03 {
    margin: 14% 0 0;
    background: linear-gradient(-90deg, #ffffff 0%, #fff 25%, #f1ece5 0%, #f1ece5 100%);
    background-position: 96% 36%;
    background-size: cover;
    padding: 0 0 8%;
}
#top_sec03 {
    margin-bottom: 7%;
	position: relative;
	padding-bottom: 45%;
}

.top_sec03_in_R {
    position: absolute;
    top: 18%;
    z-index: 9;
    max-width: 72%;
    right: 0;
}


.top_sec03_in_L {
    position: absolute;
    top:18%;
    left: 19%;
}
.work_link a {
    text-decoration: none;
    color: #fff;
    background: #000;
    padding: 1.5em;
    display: block;
    max-width: 300px;
    margin: 3% auto;
    text-align: center;
}

/*.top_sec03_in_R {
    position: relative;
}*/

.work_link {
    position: absolute;
    right: 20%;
    width: 382px;
    bottom: -121px;
}
.top_sec04_in {
    max-width: 1300px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    gap: 40px;
}

.service_btn {
    margin-bottom: 5%;
}

#top_sec05 {
    background: url(../img/top/pc_sec04_bk.png);
    background-size: cover;
    background-position: center top;
	padding: 7% 0 0;
}

#top_sec05 h2 {
    text-align: center;
    color: #fff;
    padding: 5% 0 0;
}

#top_sec05 h2 span {
    display: block;
    color: #fff;
    padding: 0.8em 0 1em;
}

#top_sec05 h2+p {
    color: #fff;
    text-align: center;
    font-size: 18px;
}
#top_sec05_in {
    background: rgb(0 0 0 / 66%);
    max-width: 77%;
    margin: 0 auto;
    padding-bottom: 3%;
}

#top_sec05_in {
 background: linear-gradient(135deg, transparent 0, #000000b5 0) top left,
 linear-gradient(-135deg, transparent 0px, #000000b5 0) top right,
 linear-gradient(-45deg, transparent 40px, #000000b5 0) bottom right,
 linear-gradient(45deg, transparent 0px, #000000b5 0) bottom left;
 background-size: 50% 50%;
 background-repeat: no-repeat;
 }

#top_sec05 h2 {
    font-weight: 500;
    letter-spacing: 0.5em;
}

#top_sec05 h2 span {
    font-size: 20px;
    transform: scale(1.4, 1);
    font-weight: 100;
}

#top_sec05 h2+p {
    font-size: 20px;
    line-height: 1.8em;
}

#top_sec05_in p.more_txt {
    position: relative;
    margin: 4% auto 0;
    right: 0;
    left: 0;
}

#top_sec05_in p.more_txt a {
    color: #fff;
    text-decoration: none;
	display: block;
}

#top_sec05_in p.more_txt:after {
    content: '>';
    position: absolute;
    right: 4px;
    bottom: 2px;
    z-index: 9999;
    color: #fff;
}
/* footer*/
#footer {
background: url(../img/common/ft_bk.jpg)no-repeat;
    background-size: cover;
    background-position: center top;
    display: flex;
    justify-content: space-between;
    padding: 3% 5%;
}
#footer p {
    color: #fff;
    padding: 0 0 1em;
    line-height: 1.8em;
}

#footer p a {
    text-decoration: none;
    color: #fff;
    line-height: 1.8em;
}

.ft_menu ul {
    display: flex;
}

.ft_menu ul li a {
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    padding-left: 2em;
}
.ft_menu {
    position: relative;
}
.ft_contact {
    position: absolute;
    right: 0;
    width: 257px;
    top: 25%;
    text-align: center;
}

.ft_contact a {
    background: #fff;
    color: #000;
    text-decoration: none;
    font-weight: bold;
    font-size: 20px;
    padding: 1.2em 18%;
    display: block;
}
#footer {
    position: relative;
}

.ft_copy {
    position: absolute;
    bottom: -40px;
    right: 0;
    color: #fff;
    font-size: 14px;
}
.link_btn.link_service.link_recru a:hover {
    background: #E84729;
    opacity:1;
}

.ft_contact a:hover {
    background: #E84729;
    color:#fff;
     opacity:1;
}
#footer {
    display: block;
    background: #000000ab;
    margin: 5% 0 0;
    text-align: center;
}

.ft_menu ul {
    display: flex;
    justify-content: center;
}

.ft_menu ul li a {
    font-size: 16px;
    font-weight: 600;
}

.ft_menu ul li {
    border-left: 1px #fff solid;
    padding-right: 1em;
}

.ft_menu ul li:first-child {
    border: 0;
}

.ft_menu {
    padding: 0 0 3%;
}
.ft_copy {
    position: inherit;
    text-align: left;
    font-size: 12px;
}
#ft_logo {
    padding-top: 2%;
}
/*ヘッダー色変わる*/
.headerColor-default {
  background: #000;
  /* （画像よりも下までスクロールした時に変えたい文字色） */
}
#header.headerColor-default .hd_menu ul li:nth-child(6) a {
    padding-bottom: 2em;
}
.btn-top {
  z-index: 999;
  position: fixed;
  right: 0;
  bottom: 0;
  cursor: pointer;
  transition: .3s;
  /*デフォルトで非表示にする*/
  opacity: 0;
  visibility: hidden;
}
.gotop_active {
  opacity: 1;
  visibility: visible;
}
/*第二階層*/
/*採用*/
/*会社概要*/
/*第三階層*/
/*第4階層*/
/*お問い合せ*/
@media all and (-ms-high-contrast:none) {}
/*タブレット TOPスライダー*/
@media screen and (max-width: 768px)and (min-width: 481px) {
  .bx-viewport {
    height: 40rem !important;
  }
  .bx-wrapper img {
    width: 100%;
    height: auto !important;
  }
}

.win .sec02Rcont_txt {
    max-height: 394px;
}
@media screen and (max-width: 1860px) {
.top_sec02_in .sec02_L {
    max-width: 1100px;
}
}
@media screen and (max-width: 1660px) {
.top_sec02_in .sec02_L {
    max-width: 900px;
}
.win .sec02Rcont_txt {
    max-height: 322px;
}

.mac .sec02Rcont_txt {
    max-height: 394px;
}
}
@media screen and (max-width: 1440px) {
.top_sec02_in .sec02_L {
    max-width: 800px;
}
.win .sec02Rcont_txt {
    max-height: 285px;
}

.mac .sec02Rcont_txt {
    max-height: 285px;
}
}
@media screen and (max-width: 1350px) {
.top_sec02_in .sec02_L {
    max-width: 600px;
}
}
@media screen and (max-width: 1160px) {
.top_sec02_in .sec02_L {
    max-width: 400px;
}
}
/*スマホ*/
@media screen and (max-width: 768px) {
  .spnon {
    display: none;
  }
  .pcnon {
    display: block;
  }
  #header {
    width: 100%;
  }
  img {
    width: 100%;
  }
  div#hd_navi {
    display: none;
  }
  div#target1, div#target3, div#target5, div#target7, div#target8 {
    width: 100%;
    margin-bottom: 20%;
  }
  body {
    width: 100%;
  }
  div#main {
    width: 100%;
    margin: 0 auto 5%;
  }
  #footer_in {
    width: 100%;
  }
  #ft_copy {
    width: 100%;
  }
  /*TOP*/
.top_sec01_in {
    display: block;
}

.top_sec01_img {
    width: 45%;
    margin: 0 auto;
}

.top_sec01_txt p {
    font-size: 18px;
}

.top_sec01_txt {
    padding: 0 1.4em;
}
.top_sec02_in {
    position: initial;
    flex-wrap: wrap;
}

.sec02_L {
    order: 2;
}

.sec02_R {
     order: 1;
	padding-bottom: 12%;
}

.sec02_R ul li h2 {
    padding-left: 0;
}

#top_sec02 {
    background-position: 100% top;
    background-repeat: repeat-y;
    background: linear-gradient(90deg, #ffffff 0%, #fff 8%, #f1ece5 0%, #f1ece5 50%);
}

.sec02_R ul li h2 img {
    display: block;
    margin: 0 auto;
    width: 23%;
    padding-top: 19%;
}

.top_sec02_in {
    background: url(../img/top/pc_sec02_bk.png)no-repeat;
    background-position: right top;
    background-size: 20%;
}
	
	
	
.top_sec03_in {
    flex-wrap: wrap;
    display: block;
}

.top_sec03_in_L {
    position: initial;
}

.top_sec03_in_R {
    position: initial;
    max-width: 100%;
	overflow: hidden;
}

#top_sec03 {
    padding-bottom: 0;
}

.slick-slide img {
    width: 200px;
}

.work_link {
    position: initial;
	width: 100%;
}

.sec02Rcont_txt h3 {
    position: initial;
    font-size: 16px;
    padding-top: 14%;
}

.sec02Rcont_txt {
    width: 44%;
}

.sec02Rcont_txt h3 span {
    font-size: 10px;
	display: table;
    margin: 0 auto;
}

p.more_txt {
    width: 68px;
    font-size: 14px;
}
.top_sec03_in_L h2 img {
    display: block;
    width: 20%;
    margin: 0 auto;
    padding-top: 15%;
}
.sec02_R ul li p {
    font-size: 18px;
}
.work_link a {
    max-width: 65%;
}

.top_sec03_in {
    padding-bottom: 12%;
}
#top_sec05 h2 {
    font-size: 28px;
    letter-spacing: 0.1em;
}

#top_sec05 h2 span {
    font-size: 13px;
	display: table;
    margin: 0 auto;
}

#top_sec05 h2+p {
    font-size: 16px;
}

#top_sec05_in {
    max-width: 80%;
    padding: 1.0em;
}

#top_sec05_in p.more_txt {
    margin-top: 17%;
}
	
.ft_menu ul {
    flex-wrap: wrap;
}

.ft_menu ul li {
    padding-bottom: 0;
    margin-bottom: 1em;
    margin-top: 1em;
}
.ft_menu ul li:nth-child(3),
.ft_menu ul li:nth-child(5),
.ft_menu ul li:nth-child(6){
    border: 0;
}
.ft_menu ul li a {padding-right: 1em;}

#ft_logo p:nth-child(2) img {
    width: 3%;
}
  /*下層ページ共通*/
.ft_fixLink {
 background: #000;
    position: fixed;
    bottom: 0;
    z-index: 9999;
    left: 0;
    right: 0;
    margin: auto;
	padding: 2% 0;
}

.ft_fixLink ul {
    display: flex;
    justify-content: center;
    gap: 3%;
}

.ft_fixLink ul li a {
    color: #fff;
    text-decoration: none;
}

.ft_fixLink ul li a {
    background: #2765ac;
    padding: 1em;
    display: block;
    text-align: center;
}

.ft_fixLink ul li {
    width: 46%;
}

.ft_fixLink ul li:nth-child(2) a {
    background: #24a573;
}
#header h1#logo img {
    width: 80%;
}
.btn-top {
    bottom: 10%;
	right: -7%;
}
.btn-top img {
    width: 54%;
}
#footer {
    padding-bottom: 30%;
}
.work_link {padding: 25% 0 0;}

ul.slick-dots {
    max-width: 80%;
	bottom: -52%;
}
}