@charset "UTF-8";
img {
	width: 100%;
	height: auto;
}
.mincho {
    font-family: 'Noto Serif JP', serif;
}
.en {
    font-family: 'Poppins', sans-serif;
}
a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
    color: #000;
}
.abox {
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 3;
}
.sponly {
    display: none!important;
}
.brtab, .brsp, .sp, .sp2, .tab-img {
 	display: none;
 }
.fin {
	opacity : 0;
	transform : translate(0, 30px);
	transition-duration: 1.5s;
	transition-property: all;
}
.fin.sin {
	opacity : 1;
	transform : translate(0, 0);
}
.vegas-animation-kenburns {
    animation: kenburns ease-out;
}
@keyframes kenburns {
    0% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1);
    }
}
.vegas-animation-kenburns2 {
    animation: kenburns2 ease-out;
}

@keyframes kenburns2 {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.2);
    }
}
/*========= ローディング画面のためのCSS ===============*/
#splash {
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 999;
  background:#000;
  text-align:center;
  color:#fff;
}

#splash-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
  width: 200px;
}
#splash-logo p {
    font-size: 13px;
    color: #FFF;
}
/*画面遷移の後現れるコンテンツ設定*/
#container {
	opacity: 0;/*はじめは透過0に*/
    position: relative;
    z-index: 1;
    background: #FFF;
}

/*bodyにappearクラスがついたら出現*/
body.top-body.appear #container{
	animation-name: PageAnimeAppear;
	animation-duration:1s;
	animation-delay:0.4s;
	animation-fill-mode:forwards;
	opacity: 0;
}

@keyframes PageAnimeAppear{
	0% {
	opacity: 0;
	}
	100% {
	opacity: 1;
}
}
body.top-body {
    background:#000;/*遷移アニメーションと同じ色を指定*/
}
body.top-body.appear{
    background:#000;/*画面を開いた後の背景色を指定*/
}

/*========= ヘッダ ===============*/

header {
	width: 100%;
	position: fixed;
	height: 80px;
	display: flex;
	flex-wrap: wrap;
	z-index: 5;
    transition: all .5s;
    border-bottom: 2px solid rgba(219,0,13,0.00);
    box-shadow: -1px 10px 16px -17px rgba(0,0,0,0.40);
}
.top-body header {
    box-shadow: -1px 10px 16px -17px rgba(0,0,0,0.00);
}
.top-body header.scroll-nav,
.basic header {
    background: #FFF;
}
header .logo {
	width: 174px;
    position: absolute;
    top: 11px;
    left: 30px;
}
header .logo-text {
  position: absolute;
  left: 0;
  text-align: center;
  bottom: -17px;
  font-size: 12px;
  line-height: 1em;
  letter-spacing: .02em;
}
.top-body header .logo-text {
  color: #FFF;
}
.top-body header.scroll-nav .logo-text {
  color: #000;
}
header {
  width: 100%;
}
.top-body header .darkmode {
    display: block;
}
.top-body header .nomal {
    display: none;
}
.top-body header.scroll-nav,
.basic header {
    border-bottom: 2px solid rgba(219,0,13,1.00);
    box-shadow: -1px 10px 16px -17px rgba(0,0,0,0.40);
}
.top-body header.scroll-nav .darkmode {
    display: none;
}
.top-body header.scroll-nav .nomal {
    display: block;
}

@media all and (-ms-high-contrast: none) {
header {
	width: 100%;
	position: fixed;
	height: 80px;
	display: flex;
	flex-wrap: wrap;
	z-index: 5;
    transition: all .5s;
    border-bottom: 2px solid rgba(219,0,13,0.00);
    box-shadow: -1px 10px 16px -17px rgba(0,0,0,0.40);
}
.top-body header {
    box-shadow: -1px 10px 16px -17px rgba(0,0,0,0.40);
}
.top-body header,
.top-body header.scroll-nav,
.basic header {
    background: #FFF;
}
.top-body header .logo-text {
  color: #000;
}
.top-body header.scroll-nav .logo-text {
  color: #000;
}
.top-body header .darkmode {
    display: none;
}
.top-body header .nomal {
    display: block;
}
.top-body header,
.top-body header.scroll-nav,
.basic header {
    border-bottom: 2px solid rgba(219,0,13,1.00);
    box-shadow: -1px 10px 16px -17px rgba(0,0,0,0.40);
}
.top-body header.scroll-nav .darkmode {
    display: none;
}
.top-body header.scroll-nav .nomal {
    display: block;
}
}
/*========= フッタ ===============*/
.pagetop {
  position: fixed;
  width: 30px;
  height: 100px;
  bottom: 0;
  right: 0;
  background: #DB000D;
  cursor: pointer;
  transition: all .5s;
  z-index: 10;
}
.pagetop:hover {
  height: 110px;
}
.pagetop:before {
  width: 18px;
  height: 70px;
  background-image: url("../img/pagetop.png");
  top: 15px;
  left: calc(50% - 9px);
}

footer {
    background: #000;
    position: relative;
}
footer .contact-box {
    width: 100%;
    height: 80px;
    background-color: #DB000D;
    position: relative;
    transition: all .5s;
}
footer .contact-box:hover {
    background-color: #ED0917;
}
footer .contact-box p {
    display: inline-block;
    white-space: nowrap;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: 16px;
    font-weight: 500;
    color: #FFF;
}
footer .contact-box p:before {
    width: 24px;
    height: 18px;
    left: -35px;
    top: calc(50% - 9px);
    background-image: url("../img/contact-icon.svg");
}
footer .related-links {
    padding: 30px 0;
    background: #FFF;
}
footer .related-links ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
footer .related-links ul li {
    width: 140px;
    margin: 0 10px;
}
.footer-wrap {
    width: 90%;
    margin: 50px auto 0;
    max-width: 1000px;
    padding-bottom: 170px;
    position: relative;
}
.footer-links {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.footer-links .footer-links__box01 {
    width: 70%;
    display: flex;
    flex-wrap: wrap;
}
.footer-links .footer-links__box01 > li {
    width: 24%;
}
.footer-links .footer-links__box01 > li p a {
    display: inline-block;
    color: #FFF;
    font-size: 14px;
    padding-right: 14px;
    position: relative;
    text-decoration: none;
}
.footer-links .footer-links__box01 > li > ul li {
    line-height: 1.6em;
}
.footer-links .footer-links__box01 > li > ul li a {
    display: inline-block;
    color: #FFF;
    font-size: 12px;
    padding-right: 13px;
    position: relative;
    text-decoration: none;
    
}
.footer-links .footer-links__box01 > li a:before {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 10px;
    right: 0;
    top: calc(50% - 5px);
}
.footer-links .footer-links__box01 > li > ul li a:before {
    background-image: url("../img/white-arrow.svg");
    width: 4px;
    height: 6px;
    right: 0;
    top: calc(50% - 2px);
}
.footer-links .footer-links__box02 {
    width: 30%;
    max-width: 200px;
}
.footer-links .footer-links__box02 li {
    text-align: right;
}
.footer-links .footer-links__box02 li a {
    color: #FFF;
    font-size: 14px;
    padding-right: 14px;
    position: relative;
    text-decoration: none;
}
.footer-links .footer-links__box02 li a:before {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 10px;
    right: 0;
    top: calc(50% - 5px);
}
.footer-logo {
    position: absolute;
    bottom: 30px;
    right: 0;
    width: 210px;
}
.footer-logo .footer-logo__logo01 {
    width: 105px;
    margin-bottom: 10px;
    left: 105px;
    position: relative;
}
.footer-logo .footer-logo__logo02 {
    width: 207px;
    left: 3px;
    position: relative;
}
.copyright {
    position: absolute;
    bottom: 30px;
    left: 0;
    font-size: 11px;
    color: #FFF;
}
/*========= グロナビ ===============*/
/* メニュー */
.menu {
    position: absolute;
	right: 50px;
	top: 0;
    width: 100%;
    height: 70px;
    max-width: 600px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
    z-index: 20;
}
.menu > li {
	display: inline-block;
    height: 70px;
	position: relative;
    line-height: 70px;
}
.menu > li.contact-btn {
    position: relative;
    width: 160px;
    height: 40px;
    border: solid 1px #000;
    box-sizing: border-box;
    padding: 0 10px 0 23px;
    top: 20px;
}
.menu > li.contact-btn:before {
    width: 100%;
    height: 100%;
    background: #FFF;
    top: 0;
    left: 0;
    z-index: -2;
}
.menu > li.contact-btn:after {
    width: 100%;
    height: 100%;
    background: #000;
    top: 0;
    left: 0;
    transition: all .3s;
    transform-origin: left top;
    transform: scale(0, 1);
    z-index: -1;
}
.menu > li.contact-btn:hover:after {
    transform: scale(1, 1);
}
.menu > li.contact-btn p {
    font-size: 13px;
    font-weight: 400;
    line-height: 38px;
    position: relative;
    padding-left: 22px;
    color: #000;
    transition: all .3s;
}
.menu > li.contact-btn:hover p {
    color: #FFF;
}
.menu > li.contact-btn p:before {
    width: 20px;
    height: 10px;
    left: -2px;
    top: calc(50% - 4px);
    background-image: url("../img/contact-icon-black.svg");
}
.menu > li.contact-btn:hover p:before {
    background-image: url("../img/contact-icon.svg");
}
.menu > li.contact-btn p:after {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 10px;
    right: 0;
    top: calc(50% - 5px);
}
.menu > li.contact-btn:hover p:after {
    animation: arrowafter .4s;   
}
@keyframes arrowafter {
  0% {
    right: 0;
    opacity: 1;
  }
  50% {
    right: -4px;  
    opacity: 0;
  }
  51% {
    right: 20px;  
    opacity: 0;
  }
  100% {
    right: 0;
    opacity: 1;
  }
}
.menu > li > p a {
    display: block;
    color: #000;
	font-size: 16px;
	font-weight: 400;
    line-height: 80px;
    letter-spacing: 0;
	text-decoration: none;
}
.top-body header .menu > li > p a {
    color: #FFF;
}
.top-body header.scroll-nav .menu > li > p a {
    color: #000;
}
.top-body header .menu > li:hover > p a,
.basic header .menu > li:hover > p a {
    color: #DB000D;
}
.menu > li > ul {
    visibility: hidden;
    opacity: 0;
}
@media all and (-ms-high-contrast: none) {
.top-body header .menu > li > p a {
    color: #000;
}
.top-body header.scroll-nav .menu > li > p a {
    color: #000;
}
}
/* floatクリア */
.menu:before,
.menu:after {
    content: "";
    display: table;
}
.menu:after {
    clear: both;
}
.menu {
    *zoom: 1;
}
.menu > li > ul {
    position: absolute;
    top: 70px;
    left: 50%;
	transform: translate(-50%, 0);
    box-sizing: border-box;
    padding: 20px;
    background: rgba(0,0,0,0.80);
    transition: all .2s ease;
    z-index: 11;
}
.menu > li > ul a {
	color: #FFF;
	line-height: 1.4em;
    letter-spacing: 0;
	font-size: 13px;
	padding-right: 15px;
	position: relative;
	transition: all .3s;
    text-decoration: none;
}
.menu > li > ul a:before {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 10px;
    right: 0;
    top: calc(50% - 5px);
}
.menu > li > ul a:hover {
    color: #DB000D;
}
.menu > li:hover > ul {
    top: 80px;
    visibility: visible;
    opacity: 1;
}
.menu > li > ul > li {
    width: 100%;
    display: block;
    white-space: nowrap;
}




.button01 {
    position: relative;
    margin-bottom: 10px;
}

.button01 a {
    font-size: 13px;
    font-weight: 400;
    position: relative;
    display: inline-block;
    padding-left: 22px;
    color: #000;
    padding: 5px 25px 5px 10px;
    text-decoration: none;
    transition: all .3s;
    z-index: 2;
}
.button01 a:hover {
    color: #FFF;   
}
.button01 a:before {
    width: 100%;
    height: 100%;
    background: #000;
    top: 0;
    left: 0;
    transition: all .3s;
    transform-origin: left top;
    transform: scale(0, 1);
    z-index: -1;
}
.button01 a:hover:before {
    transform: scale(1, 1);
}
.button01 a:after {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 10px;
    right: 8px;
    top: calc(50% - 5px);
    z-index: 1;
}
.button01 a:hover p:after {
    animation: arrowafter .4s;   
}

/*========= トップページ ===============*/
#slider {
    position: relative;
    width: 100%;
    height: 100vh;
    max-height: 768px;
}
.main-copy {
  position: absolute;
  bottom: 60px;
  left: 40px;
  box-sizing: border-box;
  padding: 0;
}
.main-copy.fin {
    transition-delay: 2.5s;
    transition-duration: 1.5s;
}
.main-copy .p01 {
    font-weight: 600;
    color: #FFF;
    font-size: 42px;
    letter-spacing: 0.08em;
    line-height: 1.6em;
    text-shadow: 0px 0px 15px rgba(0, 0, 0, 0.2);
    margin-bottom: 20px;
}
.main-copy .p02 {
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0.06em;
    line-height: 2em;
    color: #FFF;
    text-shadow: 0px 0px 15px rgba(0, 0, 0, 0.2);
    position: relative;
    margin-left: 50px;
}
.main-copy .p02:before {
    width: 1px;
    height: calc(100% + 58px);
    left: -20px;
    top: 0;
    background: #DB000D;
}
.main-copy .p02:after {
    width: 20px;
    height: 40px;
    left: -40px;
    top: 0;
    background-image: url("../img/scroll-text.svg");
}


.content-box {
    width: 100%;
    margin: 0 auto;
    max-width: 1000px;
    z-index: 0;
}
@media screen and (max-width: 1100px) {
.content-box {
    width: 90%;
    margin: 0 auto;
}
}
.news-box {
    max-height: 120px;
    overflow-y: scroll;
}
.news-box::-webkit-scrollbar {
    width: 10px;
}
.news-box::-webkit-scrollbar-track {
    background-color: #FFF;
}
.news-box::-webkit-scrollbar-thumb {
    background-color: #E5E5E5;
}
.top-news h2 {
    margin-bottom: 20px;
}
.top-news {
    padding: 90px 0;
}
.news-box dl {
    display: flex;
    flex-wrap: wrap;
    padding-bottom: 10px;
}
.news-box dl dt {
    width: 110px;
    font-size: 14px;
    color: #8E8E8F;
    font-weight: 600;
}
.news-box dl dd {
    width: calc(100% - 110px);
    font-size: 14px;
    box-sizing: border-box;
    padding: 0 20px 0 0;
}
.top-about {
    background: #F5F5F5 url("../img/top-about.png") no-repeat right center;
    background-size: auto 100%;
    min-height: 300px;
    padding: 90px 0;
    box-sizing: border-box;
}



.top-body h2 {
    font-size: 38px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1.1em;
}
.top-body .h2sub {
    font-size: 18px;
    font-weight: 500;
    color: #DB000D;
    line-height: 1.1em;
    margin-bottom: 30px;
}
.top-body .text01 {
    font-size: 14px;
    margin-bottom: 20px;
}

.top-field {
    padding: 120px 0 0;
    position: relative;
}
.top-field:before {
    width: 100%;
    height: 180px;
    background: #F5F5F5;
    bottom: -30px;
    left: 0;
    z-index: -2;
}
.top-field h2,
.top-field .h2sub,
.top-field .text01{
    text-align: center;
}
.top-field .button01 {
    text-align: center;
}
.top-field .banner-button {
    display: flex;
    flex-wrap: wrap;
    margin: 30px auto 0;
}
.top-field .banner-button li {
    width: 50%;
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
    transition: all .5s;
}
.top-field .banner-button li p {
    text-align: center;
    width: 100%;
    font-size: 18px;
    color: #FFF;
    font-weight: 600;
    position: absolute;
    flex: 1; 
    z-index: 2;
}
.top-field .banner-button li .image-box {
    transform: scale(1);
    transition: all .3s;
}
.top-field .banner-button li .image-box:before {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: rgba(0,0,0,0.3);
    z-index: 1;
}
.top-field .banner-button li:hover .image-box {
    transform: scale(1.2);
}
.top-field .banner-button li:hover .image-box:before {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: rgba(0,0,0,0.1)
}


.top-contract {
    padding: 120px 0;
    background: #F5F5F5;
}
.top-contract .content-box {
    display: flex;
    flex-wrap: wrap;
    background: #FFF;
}
.top-contract .text-box {
    width: 50%;
    box-sizing: border-box;
    padding: 8% 0 0 5%;
}
.top-contract .image-box {
    width: 50%;
}


.top-recruit .text-box {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}
.top-recruit .text-box h2 {
    color: #FFF;
    text-align: center;
}
.top-recruit .text-box .h2sub {
    text-align: center;
}
.top-recruit .large-banner {
    position: relative;
    overflow: hidden;
}
.top-recruit .large-banner .image-box {
    transform: scale(1);
    transition: all .3s;
}
.top-recruit .large-banner .image-box:before {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: rgba(0,0,0,0.3)
}
.top-recruit .large-banner:hover .image-box {
    transform: scale(1.1);
}
.top-recruit .large-banner:hover .image-box:before {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: rgba(0,0,0,0.1);
    z-index: 1;
}










/* パンクズ　*/
.trail-list {
    height: 50px;
    border-bottom: solid 1px #DDDDDD;
}
.trail-list ul {
    width: calc(100% - 60px);
    margin: 0 auto;
    display: flex;
}
.trail-list ul li {
    display: inline-block;
    padding-right: 20px;
    line-height: 50px;
    font-size: 12px;
    font-weight: 500;
    position: relative;
}
.trail-list ul li a {
    color: #000;
    text-decoration: none;
}
.trail-list ul li:after {
    width: 6px;
    height: 12px;
    right: 6px;
    top: calc(50% - 6px);
    background-image: url("../img/trail-arrow.svg");
}
.trail-list ul li:last-child {
    color: #DB000D;
}
.trail-list ul li:last-child:after {
    display: none;
}



/* 下層共通　*/
.basic main {
    padding: 80px 0 0;
}
.h1box {
    width: 100%;
    height: 270px;
    display: flex;
    align-items: center;
}
.h1box h1 {
    flex: 1;
    text-align: center;
    font-family: 'Poppins', sans-serif;
    font-size: 38px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1.1em;
}
.h1box h1 span {
    display: block;
    font-family: 'Noto Sans JP', sans-serif;
    color: #DB000D;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.1em;
}
.basic h2 {
    font-size: 35px;
    font-weight: 600;
    margin-bottom: 40px;
}
.basic .narrow-box {
    width: 670px;
    margin: 0 auto;
}
.section-title-english {
    font-family: 'Poppins', sans-serif;
    font-size: 120px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1.1em;
    position: absolute;
    z-index: -1;
}
.section-title-english.style01 {
    color: #F5F5F5;
    top: 40px;
    left: 0;
}
.section-title-english.style02 {
    color: #FFF;
    top: 40px;
    right: 0;
}
.section-title-english.style03 {
    color: #F5F5F5;
    top: 40px;
    right: 0;
}
.section-title-english.style04 {
    color: #FFF;
    top: 40px;
    left: 0;
}
.basic main section {
    padding: 120px 0;
    position: relative;
    overflow: hidden;
}
.bg-grey {
    background: #F5F5F5;
    z-index: 0;
}
.header-intro {
    padding: 60px 0;
}
.header-intro p {
    text-align: center;
}

/* 会社情報　*/
.message .main-visual {
    margin-bottom: 50px;
}
.message h3 {
    text-align: center;
    font-size: 24px;
    margin-bottom: 30px;
}
.message .text01 {
    font-size: 16px;
    line-height: 2em;
}
.message .text01.name span {
    font-size: 14px;
}
.message .text01.name {
    text-align: right;
    margin: 30px auto 0;
}
.outline-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
}
.outline-wrap dl {
    width: 48%;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start; 
    font-size: 16px;
}
.outline-wrap dt, .outline-wrap dd {
    margin-bottom: 20px;
}
.outline-wrap dt {
    width: 100px;
    box-sizing: border-box;
    display: inline-block;
    font-weight: 500;
}
.outline-wrap dd {
    width: calc(100% - 100px);
    box-sizing: border-box;
    border-left: solid 3px #DB000D;
    padding: 0 15px 0;
}
.outline-wrap dd span {
    font-weight: 500;
}
.outline-wrap dd span.fax {
    font-weight: 400;
}
.outline-wrap dd a.map-link {
    display: block;
    width: 40px;
    text-align: center;
    border: solid 1px #000;
    background: #FFF;
    padding: 1px 5px;
    text-decoration: none;
    color: #000;
    margin-bottom: 20px;
}
.outline-wrap dd ol {
    margin-left: 1em;
}
.outline-wrap dd ol li {
    list-style-type: decimal;
}
.history {
    position: relative;
    
}
.history:after {
    width: 3px;
    height: 100%;
    left: calc(50% - 2px);
    top: 0;
    background: #DB000D;
    z-index: -1;
}
.year-box {
    position: relative;
    box-sizing: border-box;
    width: 100%;
}
.year-box .text-box {
    box-sizing: border-box;
    padding: 35px 30px 80px;
    width: 50%;
    position: relative;
}
.year-box .year {
    position: absolute;
    width: 50%;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
    font-size: 95px;
    font-weight: 600;
    -webkit-text-stroke: 1px #707070;
    color: #FFF;
    line-height: 1em;
}
.year-box.year-right .text-box {
    left: 50%;
}
.year-box.year-left .year {
    left: 50%;
    padding: 0 0 0 50px;
}
.year-box.year-right .year {
    text-align: right;
    left: 0;
    padding: 0 50px 0 0;
    z-index: 2;
}
.year-box.year-left .year:before {
    width: 10px;
    height: 10px;
    border: solid 3px #DB000D;
    border-radius: 50%;
    background: #FFF;
    left: -9px;
    top: 40px;
    z-index: 2;
}
.year-box.year-right .year:before {
    width: 10px;
    height: 10px;
    border: solid 3px #DB000D;
    border-radius: 50%;
    background: #FFF;
    right: -7px;
    top: 40px;
    z-index: 2;
}




/*事業紹介  事業内容と3つの特長*/

.business .figure01 {
    margin: 80px auto 0;
}
.basic section.point {
    padding-bottom: 0;
}

.point ul,
.career ul {
    margin-bottom: 120px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.point ul li,
.career ul li{
    width: 27%;
    counter-increment: number;
    position: relative;
}
.point ul li:before,
.career ul li:before {
    content: "0"counter(number);
    position: absolute;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
    font-size: 95px;
    font-weight: 600;
    -webkit-text-stroke: 1px #868686;
    color: #FFF;
    line-height: 1em;
    z-index: -1;
    right: 0;
    top: -50px;
}
.point ul li h3,
.career ul li h3 {
    color: #DB000D;
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 10px;
}
.service-header {
    border-top: solid 3px #DB000D;
    position: relative;
}

.service h3 {
    font-size: 16px;
    font-weight: 500;
    padding-left: 13px;
    position: relative;
    margin-bottom: 50px;
}
.service h3:before{
    width: 2px;
    height: 100%;
    left: 0;
    top: 0;
    background: #DB000D;
}
.service h4 {
    font-size: 24px;
    font-weight: 600;
    position: relative;
    padding-bottom: 10px;
    margin-bottom: 20px;
    border-bottom: solid 2px #000;
}
.service-main {
    margin-bottom: 100px;
}

.service ul {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 40px 0 80px;
}
.service ul li {
    width: 46%;
    margin-bottom: 30px;
}
.service ul li p {
    position: relative;
    font-weight: 500;
    padding: 5px 0 0 12px;
}
.service ul li p:before {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 7px;
    left: 0;
    top: calc(50% - 0px);
}
.service .figure01 {
    margin: 40px 0 80px;
}



/* 受託実績 */
.basic h2 span {
    font-size: 12px;
    font-weight: 400;
    display: block;
    line-height: 1em;
}
.list-menu {
    width: 100%;
    height: 190px;
    background: linear-gradient(90deg, rgba(219,0,13,1) 0%, rgba(219,0,13,1) 50%, rgba(245,245,245,1) 50%, rgba(245,245,245,1) 100%);
}
.list-menu .content-box {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    height: 190px;
}
.list-menu .content-box .list-title {
    width: 300px;
    background: #DB000D;
    display: flex;
    align-items: center;
}
.list-menu .content-box .list-menu-box {
    width: calc(100% - 300px);
    background: #F5F5F5;
    position: relative;
}
.list-menu .content-box .list-menu-box:before {
    width: 0;
    height: 0;
    left: -120px;
    top: 0;
    border-style: solid;
    border-width: 0 0 190px 120px;
    border-color: transparent transparent #F5F5F5 transparent;
}
.list-menu .content-box .list-title p {
    flex: 1;
    color: #FFF;
    font-size: 22px;
    font-weight: 600;
}
.list-menu .content-box .list-title p span {
    font-size: 12px;
    font-weight: 300;
    display: block;
    text-indent: -1em;
    margin-left: 1em;
    line-height: 1.5em;
}
.list-menu .content-box .list-menu-box ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.list-menu .content-box .list-menu-box ul li {
    width: 25%;
    text-align: center;
    line-height: 190px;
    cursor: pointer;
    position: relative;
}
.list-menu .content-box .list-menu-box ul li:before {
    width: 10px;
    height: 14px;
    top: calc(50% + 30px);
    left: calc(50% - 5px);
    background-image: url("../img/red-arrow.svg");
    transform: rotate(90deg);
    transition: all .5s;
}
.list-menu .content-box .list-menu-box ul li:hover:before {
    top: calc(50% + 40px);
}

.contract-list {
    margin-bottom: 50px;
}
.contract-list p {
    font-size: 12px;
    text-align: right;
}
.contract-list ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.contract-list ul li {
    width: 50%;
    box-sizing: border-box;
    padding-left: 20px;
    font-size: 17px;
    position: relative;
    margin-bottom: 5px;
}
.contract-list ul li:before {
    width: 6px;
    height: 6px;
    left: 0;
    top: 14px;
    background: #D9D9D9;
    border-radius: 50%; 
}
.contract-list ul.split4060 li:nth-child(odd) {
    width: 40%;
}
.contract-list ul.split4060 li:nth-child(even) {
    width: 60%;
}
.contract-list ul li.full {
    width: 100%;
}
.contract-list ul li.goup {
    top: -31px;
}
.contract-list ul li span {
    font-size: 13px;
    position: relative;
    top: -5px;
    left: -10px;
}
.contract-list ul li span.mbl {
    margin-left: 15px;
}
.pickup ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.pickup ul li {
    width: 47%;
    margin-bottom: 60px;
}
.pickup ul li p {
    position: relative;
    font-weight: 500;
    padding: 5px 0 0 12px;
}
.pickup ul li p:before {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 7px;
    left: 0;
    top: calc(50% - 0px);
}




/* 採用情報 */

h3.h301 {
    font-size: 20px;
    font-weight: 500;
    padding-left: 13px;
    position: relative;
    margin-bottom: 30px;
}
h3.h301:before{
    width: 2px;
    height: 100%;
    left: 0;
    top: 0;
    background: #DB000D;
}
h3.h302 {
    font-size: 16px;
    font-weight: 500;
    padding-left: 13px;
    position: relative;
    margin-bottom: 50px;
}
h3.h302:before{
    width: 2px;
    height: 100%;
    left: 0;
    top: 0;
    background: #DB000D;
}
.basic .personality {
    padding-top: 60px;
    padding-bottom: 0;
}
.personality .content-box {
    position: relative;
    width: 100%;
    max-width: 100%;
    padding-top: 100px;
}
.personality .content-box .image-box {
    width: 100%;
    position: relative;
    left: 0;
    height: 600px;
    background: url("../img/personality-main.png") no-repeat left top;
    background-size: auto 100%;
}
.personality .content-box .text-box {
    position: absolute;
    left: 50%;
    top: 20%;
    width: 50%;
    max-width: 600px;
    box-sizing: border-box;
    padding: 0 5% 0 0;
    z-index: 1;
}
@media screen and (min-width: 1440px) {
.personality .content-box .text-box {
    position: absolute;
    left: 45%;
    top: 20%;
    width: 55%;
    max-width: 55%;
    padding: 0 10% 0 0;
}
}
@media screen and (max-width: 1100px) {
.personality .content-box .image-box {
    width: 100%;
    position: relative;
    left: 0;
    height: 550px;
    background: url("../img/personality-main.png") no-repeat -20% top;
    background-size: auto 100%;
}
.personality .content-box .text-box {
    position: absolute;
    left: 45%;
    top: 20%;
    width: 55%;
    max-width: 600px;
    box-sizing: border-box;
    padding: 0 5% 0 2%;
}
}
@media screen and (max-width: 1000px) {
.personality .content-box .image-box {
    width: 100%;
    position: relative;
    left: 0;
    height: 500px;
    background: url("../img/personality-main.png") no-repeat -35% top;
    background-size: auto 100%;
}
.personality .content-box .text-box {
    position: absolute;
    left: 40%;
    top: 20%;
    width: 60%;
    max-width: 600px;
    box-sizing: border-box;
    padding: 0 3% 0 0;
}
}


.environment ul {
    
}
.environment ul li {
    display: flex;
    flex-wrap: wrap;
}
.environment ul li .image-box {
    width: 50%;
    position: relative;
}
.environment ul li:nth-child(odd) .image-box:before {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 10px 17.3px 10px 0;
    border-color: transparent #FFF transparent transparent;
    right: 0;
    top: calc(50% - 8px);
}
.environment ul li:nth-child(2) .image-box:before {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 10px 0 10px 17.3px;
    border-color: transparent transparent transparent #FFF;
    left: 0;
    top: calc(50% - 8px);
}
.environment ul li:nth-child(2) .image-box {
    order: 2;
}

.environment ul li .image-box img {
    object-fit: cover;
}
.environment ul li .text-box {
    width: 50%;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    padding: 0 6%;
    background: #FFF;
    position: relative;
}
.environment ul li .text-box .text-center {
    flex: 1;
}
.environment ul li .text-box h4 {
    font-size: 18px;
    color: #DB000D;
    padding-bottom: 5px;
    font-weight: 500;
}

.recruit .career ul {
    margin-top: 80px;
}
.basic .career {
    padding-bottom: 40px;
}



.basic .interview-menu01 {
    padding-bottom: 0;
}
.interview-menu01 ul {
    display: flex;
    flex-wrap: wrap;
    max-width: 1440px;
    margin: 0 auto;
}
.interview-menu01 ul li {
    width: 33.33%;
    overflow: hidden;
    position: relative;
}
.interview-menu01 ul li:before {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 170px 80px 0 0;
    border-color: #DB000D transparent transparent transparent;
    left: 0;
    top: 0;
    z-index: 1;
}
.interview-menu01 ul li .text-box {
    position: absolute;
    top: 30px;
    left: 20px;
    z-index: 2;
}
.interview-menu01 ul li .text-box .p01 {
    font-size: 13px;
}
.interview-menu01 ul li .image-box {
    transform: scale(1.01);
    transition: all .4s;
}
.interview-menu01 ul li:hover .image-box {
    transform: scale(1.15);    
}

.information h2 {
    text-align: center;
}
.information ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.information ul li {
    width: 47%;
    height: 80px;
    background: #000;
    position: relative;
    transition: all .5s;
}
.information ul li p {
    display: inline-block;
    transform: translate(-50%, -50%);
    left: 50%;
    top: 50%;
    position: relative;
    color: #FFF;
    font-size: 18px;
    font-weight: 500;
}
.information ul li p:before {
    width: 16px;
    height: 16px;
    right: -22px;
    top: calc(50% - 8px);
    background-image: url("../img/new-wiindow-icon.svg");
}
.information ul li:hover {
    background: #1F1F1F;
}




/* 社員インタビュー */
.h1box .intro {
    color: #000;
    font-size: 16px;
    font-weight: 400;
    padding: 40px 0 0;
}
.interview-menu02 ul {
    width: 90%;
    max-width: 900px;
    margin: 0 auto 200px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.interview-menu02 ul li  {
    width: 30%;
    position: relative;
    cursor: pointer;
    counter-increment: number;
    transition: all .5s;
}
.interview-menu02 ul li:after {
    width: 14px;
    height: 10px;
    background-image: url("../img/action-arrow.png");
    bottom: -50px;
    left: calc(45% - 5px);
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: 100% auto;
    transition: all .3s;
}
.interview-menu02 ul li:hover:after {
    height: 120px;
    bottom: -130px;
}
.interview-menu02.noarrow ul li:after {
    display: none;
}
.interview-menu02 ul li:before {
    content: "0"counter(number);
    position: absolute;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
    font-size: 38px;
    font-weight: 600;
    color: #000;
    line-height: 1em;
    z-index: 2;
    left: 0;
    top: -15px;
}
.interview-menu02 ul li .image-wrap {
    width: 120px;
    margin-left: 20px;
    overflow: hidden;
}
.interview-menu02 ul li .image-wrap .image-box {
    transform: scale(1.01);
    transition: all .4s;
}
.interview-menu02 ul li:hover .image-wrap .image-box {
    transform: scale(1.1);
}
.interview-menu02 ul li .text-box {
    position: absolute;
    width: 50%;
    left: 57%;
    top: 50px;
    z-index: 2;
}
.interview-menu02 ul li .text-box:before {
    width: 110px;
    height: 94px;
    background-image: url("../img/red-slash.svg");
    left: -68px;
    z-index: -1;
}
.interview-menu02 ul li .text-box .p01 {
    font-size: 12px;
}
.interview-menu02 ul li .text-box .p02 {
    font-size: 20px;
    font-weight: 500;
}

.interview-block01 {
    padding: 80px 0;
}
.interview-block {
    padding: 80px 0;
}
.interview h3 {
    position: relative;
    font-size: 22px;
    padding-left: 40px;
    margin-bottom: 30px;
    font-weight: 500;
}
.interview h3:before {
    content: "Q";
    font-family: 'Poppins', sans-serif;
    font-size: 36px;
    color: #DB000D;
    font-weight: 600;
    left: 0;
}
.profile .text-box {
    position: relative;
    box-sizing: border-box;
    width: 85%;
    top: -150px;
    left: 15%;
    z-index: 2;
    padding: 0 0 0 50px;
    margin-bottom: -100px;
}
.profile .text-box:before {
    width: 170px;
    height: 140px;
    background-image: url("../img/red-slash.svg");
    left: -63px;
    z-index: -1;
}
.profile .text-box .number {
    position: absolute;
    font-family: 'Poppins', sans-serif;
    font-size: 58px;
    font-weight: 600;
    color: #000;
    line-height: 1em;
    z-index: 2;
    left: -30px;
    top: -10px;
}
.profile .text-box .p01 {
    font-size: 18px;
}
.profile .text-box .p02 {
    font-size: 30px;
    font-weight: 500;
}



/* 個人情報保護について / サイトポリシー */
.basic .h1box h1 .h1mini {
    color: #000;
    font-size: 30px;
}
.basic .privacy h2 {
    font-size: 22px;
    font-weight: 600;
    background: #E2E2E2;
    box-sizing: border-box;
    padding: 0 0 0 20px;
}
.basic .privacy h3 {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 15px;
}
.basic .privacy section {
    padding: 0 0 80px;
    
}
.basic .privacy section p,
.basic .policy p{
    margin-bottom: 15px;
}
.number-list > li {
  list-style-type: none;
  counter-increment: number;
  margin-left: 1.6em;
  position: relative;
}
.number-list > li:before{
  content: counter(number) ".";
  color: #DB000D;
  left: -1.2em;
}
.number-list05 > li {
  list-style-type: none;
  counter-increment: number2;
  margin-left: 1.6em;
  position: relative;
}
.number-list05 > li:before{
  content: counter(number2) ".";
  color: #DB000D;
  left: -1.2em;
}
.number-list03 > li {
    list-style: decimal;
}
.number-list05.mbm > li {
    margin-bottom: 20px;
}
.number-list02 > li {
    counter-increment: number;
    margin-left: 2.4em;
    position: relative;
}
.number-list02 > li:before{
  content: "（"counter(number) "）";
  left: -2.4em;
  font-weight: 600;
}
.number-list02 > li span {
    font-weight: 600;
}
.number-list04 li {
    list-style-type: lower-roman;
}
.dot-list li {
    list-style: inside;
}
.policy {
    padding-bottom: 120px;
    position: relative;
}
.policy-box {
    padding-bottom: 20px;
}
.policy-box h4 {
    font-weight: 600;
}
.privacy a {
    color: #006CFF;
}
.privacy a:hover {
    text-decoration: none;
}
.privacy .nocolor {
    color: #000;
    text-decoration: none;
}
.privacy .nocolor:hover {
    text-decoration: underline;
}

#person01 {
    position: absolute;
    top: -110px;
}
#person02 {
    position: absolute;
    top: -110px;
}
#person03 {
    position: absolute;
    top: -110px;
}
.privacy .narrow-box {
    position: relative;
     width: 740px;
}
#privacy {
    position: absolute;
    top: -110px;
}
#policy {
    position: absolute;
    top: -110px;
}