@charset "UTF-8";

body.fixed {
	position: fixed;
}
body {
-webkit-text-size-adjust: 100%;
}
.sp {
    display: none;
}
.tab {
    display: none;
}
a[href*="tel:"] {
    text-decoration: none;
    color: #000;
}
.fax {
    pointer-events: none;
}
@media screen and (max-width: 428px) {
.pc {
	display: none;
}
.sp {
    display: block;
}
.brsp {
	display: block;
}
.brclear {
	display: none;
}
}
img {
	width: 100%;
	height: auto;
}
.mincho {
    font-family: 'Noto Serif JP', serif;
}
.en {
    font-family: 'Poppins', sans-serif;
}
.abox {
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 3;
}
.fin {
	opacity : 0;
	transform : translate(0, 20px);
	transition : all 1s;
}
.fin.sin {
	opacity : 1;
	transform : translate(0, 0);
}
.topWrap {
	position: relative;
}
.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: 180px;
    animation-name: PageAnimeAppear;
	animation-duration: .3s;
	animation-delay: .3s;
	animation-fill-mode: forwards;
	opacity: 0;
}
#splash-logo p {
    font-size: 11px;
    color: #FFF;
    margin: 5px 0 0;
}
/*画面遷移の後現れるコンテンツ設定*/
#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: 50px;
	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 {
    border-bottom: 2px solid rgba(219,0,13,0.00);
    box-shadow: -1px 10px 16px -17px rgba(0,0,0,0.00);
}
.top-body header.scroll-nav,
.basic header {
    background: #FFF;
}
header .logo {
	width: 130px;
    position: absolute;
    top: 11px;
    left: 20px;
}
header .logo-text {
  display: none;
}

header {
  width: 100%;
  border-bottom: 2px solid rgba(219,0,13,1.00);
}
.top-body header .darkmode {
    display: block;
}
.top-body header .nomal {
    display: none;
}
.top-body header.scroll-nav {
    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: 5;
}
.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 p {
    display: inline-block;
    white-space: nowrap;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-size: 16px;
    font-weight: 500;
    padding-left: 25px;
    color: #FFF;
}
footer .contact-box p:before {
    width: 24px;
    height: 18px;
    left: -5px;
    top: calc(50% - 9px);
    background-image: url("../img/contact-icon.svg");
}
footer .related-links {
    padding: 10px 0;
    background: #FFF;
}
footer .related-links ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 90%;
    max-width: 400px;
    margin: 0 auto;
}
footer .related-links ul li {
    width: 31.33%;
}
.footer-wrap {
    width: 90%;
    margin: 0 auto;
    height: 300px;
    position: relative;
}
.footer-links {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.footer-links .footer-links__box01 {
    display: none;
}
.footer-links .footer-links__box02 {
    position: absolute;
    top: 160px;
    left: 50%;
    transform: translateX(-50%);
}
.footer-links .footer-links__box02 li {
    text-align: center;
}
.footer-links .footer-links__box02 li a {
    color: #FFF;
    font-size: 14px;
    padding-right: 14px;
    position: relative;
    text-decoration: none;
    display: inline-block;
    white-space: nowrap;
}
.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;
    top: 60px;
    left: calc(50% - 105px);
    width: 210px;
}
.footer-logo .footer-logo__logo01 {
    width: 105px;
    margin: 0 auto 10px;
    position: relative;
}
.footer-logo .footer-logo__logo02 {
    width: 207px;
    margin: 0 auto;
    position: relative;
}
.copyright {
    position: absolute;
    white-space: nowrap;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    color: #FFF;
}

/* スマホメニュー */
.button_container {
  position: fixed;
  top: 15px;
  right: 35px;
  cursor: pointer;
  transition: opacity 0.25s ease;
  z-index: 2000;
}
.button_container:before {
	position: absolute;
	content: "";
	width: 20px;
	height: 20px;
	top: 0;
	left: 0;
	background: rgba(255,255,255,0);
}
.button_container .top,
.button_container .middle,
.button_container .bottom{
	width: 20px;
	height: 2px;
	background: #000;
}
.top-body header .button_container .top,
.top-body header .button_container .middle,
.top-body header .button_container .bottom {
    background: #fff;
}
.top-body header.scroll-nav .button_container .top,
.top-body header.scroll-nav .button_container .middle,
.top-body header.scroll-nav .button_container .bottom {
    background: #000;
}
.top-body header.scroll-nav .button_container.active .top,
.button_container.active .top {
  transform: translateY(8px) translateX(0) rotate(-45deg);
  background: #fff;
}
.button_container.active .middle {
  opacity: 0;
}
.top-body header.scroll-nav .button_container.active .bottom,
.button_container.active .bottom {
	transform: translateY(-8px) translateX(0) rotate(45deg);
    background: #fff;
}
.button_container span {
  background: #132847;
  border: none;
  height: 3px;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 0.35s ease;
  cursor: pointer;
}
.button_container span:nth-of-type(2) {
  top: 8px;
}
.button_container span:nth-of-type(3) {
  top: 16px;
}

.overlay {
  position: fixed;
  background: rgba(0,0,0,0.90);
  top: 0;
  left: 0;
  width: 100%;
  height: 0%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s, visibility 0.35s, height 0.35s;
  overflow: hidden;
}
.overlay.open {
  opacity: 1;
  visibility: visible;
  height: 520px;
  overflow-y: scroll;
}
.gmenuBoxWrap {
	position: relative;
	width: 90%;
	height: 95%;
	overflow-y: scroll;
	box-sizing: border-box;
	padding: 0 0;
	left: 50%;
	transform: translate(-50%,0);
}
.overlay:before {
    position: fixed;
    width: 130px;
    height: 50px;
    top: 0;
    left: 20px;
    background-image: url("../img/logo.svg");
}
.menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
    z-index: 10;
    margin: 80px auto 0;
}
.menu > li:nth-child(odd) {
	width: 50%;
    margin-bottom: 15px;
    box-sizing: border-box;
}
.menu > li:nth-child(even) {
	width: 50%;
    margin-bottom: 15px;
    box-sizing: border-box;
}
.menu > li.contact-btn {
    position: absolute;
    width: 160px;
    height: 40px;
    box-sizing: border-box;
    padding: 0 10px 0 23px;
    bottom: 0;
    left: calc(50% - 80px);
    background: #DB000D;
}
.menu > li.contact-btn p {
    font-size: 13px;
    font-weight: 400;
    line-height: 38px;
    position: relative;
    padding-left: 22px;
    color: #FFF;
}
.menu > li.contact-btn p:before {
    width: 20px;
    height: 10px;
    left: -2px;
    top: calc(50% - 4px);
    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 > p > a {
    color: #FFF;
    position: relative;
    display: inline-block;
	font-size: 15px;
    padding-right: 15px;
	font-weight: 400;
    line-height: 2em;
    letter-spacing: 0;
	text-decoration: none;
}
.menu > li > ul {
    position: relative;
    box-sizing: border-box;
}
.menu > li > ul a {
	color: #FFF;
	line-height: 1.2em;
    letter-spacing: 0;
	font-size: 12px;
	padding-right: 15px;
	position: relative;
	transition: all .3s;
    text-decoration: none;
}
.menu > li > p > a:before {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 10px;
    right: 0;
    top: calc(50% - 5px);
}
.menu > li > ul > li {
    width: 100%;
    display: block;
    white-space: nowrap;
}
.menu > li > ul > li > a:before {
    background-image: url("../img/white-arrow.svg");
    width: 4px;
    height: 6px;
    right: 0;
    top: calc(50% - 2px);
}
@media screen and (max-width: 400px) {
.menu > li.sponly .p01 a {
    font-size: 13px;
}
}
@media screen and (max-width: 360px) {
.menu > li.sponly .p01 a {
    font-size: 12px;
}
}
.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: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:after {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 10px;
    right: 8px;
    top: calc(50% - 5px);
    z-index: 1;
}


/*========= トップページ ===============*/
#slider {
    position: relative;
    width: 100%;
    height: 100vh;
    max-height: 768px;
}
.main-copy {
  position: absolute;
  bottom: 30%;
  left: 4%;
  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: 6.5vw;
    letter-spacing: 0em;
    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: 0em;
    line-height: 2em;
    color: #FFF;
    text-shadow: 0px 0px 15px rgba(0, 0, 0, 0.2);
    position: relative;
}
#slider:before {
    width: 1px;
    height: 40px;
    left: 50%;
    bottom: 0;
    background: #DB000D;
    z-index: 2;
}
#slider:after {
    width: 40px;
    height: 20px;
    left: calc(50% - 20px);
    bottom: 50px;
    background-image: url("../img/scroll-text_sp.svg");
}


.content-box {
    width: 90%;
    margin: 0 auto;
    max-width: 1000px;
}
.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-body .top-news h2 {
    font-size: 26px;
    text-align: center;
    margin-bottom: 30px;
}
.top-news {
    padding: 50px 0;
}
.news-box dl {
    width: 90%;
    margin: 0 auto;
    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;
}
@media screen and (max-width: 428px) {
.news-box dl {
    margin-bottom: 1em;
}
.news-box dl dt {
    width: 100%;
}
.news-box dl dd {
    width: 100%;
    padding: 0 0 0 0;
}
}
.top-about {
    background: #F5F5F5 url("../img/top-about_sp.png") no-repeat center top;
    background-size: 100% auto;
    padding: 45% 0 50px;
    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-about h2,
.top-about .h2sub,
.top-about .text01{
    text-align: center;
}
.top-about .button01 {
    display: inline-block;
}
.button-wrap {
    display: inline-block;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}
.top-field {
    padding: 80px 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;
}
@media screen and (max-width: 428px) {
.top-field .banner-button li {
    width: 100%;
    margin-bottom: 15px;
}
}
.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.4);
    z-index: 2;
}


.top-contract {
    padding: 80px 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: 5% 0 0 3%;
}
.top-contract .image-box {
    width: 50%;
}
@media screen and (max-width: 700px) {
.top-contract h2,
.top-contract .h2sub,
.top-contract .text01{
    text-align: center;
}
.top-contract .text-box {
    width: 100%;
    box-sizing: border-box;
    padding: 80px 0 5% 0;
}
.top-contract .image-box {
    width: 100%;
}
.top-contract .button01 {
    text-align: center;
}
}

.top-recruit .text-box {
    position: absolute;
    left: 50%;
    top: 55%;
    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.4);
    z-index: 3;
}



/* パンクズ　*/
.trail-list {
    display: none;
}



/* 下層共通　*/
.basic main {
    padding: 50px 0 0;
}
.h1box {
    width: 100%;
    height: 220px;
    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: 50px;
}
.basic .narrow-box {
    width: 90%;
    margin: 0 auto;
}
.section-title-english {
    font-family: 'Poppins', sans-serif;
    font-size: 40px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1.1em;
    position: absolute;
    z-index: -1;
}
.section-title-english.style01 {
    color: #F5F5F5;
    top: 20px;
    left: 0;
}
.section-title-english.style02 {
    color: #FFF;
    top: 20px;
    right: 0;
}
.section-title-english.style03 {
    color: #F5F5F5;
    top: 20px;
    right: 0;
}
.section-title-english.style04 {
    color: #FFF;
    top: 20px;
    left: 0;
}
.basic main section {
    padding: 60px 0;
    position: relative;
}
.bg-grey {
    background: #F5F5F5;
    z-index: 0;
}
@media screen and (max-width: 428px) {
.basic h2 {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 30px;
    text-align: center;
}
.basic .narrow-box {
    width: 100%;
    margin: 0 auto;
}
.section-title-english {
    font-size: 28px;
    position: relative;
    z-index: -1;
}
.section-title-english.style01 {
    top: 25px;
    left: auto;
    text-align: center;
}
.section-title-english.style02 {
    color: #FFF;
    top: 25px;
    right: auto;
    text-align: center;
}
.section-title-english.style03 {
    top: 25px;
    right: auto;
    text-align: center;
}
.section-title-english.style04 {
    color: #FFF;
    top: 25px;
    left: auto;
    text-align: center;
}
.basic main section {
    padding: 60px 0;
    position: relative;
}
}
.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: 100%;
    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 ol {
    margin-left: 1em;
}
.outline-wrap dd ol li {
    list-style-type: decimal;
}
.outline-wrap dd span {
    font-weight: 500;
}
.outline-wrap dd span.fax {
    font-weight: 400;
}
.outline-wrap dd a.map-link {
    display: block;
    width: 33px;
    text-align: center;
    border: solid 1px #000;
    background: #FFF;
    padding: 1px 5px;
    text-decoration: none;
    color: #000;
    margin: 10px 0 20px;
    line-height: 1.6em;
    font-size: 13px;
}
@media screen and (max-width: 428px) {
.message h3 {
    text-align: center;
    font-size: 6vw;
    margin-bottom: 30px;
}
.outline-wrap dl {
    font-size: 15px;
}
.outline-wrap dt {
    width: 100px;
    box-sizing: border-box;
    display: inline-block;
    font-weight: 500;
    padding-bottom: 5px;
    margin-bottom: 0;
}
.outline-wrap dd {
    width: 100%;
    box-sizing: border-box;
    border-left: none;
    border-top: solid 3px #DB000D;
    padding: 5px 0 0;
    margin-bottom: 20px;
}
}

.basic section.history {
    padding-bottom: 0;
}
.hisotry-wrap {
    position: relative;
    transform:translate3d(0,0,0);
    z-index: 0;
    padding: 50px 0 0;
}
.hisotry-wrap:after {
    width: 3px;
    height: 100%;
    left: 0;
    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: 10px 20px 60px 40px;
    position: relative;
}
.year-box .year {
    position: relative;
    box-sizing: border-box;
    padding: 0 0 0 40px;
    font-family: 'Poppins', sans-serif;
    font-size: 60px;
    font-weight: 600;
    -webkit-text-stroke: 1px #707070;
    color: #FFF;
    line-height: 1em;
    z-index: 1;
}

.year-box .year:before {
    width: 10px;
    height: 10px;
    border: solid 3px #DB000D;
    border-radius: 50%;
    background: #FFF;
    left: -7px;
    top: 22px;
    z-index: 2;
}



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

.business .figure01 {
    margin: 60px 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;
}

@media screen and (max-width: 428px) {
.point ul,
.career ul {
    margin-bottom: 0px;
}
.point ul li,
.career ul li {
    width: 100%;
    margin-bottom: 75px;
}
.point ul li p,
.career ul li p {
    font-size: 15px;
}
}
.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;
}

@media screen and (max-width: 428px) {
.service-main {
    margin-bottom: 50px;
}
.service h4 {
    font-size: 20px;
    padding-bottom: 10px;
    margin-bottom: 10px;
}
.service ul {
    margin: 20px 0 40px;
}
.service ul li {
    width: 48%;
    margin-bottom: 15px;
}
.service .figure01 {
    margin: 20px 0 40px;
}
}



/* 受託実績 */
.basic section.area {
    padding: 30px 0;
}
.basic h2 span {
    font-size: 12px;
    font-weight: 400;
    display: block;
    line-height: 1em;
}
.list-menu {
    width: 100%;
}
.list-menu .content-box {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}
.list-menu .content-box .list-title {
    width: 100%;
    background: #DB000D;
    align-items: center;
}
.list-menu .content-box .list-menu-box {
    width: 100%;
    background: #F5F5F5;
    position: relative;
    padding-bottom: 50px;
}
.list-menu .content-box .list-title p {
    flex: 1;
    color: #FFF;
    font-size: 22px;
    font-weight: 600;
    text-align: center;
    padding: 20px 0;
}
.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: 50%;
    text-align: center;
    line-height: 120px;
    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;
}

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

}
.contract-list {
    margin-bottom: 30px;
}
.contract-list p {
    font-size: 12px;
}
.contract-list ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.contract-list ul li {
    width: 100%;
    box-sizing: border-box;
    padding-left: 20px;
    font-size: 16px;
    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 li span {
    font-size: 13px;
    position: relative;
    top: -5px;
    left: -10px;
}
.contract-list ul li span.mbl {
    margin-left: 20px;
}
.pickup ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.pickup ul li {
    width: 48%;
    margin-bottom: 30px;
}
.pickup ul li img {
    height: 120px;
    object-fit: cover;
}
.pickup ul li p {
    position: relative;
    font-weight: 500;
    padding: 5px 0 0 12px;
    font-size: 14px;
}
.pickup ul li p:before {
    background-image: url("../img/red-arrow.svg");
    width: 6px;
    height: 7px;
    left: 0;
    top: 16px;
}



/* 採用情報 */

h3.h301 {
    font-size: 4vw;
    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: 0px;
    padding-bottom: 0;
}
.personality .content-box {
    position: relative;
    width: 100%;
    max-width: 100%;
    padding-top: 100px;
}
.personality .content-box .image-box {
    width: 100%;
    
}
.personality .content-box .text-box {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    padding: 0 10% 0;
    z-index: 1;
}

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

.environment ul li .image-box img {
    object-fit: cover;
}
.environment ul li .text-box {
    width: 100%;
    box-sizing: border-box;
    padding: 30px 5%;
    background: #FFF;
    position: relative;
    order: 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: 500px;
    width: 92%;
    margin: 0 auto;
}
.interview-menu01 ul li {
    width: 100%;
    overflow: hidden;
    position: relative;
    margin-bottom: 4%;
}
.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;
}

.information h2 {
    text-align: center;
}
.information ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.information ul li {
    width: 100%;
    margin-bottom: 4%;
    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");
}

/* 社員インタビュー */
.h1box .intro {
    color: #000;
    font-size: 14px;
    font-weight: 400;
    padding: 40px 5% 0;
}
/*.h1box .intro {
    color: #000;
    font-size: 16px;
    font-weight: 400;
    padding: 40px 0 0;
}*/
.interview-menu02 ul {
    width: 90%;
    margin: 0 auto 150px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.interview-menu02 ul li  {
    width: 31.33%;
    position: relative;
    cursor: pointer;
    counter-increment: number;
}
.interview-menu02 ul li:before {
    content: "0"counter(number);
    position: absolute;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
    font-size: 34px;
    font-weight: 600;
    color: #000;
    line-height: 1em;
    z-index: 2;
    left: 0;
    top: -15px;
}
.interview-menu02 ul li .image-wrap {
    width: 100%;
    margin-left: 0;
    overflow: hidden;
}
.interview-menu02 ul li .image-wrap .image-box {
    transform: scale(1.01);
    transition: all .4s;
}
.interview-menu02 ul li .text-box {
    position: absolute;
    width: 100%;
    left: 0;
    top: 100%;
    z-index: 2;
    box-sizing: border-box;
    padding: 0 10px 0;
}
.interview-menu02 ul li .text-box:before {
    width: 44px;
    height: 33px;
    background-image: url("../img/red-slash.svg");
    left: 0;
    top: -20px;
    z-index: -1;
}
.interview-menu02 ul li .text-box .p01 {
    font-size: 13px;
}
.interview-menu02 ul li .text-box .p02 {
    font-size: 16px;
    font-weight: 500;
}
@media screen and (max-width: 428px) {

.interview-menu02 ul li .text-box .p01 {
    font-size: 3.1vw;
}
.interview-menu02 ul li .text-box .p02 {
    font-size: 4vw;
    font-weight: 500;
}

}
.interview-block01 {
    padding: 60px 0;
}
.interview-block {
    padding: 60px 0;
}
.interview h3 {
    position: relative;
    font-size: 22px;
    padding-left: 40px;
    margin-bottom: 20px;
    font-weight: 500;
    line-height: 1.6em;
}
@media screen and (max-width: 428px) {
.interview h3 {
    font-size: 5.8vw;
}
}
.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;
    width: 85%;
    top: -80px;
    left: 15%;
    z-index: 2;
    box-sizing: border-box;
    padding: 0 0 0 50px;
    margin-bottom: -20px;
}
.profile .text-box:before {
    width: 170px;
    height: 140px;
    background-image: url("../img/red-slash.svg");
    left: -50px;
    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: -20px;
    top: -20px;
}
.profile .text-box .p01 {
    font-size: 16px;
    line-height: 1.6em;
    padding: 30px 0 0;
}
.profile .text-box .p02 {
    font-size: 24px;
    font-weight: 500;
}
.interview .narrow-box {
    width: 86%;
    margin: 0 auto;
}


/* 個人情報保護について / サイトポリシー */
.privacy .narrow-box {
    width: 86%;
    margin: 0 auto;
}
.basic .h1box h1 .h1mini {
    color: #000;
    font-size: 24px;
    line-height: 1.6em;
}
.basic .privacy h2 {
    font-size: 20px;
    font-weight: 600;
    background: #E2E2E2;
    box-sizing: border-box;
    padding: 0 0 0 15px;
    text-align: left;
}
.basic .privacy h3 {
    font-size: 20px;
    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.2em;
  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: 2em;
    position: relative;
}
.number-list02 > li:before{
  content: "（"counter(number) "）";
  left: -2em;
  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: -70px;
}
#person02 {
    position: absolute;
    top: -70px;
}
#person03 {
    position: absolute;
    top: -70px;
}

.privacy .narrow-box {
    position: relative;
}
#privacy {
    position: absolute;
    top: -70px;
}
#policy {
    position: absolute;
    top: -70px;
}