@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');
/*------------------------------------------------------------
	デフォルトスタイル
------------------------------------------------------------*/
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;
	background: transparent;
	border: 0;
	outline: 0;
	font-size: 1em;
}
html {
	/* font-size: 62.5%; */
}
body, table, input, textarea, select, option {
	font-family: "游ゴシック", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
	display: block;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
:focus {
	outline: 0;
}
ins {
	text-decoration: none;
}
del {
	text-decoration: line-through;
}
img {
	vertical-align: top;
	max-width: 100%;
    height: auto;
}
a,
a:link {
	color: #fff;
	text-decoration: none;
}
a:visited {
	color: #fff;
}
a:hover {
	color: #fff;
}
a:active {
	color: #fff;
}



.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
/*------------------------------------------------------------
	レイアウト
------------------------------------------------------------*/
body {
	/* min-width: 1280px; */
	font-size: 1.8rem;
    color: white;
	line-height: 1.5;
	text-size-adjust: none;
	-webkit-text-size-adjust: none;
    background-color: #000000;
}
#container {
	text-align: left;
     font-feature-settings: "palt";
    -moz-font-feature-settings: "palt";
}
#main {
    min-height: calc(100vh - 357px);
    padding-top: 54px;
    display: block;
    padding-bottom: 150px;
    background-color: #000000;
}
a[href^="tel:"] {
	cursor: default;
	pointer-events: none;
}
@media all and (min-width: 897px) {
	.sp {
		display: none !important;
	}
    .menuBox {
        display: none !important;
    }
}
@media all and (max-width: 896px) {
	body {
		min-width: inherit;
		font-size: 1.4rem;
	}
    body.fixed {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
	a:hover,
	a:hover img {
		opacity: 1 !important;
	}
	.pc {
		display: none !important;
	}
	a[href^="tel:"] {
		cursor: pointer;
		pointer-events: auto;
	}
    #main {
        min-height: calc(100vh - 181px);
        padding-top: 40px;
    }
}
/*------------------------------------------------------------
	ヘッダー
------------------------------------------------------------*/
#index #gHeader {
    min-width: auto !important;
}
#gHeader {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    min-width: 1280px;
}
.h-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    background-color: #000000;
}
.h-inner h1 {
    padding-left: 32px;
    font-size: 1.9rem;
    font-weight: bold;
}
.h-inner a {
    color: white;
}
.h-box {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
.h-box a:hover {
    opacity: 0.7;
}
.header-list {
    padding-right: 20px;
    display: flex;
}
.header-list li {
    margin-left: 18px;
}
.header-list a {
    font-size: 1.3rem;
    font-weight: bold;
}
.header-ul {
    display: flex;
    flex-wrap: wrap;
}
.header-ul li {
    width: 129px;
}
.header-ul a {
    display: block;
    padding: 18px 10px 17px;
    font-size: 1.3rem;
    text-align: center;
    font-weight: bold;
    background-color: #527AF3;
}
.header-ul .item--deep a {
    background-color: #033FF3;
}
@media all and (max-width: 896px) {
	#gHeader {
        position: fixed;
        min-width: auto;
	}
    .h-box {
        display: none;
    }
    .h-inner {
        height: 40px;
        box-sizing: border-box;
        padding: 5px 0 6px;
        position: relative;
    }
    .h-inner h1 {
        padding-left: 10px;
    }
    .menu {
		position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: 10px;
		height: 17px;
		width: 20px;
		cursor: pointer;
		z-index: 100;
		transition: opacity .25s ease;
		-webkit-transition: all .3s ease;
		transition: all .3s ease;
	}
	.menu.active .top {
		-webkit-transform: translateY(7px) translateX(0) rotate(45deg);
		-ms-transform: translateY(7px) translateX(0) rotate(45deg);
		transform: translateY(7px) translateX(0) rotate(45deg);
	}
	.menu.active .middle {
		opacity: 0;
	}
	.menu.active .bottom {
		-webkit-transform: translateY(-7px) translateX(0) rotate(-45deg);
		-ms-transform: translateY(-7px) translateX(0) rotate(-45deg);
		transform: translateY(-7px) translateX(0) rotate(-45deg);
	}
	.menu span {
		background: #fff;
		border: none;
		height: 1px;
		width: 100%;
		position: absolute;
		top: 0;
		left: 0;
		-webkit-transition: all .35s ease;
		transition: all .35s ease;
		cursor: pointer;
	}
	.menu span:nth-of-type(2) {
		top: 7px;
	}
	.menu span:nth-of-type(3) {
		top: 14px;
	}
    .menuBox {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        overflow-y: auto;
        z-index: 990;
        background-color: black;
    }
    .menuBox .naviUl {
        margin: 40px 0;
        border-top: 1px solid #fff;
    }
    .menuBox .naviUl a {
        display: block;
        font-size: 1.4rem;
        color: white;
        padding: 10px 10px;
        border-bottom: 1px solid #fff;
    }
}
/*------------------------------------------------------------
	フッター
------------------------------------------------------------*/
#gFooter {
    position: relative;
    z-index: 10;
    background-color: #000000;
}
#index #gFooter {
    padding-top: 30px;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}
#index #gFooter .link-ul {
    margin-bottom: 0;
}
#gFooter address {
    font-size: 1.4rem;
    color: white;
    font-style: normal;
    text-align: center;
    padding: 20px;
}
#gFooter .link-ul {
    display: flex;
    justify-content: center;
    margin-bottom: 10px;
}
#gFooter .link-ul li {
    margin: 0 10px;
}
#gFooter .link-ul li a:hover {
    opacity: 0.7;
}
@media all and (max-width: 896px) {
}

/*------------------------------------------------------------
	汎用スタイル
------------------------------------------------------------*/
/* clearfix */	
.clearfix:after {content: "";display: block;clear: both;}
/* flex */	
.flex,.flexA,.flexB,.flexC {display: flex;flex-wrap: wrap;}
.flexA {justify-content: space-around;}
.flexB {justify-content: space-between;}
.flexC {justify-content: center;}
/*------------------------------------------------------------
	main-img
------------------------------------------------------------*/
.main-img {
    margin-bottom: 105px;
    height: 317px;	/*- height: 417px; -*/
    display: flex;
    align-items: center;
    justify-content: center;
    background: url("./img/news/main_img3.jpg") no-repeat center center;
    background-size: cover;
}
.main-img .sub {
    padding: 14px 20px 0;
    box-sizing: border-box;
    width: 100%;
    color: white;
    text-align: center;
}
.main-img h2 {
    font-size: 2.5rem;
    font-weight: bold;
	line-height: 1.5;
}
.main-img .date {
    margin-top: 22px;
    font-size: 1.8rem;
    font-weight: bold;
}
@media all and (max-width: 896px) {
    .main-img {
        margin-bottom: 40px;
        height: 200px;
    }
    .main-img h2 {
        font-size: 1.4rem;
		line-height: 1.2;
    }
    .main-img .date {
        font-size: 1rem;
    }
}

/*------------------------------------------------------------
	main-img02
------------------------------------------------------------*/
.main-img02 {
    margin-top: -52px;
    height: 726px;
    background-image: url("./img/recruit/main_img.jpg");
}
.main-img02 h2 {
    font-size: 4.8rem;
    line-height: 1.8;
}
.main-img02 h2 .txt-span {
    padding-top: 15px;
    display: block;
    font-size: 2.4rem;
    font-weight: normal;
}

@media all and (max-width: 896px) {
    .main-img02 {
        padding: 0 10px;
        height: 300px;
    }
    .main-img02 h2 {
        font-size: 1.7rem !important;
        line-height: 1.5;
    }
    .main-img02 h2 .txt-span {
        font-size: 1.5rem;
    }
}




/*------------------------------------------------------------
	content
------------------------------------------------------------*/
.content {
    margin: 0 auto;
    max-width: 800px;
    padding: 0 20px;
}
.main-conts {
    max-width: 1425px;
    margin: 0 auto;
    padding: 0 20px;
}

@media all and (max-width: 896px) {
    .main-conts {
        padding: 0 10px;
    }
    .content {
        max-width: inherit;
    }
}

/*------------------------------------------------------------
	headline01
------------------------------------------------------------*/
.headline01 {
    margin-bottom: 110px;
    padding-bottom: 15px;
    font-size: 2.4rem;
    position: relative;
    text-align: center;
}
.headline01:after {
	width: 34px;  
	height: 2px;
    background-color: currentColor;
	position: absolute;  
	bottom: 0;
	left: 50%;
    transform: translateX(-50%);
	content: ""; 
}

@media all and (max-width: 896px) {
    .headline01 {
        margin-bottom: 40px !important;
    }
}

/*------------------------------------------------------------
	headline02
------------------------------------------------------------*/
.headline02 {
    margin-bottom: 55px;
    padding: 5px 0 15px;
    text-align: center;
    font-size: 2.4rem;
    position: relative;
}
.headline02:after {
	width: 34px;  
	height: 2px;
    background-color: #fff;
	position: absolute;  
	bottom: 0;
	left: 50%;
    transform: translateX(-50%);
	content: ""; 
}

@media all and (max-width: 896px) {
}

/*------------------------------------------------------------
	headline03
------------------------------------------------------------*/
.headline03 {
    margin-bottom: 55px;
    text-align: center;
    font-size: 4rem;
}
@media all and (max-width: 896px) {
    .headline03 {
        margin-bottom: 40px;
        font-size: 3rem;
    }
}

/*------------------------------------------------------------
	news
------------------------------------------------------------*/
.news .content02 {
    max-width: 940px;
    margin: 0 auto;
    padding: 64px 20px 0;
}
.detail-box h3 {
    margin-bottom: 37px;
    font-size: 3.2rem;
    line-height: 1.34;
}
.detail-box .headline02 {
    font-size: 2.4rem;
    color: #fff;
    line-height: 1.5;
}
.detail-box .headline02::after {
    background-color: white;
}
.detail-box h3 .txt-span {
    display: block;
    font-size: 1.8rem;
    margin-bottom: 35px;
}
.detail-box .photo {
    text-align: center;
    margin-bottom: 50px;
}
.detail-box p {
    margin-bottom: 56px;
    font-weight: bold;
    line-height: 1.944;
}
.news .new-dl {
    margin-top: 68px;
}
@media all and (max-width: 896px) {
    .news h3 {
        font-size: 2.5rem;
    }
    .news .photo {
        text-align: center;
    }
    .detail-box p {
        margin-bottom: 40px;
    }
}

/*------------------------------------------------------------
	index
------------------------------------------------------------*/
.index {
    margin: -55px 0 -80px;
}
.index .section {
	position: relative;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	transition: 0.7s cubic-bezier(0.165, 0.84, 0.44, 1);
	text-align: left;
	overflow: hidden;
}
.index .section.transition {
	transform: scale(0.7);
}

.index .winh {
	display: flex;
	height: 100vh;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}
.index .sec01 .movie {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.index .sec01 .movie img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    left: 0;
    top: 0;
    position: absolute;
}
.index .sec01 .videoBox {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	overflow: hidden;
}
.index .sec01 .videoBox video,
.index .sec01 .movieBox {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 100%;
	height: 100%;
	transform: translate(-50%,-50%);
}
.index .sec01 .inner-box {
    padding: 0 10px 37px;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 1;
}
.index .sec01 h2 {
    text-align: center;
    font-size: 6rem;
    color: white;
     font-feature-settings: "palt";
    -moz-font-feature-settings: "palt";
}
.index .sec01 h2 .txt-span {
    margin-top: 25px;
    display: block;
    font-size: 2.4rem;
    font-weight: normal;
}
.scroll {
    position: absolute;
    bottom: 17px;
    left: 0;
    width: 100%;
    text-align: center;
    z-index: 10;
}
.scroll a {
    padding-bottom: 28px;
    display: inline-block;
    font-size: 1.3rem;
    font-weight: bold;
    color: white;
    background: url("./img/common/icon01.png") no-repeat center bottom;
    background-size: 35px auto;
}
.scroll02 a {
    background-image: url("./img/common/icon01.png");
}
.scroll a:hover {
    opacity: 0.7;
}
.index .sec02 {
    align-items: center;
    justify-content: center;
    position: relative;
    color: white;
    background: url("./img/index/photo02.jpg") no-repeat center center;
    background-size: cover;
}
/* .index .sec02:after {
	width: 100%;  
	height: 100%;
    background: rgba(0, 0, 0, 0.7);
	position: absolute;  
	top: 0;
	right: 0;  
	content: ""; 
} */
.index .main-conts {
    padding: 40px 20px;
}
.index .sec02 .main-conts {
    max-width: 1375px;
    position: relative;
    z-index: 10;
}
.index .sec02 .inner-box {
    padding: 48px 0;
    width: 100%;
    min-height: 500px;
}
.index .sec02 .list {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 25px;
}
.index .sec02 .list li {
    background: rgba(255, 255, 255, 0.9);
    padding: 37px 5px 10px;
    box-sizing: border-box;
    font-size:  2.2rem;
    text-align: center;
    color: #000000;
}
.index .sec02 .list li .sub-span {
    display: block;
}
.index .sec02 .list li .txt-span {
    display: block;
    font-weight: bold;
    margin: 18px 0 0;
}
.index .sec02 .list li .num {
    margin-bottom: 17px;
    font-size: 5.9rem;
    display: block;
    line-height: 1;
}
.index .sec02 .list li small {
    display: block;
    font-size: 1.8rem;
    margin-top: 10px;
}
.index .sec03 {
    height: 726px;
    align-items: center;
    justify-content: center;
    position: relative;
}
.index .sec03 .inner-box {
    padding: 48px 0;
    width: 100%;
}
.index .sec03 .headline01 {
    margin-bottom: 49px;
}
.com-list {
    margin: 0 -2%;
    display: flex;
    flex-wrap: wrap;
}
.com-list li {
    width: calc((100% / 4) - 4%);
    margin: 0 2%;
}
.com-list .slick-list {
    margin: 0 -37px;
}
.com-list .slick-slide > div {
    margin: 0 37px;
}
.com-list li .photo {
    margin-bottom: 27px;
}
.com-list li .photo img {
    width: 100%;
}
.com-list li p {
    margin-bottom: 28px;
    font-weight: bold;
    line-height: 1.3125;
}
.com-list li h3 {
    min-height: 36px;
    margin-bottom: 15px;
    font-size: 2.4rem;
}
.com-link {
    max-width: 100%;
    margin: 0 auto;
    width: 246px;
    background-color: #033FF3;
    border-radius: 50px;
}
.com-link a {
    display: block;
    font-weight: bold;
    color: white;
    text-align: center;
    padding: 17px 10px;
    background-color: #033FF3;
    border-radius: 50px;
}
.com-link a:hover {
    opacity: 0.7;
}
.index .sec04 {
    height: 726px;
    align-items: center;
    justify-content: center;
    position: relative;
}
.index .sec04 .inner-box {
    padding: 70px 0;
    width: 100%;
}
.index .sec04 .content {
    max-width: 940px;
}
.index .sec04 .headline01 {
    margin-bottom: 69px;
}
.new-dl {
    margin-bottom: 44px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px solid #CCCCCC;
}
.new-dl dt {
    width: 130px; /* 110px */
    padding: 17px 10px 17px 0; /* 17px 10px 17px 0 */
    font-size: 1.4rem; /* 1.4rem */
    box-sizing: border-box;
    border-bottom: 1px solid #CCCCCC;
}
.new-dl dd {
    padding: 17px 0;
    width: calc(100% - 130px); /* 110px */
    font-size: 1.4rem;
    border-bottom: 1px solid #CCCCCC;
}
.new-dl dd a:hover {
    opacity: 0.7;
}
.index .sec05 {
    height: 726px;
    position: relative;
    background: url("./img/index/photo10.jpg") no-repeat center center;
    background-size: cover;
}
.index .sec05 .inner-box {
    padding: 48px 0 100px;
    width: 100%;
}
.index .sec05 .headline01 {
    color: white;
}
.index .sec05 h3 {
    padding-top: 50px;
    margin-bottom: 137px;
    color: white;
    text-align: center;
    font-size: 4.8rem;
    line-height: 1.8;
    font-feature-settings: "palt";
    -moz-font-feature-settings: "palt";
}
#index {
    min-width: inherit;
}
.index {
    margin: 0;
}
#index #main {
    padding-top: 0;
    min-height: 100vh;
}


@media all and (max-width: 896px) {
    .index .sec05,
    .index .sec03,
    .index .sec02,
    .index .sec01 {
        height: auto;
    }
    .index .sec01 h2 {
        font-size: 3rem;
    }
    .index .sec01 h2 .txt-span {
        font-size: 1.8rem;
    }
    .index .sec02 .main-conts{
        max-width: 74%;
    }
    .index .sec02 .list {
        grid-template-columns: repeat(2, 1fr);
        gap: 19px 37px;
        margin: 0 0 40px;
    }
    .index .sec02 .list li {
        padding: 13px 5px 5px;
        font-size: 1.1rem;
    }
    .index .sec02 .list li .num {
        font-size: 2.95rem;
        margin-bottom: 7px;
    }
    .index .sec02 .list li .txt-span {
        margin: 11px 0 0;
    }
    .index .sec02 .list li small {
        font-size: 8px;
        margin-top: 10px;
    }
    .index .sec02 .inner-box {
        /*min-height: 800px;*/
    }
    .com-list {
        margin: 0;
        justify-content: space-between;
    }
    .com-list li {
        width: 48%;
        margin: 0 0 20px !important;
    }
    .com-list li .photo {
        margin-bottom: 10px;
    }
    .com-list li h3 {
        margin-bottom: 10px;
        font-size: 1.6rem;
        min-height: auto;
    }
    .com-list li p {
        margin-bottom: 15px;
        font-size: 1.3rem;
    }
    .com-link {
        width: auto;
        max-width: 200px;
    }
    .com-link a {
        padding: 10px;
        font-size: 1.3rem;
    }
    .noSlide {
        margin: 0;
    }
    .noSlide li {
        float: none;
        width: auto;
    }
    .index .sec05 h3 {
        margin-bottom: 40px;
        font-size: 1.9rem;
    }
    #index #main {
        height: 100vh;
        padding-top: 0;
        margin-bottom: 0;
        min-height: inherit;
    }
    .index .sec03 .inner-box,
    .index .sec04 .inner-box,
    .index .sec05 .inner-box {
        padding: 80px 0;
    }
    .index .sec05 .inner-box {
        padding-bottom: 150px;
    }
    .index .main-conts {
        padding: 0 10px;
    }
    .index .section {
        transition: 0.25s cubic-bezier(0.165, 0.84, 0.75, 0.9);
    }
    .index .section.transition {
        transform: scale(0.85);
    }
}

/*------------------------------------------------------------
	privacy
------------------------------------------------------------*/
.privacy .main-img {
    margin-bottom: 85px;
    background-image: url("./img/privacy/main_img.jpg");
}
.privacy p {
    line-height: 1.944;
    margin-bottom: 38px;
    text-align: justify;
    text-justify: inter-ideograph;
}
.privacy p a:hover {
    opacity: 0.7;
}
.privacy h3 {
    margin-bottom: 5px;
     font-feature-settings: "palt";
    -moz-font-feature-settings: "palt";
}
.privacy h4 {
    font-size: 3.2rem;
}
.privacy .table-box {
    margin: 0 0 20px;
}
.privacy table {
    width: 100%;
    border-collapse: collapse;
}
.privacy table th {
    width: 24%;
    color: black;
    text-align: center;
    vertical-align: middle;
    padding: 25px 5px;
    line-height: 1.33;
    border-bottom: 1px solid #DDDDDD;
    border-right: 1px solid #DDDDDD;
    background-color: #F5F5F5;
}
.privacy table td:last-child,
.privacy table th:last-child {
    border-right: none;
}
.privacy table tr:last-child th,
.privacy table tr:last-child td {
    border-bottom: none;
}
.privacy table td {
    width: 80%;
    color: #000000;
    line-height: 1.33;
    padding: 25px 10px 25px 40px;
    text-align: left;
    vertical-align: middle;
    background-color: white;
    border-bottom: 1px solid #DDDDDD;
    border-right: 1px solid #DDDDDD;
}
.privacy table td a:hover {
    opacity: 0.7;
}
.privacy table td a {
    color: black;
}
.privacy .table-box02 table tr:last-child td,
.privacy .table-box02 table tr:last-child th {
    border-bottom: 1px solid #DDDDDD;
}
.privacy .h3Ttl {
    margin-bottom: 68px;
}


@media all and (max-width: 896px) {
    .privacy h4 {
        font-size: 2rem;
    }
    .privacy table th {
        width: 30%;
    }
    .privacy table td {
        padding-left: 10px;
        width: 70%;
    }
    .security p {
        margin-bottom: 20px;
    }
    .privacy .table-box {
        margin-left: 0;
    }
    .privacy .h3Ttl {
        margin-bottom: 30px;
    }
}

/*------------------------------------------------------------
	recruit
------------------------------------------------------------*/
.recruit-list {
    margin-bottom: 90px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.recruit-list li {
    margin-bottom: 17px;
    width: 391px;
    background-color: white;
    box-sizing: border-box;
    padding: 25px 27px 30px;
}
.recruit-list li p {
    color: #686868;
    line-height: 1.3125;
    font-size: 1.6rem;
    font-weight: bold;
}
.recruit-list li h4 {
    margin-bottom: 8px;
    padding-bottom: 12px;
    font-size: 2rem;
    color: #3E3E3E;
    position: relative;
}
.recruit-list li h4:after {
	width: 48px;  
	height: 2px;
    background-color: #033FF3;
	position: absolute;  
	bottom: 0;
	left: 0;  
	content: ""; 
}
.recruit-list li .ttl {
    margin-bottom: 35px;
    font-size: 1.4rem;
    color: #033FF3;
}
.com-table {
    margin-bottom: 85px;
    width: 100%;
    border-collapse: collapse;
}
.com-table:last-child {
    margin-bottom: 0;
}
.com-table th {
    width: 21%;
    color: #000000;
    font-weight: bold;
    text-align: center;
    vertical-align: middle;
    border-bottom: 1px solid #DDDDDD;
    padding: 36px 10px 35px;
    line-height: 1.33;
    background-color: #F5F5F5;
}
.com-table td {
    font-weight: bold;
    color: #000000;
    text-align: left;
    vertical-align: middle;
    line-height: 1.33;
    border-bottom: 1px solid #DDDDDD;
    padding: 36px 10px 35px 27px;
    background-color: white;
}
.com-table tr:last-child th,
.com-table tr:last-child td {
    border-bottom: none;
}
.table-box {
    margin-bottom: 85px;
    padding-top: 13px;
}
.table-box02 {
}
.table-box:last-child {
    margin-bottom: 0;
}

@media all and (max-width: 896px) {
    .recruit-list {
        display: block;
    }
    .recruit-list li {
        width: auto;
        margin-bottom: 30px;
    }
    .com-table th {
        width: 60px;
    }
    .com-table td {
        padding-left: 15px;
    }
}


/*------------------------------------------------------------
	history
------------------------------------------------------------*/

.history .main-img02 {
    background-image: url("./img/history/main_img.jpg");
}
.history .main-img02 h2 {
    font-size: 6rem;
}
.history .table-box {
    padding-top: 0;
}
.history .content{
    max-width: 1280px;
    min-width: 1280px;
    overflow: hidden;
    padding: 0;
}
.history-ul {
    padding-top: 35px;
    position: relative;
}
.history-ul:after {
	width: 2px;  
    background-color: white;
	position: absolute;  
	top: 60px;
    bottom: 60px;
	left: 50%;
    transform: translateX(-50%);
	content: ""; 
}
.history-ul li {
    padding-bottom: 82px;
    text-align: right;
    background-color: black;
    font-size: 2.4rem;
    font-weight: bold;
}
.history-ul li:last-child {
    padding-bottom: 0;
}
.history-ul li:nth-child(2n) {
    text-align: left;
}
.history-ul li .sub {
    width: 50%;
    text-align: center;
    display: inline-block;
    padding-left: 20px;
    position: relative;
    box-sizing: border-box;
}
.history-ul li .sub:after {
	width: 35px;  
	height: 35px;
    background-color: white;
    border-radius: 100%;
	position: absolute;  
	top: 43%;
    transform: translateY(-50%);
	left: -18px;  
	content: ""; 
}
.history-ul li .sub:before {
	width: 195px;  
	height: 4px;
    background-color: white;
	position: absolute;  
	top: 52%;
    transform: translateY(-50%);
	left: 0;  
	content: ""; 
}
.history-ul li:nth-child(2n) .sub:before {
	width: 195px;  
	height: 4px;
    background-color: white;
	position: absolute;  
	top: 55%;
    transform: translateY(-50%);
	right: 0;  
    left: auto;
	content: ""; 
}
.history-ul li:nth-child(2n) .sub:after {
    left: auto;
    right: -18px;
}
.history-ul li:nth-child(2n) {
    text-align: left;
}
.history-ul li:nth-child(2n) .sub {
    padding: 0 140px 0 0;
    box-sizing: border-box;
}
.history-ul li .ttl {
    margin: -85px 0 10px;
    font-size: 5.2rem;
}
.history-ul li .txt-span {
    font-size: 2rem;
}
.history-ul li p {
    line-height: 1.3;
}
.history-ul li .sub-inner {
    margin-right: -60px;
}

@media all and (min-width: 897px) {
    .com-table th {
        padding-top: 28px;
        padding-bottom: 28px;
    }
    .com-table td {
        padding-top: 28px;
        padding-bottom: 28px;
    }
    .history{
        transform: none !important;
    }
    .js-history{
        height: auto !important;
    }
    .page-history #gFooter__content{
        transform: none !important;
    }
}

@media all and (max-width: 896px) {
    .page-history #gFooter__content{
        transform-origin: top left;
        width: 1280px;
    }
    .history{
        width: 1280px;
        transform-origin: top left;
    }
    .history .com-table th {
        width: 70px;
    }
    .history .main-img02{
        margin-top: 0;
    }
    .history .main-img02 h2{
        font-size: 4.8rem !important;
        line-height: 1.8 !important;
    }
    .history .main-img02 h2 .txt-span{
        font-size: 2.4rem !important;
    }
    /* .history-ul::after {
        bottom: 5px;
    } */
    /* .history-ul {
        padding-top: 0;
    }
    .history-ul li {
        margin-bottom: 40px;
        padding-bottom: 40px;
        font-size: 1.8rem;
        position: relative;
        display: inline-block;
        width: 100%;
        background-color: transparent;
        z-index: 1;
        text-align: center !important;
    }
    .history-ul li p {
        background-color: black;
    }
    .history-ul li .txt-span {
        font-size: 1.5rem;
    }
    .history-ul li .sub {
        width: auto !important;
        padding: 0 !important;
    }
    .history-ul li .ttl {
        margin: 0;
        padding-bottom: 10px;
        font-size: 3rem;
    }
    .history-ul li .sub::before {
        display: none;
    }
    .history-ul li .sub::after {
        top: auto;
        width: 10px;
        height: 10px;
        bottom: -45px;
        right: auto !important;
        left: 50% !important;
        transform: translateX(-50%);
    }
    .history-ul li .sub-inner {
        margin: 0;
    } */
}
/*------------------------------------------------------------
	about
------------------------------------------------------------*/
.about .main-img02 {
    background-image: url("./img/about/main_img.jpg");
}
.about .main-img02 h2 {
    font-size: 6rem;
}
.about {
    margin-bottom: -80px;
    padding-bottom: 90px;
}
.about .table-box {
    margin-bottom: 25px;
    padding-top: 0;
}
.about p {
    margin-bottom: 31px;
    line-height: 1.944;
    font-weight: bold;
}
.about h4 {
    font-size: 3.2rem;
    margin-bottom: 32px;
}
.about .txt {
    margin-bottom: 125px;
    text-align: right;
}
.about-ul {
    padding-top: 17px;
    margin: 0 -20px 170px;
    display: flex;
    flex-wrap: wrap;
}
.about-ul li {
    margin: 0 18px 30px;
    width: calc(33.333% - 36px);
}
.about-ul li .photo {
    width: 243px;
    height: 243px;
    overflow: hidden;
    display: flex;
    position: relative;
    margin: 0 auto 13px;
    border-radius: 100%;
}
.about-ul li .photo img {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    object-fit: cover;
}
.about-ul li p {
    text-align: center;
    font-size: 2.4rem;
}
.about-ul li p .txt-span {
    margin-bottom: -3px;
    display: block;
    font-size: 1.6rem;
}
.about .map iframe {
    width: 100%;
    height: 360px;
}



@media all and (max-width: 896px) {
    .about h4 {
        font-size: 2.5rem;
    }
    .about-ul {
        display: block;
    }
    .about-ul li {
        width: auto;
        margin: 0 0 40px;
    }
}

/*------------------------------------------------------------
	service
------------------------------------------------------------*/
.service {
    min-height: calc(100vh - 267px);
    margin-bottom: -80px;
    padding: 40px 0 80px;
}
.service .com-list {
    margin-bottom: 227px;
}
.service .com-list li {
    /* width: 29.9%; */
    margin-bottom: 20px;
}
.service .com-list li:nth-child(3n-1) {
    /* margin-left: 5.15%;
    margin-right: 5.15%; */
}
.service .com-list:last-child {
    margin-bottom: 0;
}
.service .com-list li p {
    font-size: 1.6rem;
    margin-bottom: 55px;
}
.service .detail-box {
    margin: -40px 0 -134px;
}
.service-box {
    display: flex;
    max-width: 1390px;
    margin: 0 auto 131px;
    align-items: center;
    justify-content: space-between;
}
.service-box .photo-box {
    width: 60.8%;
    margin-right: -10px;
}
.service-box .photo-box img {
    width: 100%;
}
.service-box .text-box {
    padding-left: 60px;
    margin-right: -10px;
    flex: 1;
    display: flex;
    justify-content: flex-end
}
.service-box h2 {
    margin: 0 0 40px -314px;
    font-size: 9rem;
    line-height: 1;
    color: white;
    letter-spacing: -0.05em;
}
.service-box h2 span {
    padding: 22px 20px 22px 5px;
    display: inline-block;
    background-color: #033FF3;
}
.service-box .text-box_sub {
    width: 500px;
}
.service-box .text-box_sub p {
    line-height: 1.722;
}
.service .detail-box .photo {
    margin-bottom: 155px;
}
.service .detail-box .main-img {
    margin-bottom: 40px;
    margin-top: -40px;
    height: 628px;
    background-image: url("img/service/detail_main_img.jpg");
}
.flow {
    margin-top: -15px;
}
.flow-sub {
    margin-bottom: 38px;
    padding: 13px 0 45px;
    background: url("./img/service/arrow.png") no-repeat center bottom;
    background-size: 35px auto;
}
.flow-sub:last-child {
    background: none;
    padding-bottom: 0;
    margin-bottom: 0;
}
.flow-sub p {
    line-height: 1.33;
    margin-bottom: 25px;
}
.flow-sub p a {
    color: #3E3E3E;
}
.flow-sub p a:hover {
    opacity: 0.7;
}
.flow-sub h4 {
    margin-bottom: 31px;
}
.flow-sub h4 span {
    display: inline-block;
    font-size: 2.4rem;
    font-weight: bold;
    color: white;
    background-color: #033FF3;
    padding: 11px 15px;
}
.btm-box {
    margin-top: 134px;
    height: 523px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background: url("./img/service/detail_photo03.jpg") no-repeat center center;
    background-size: cover;
}
.btm-box:after {
	width: 100%;  
	height: 100%;
    background: rgba(0, 0, 0, 0.5);
	position: absolute;  
	top: 0;
	left: 0;  
	content: ""; 
}
.btm-box_inner {
    margin-top: -55px;
    width: 100%;
    padding: 0 20px;
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    text-align: center;
}
.btm-box h3 {
    color: white;
    font-size: 4.8rem;
    margin-bottom: 70px;
}
@media all and (max-width: 896px) {
    .service .com-list {
        margin-bottom: 0;
    }
    .service .detail-box {
        padding-top: 40px;
    }
    .service .com-list li {
        width: 49%;
        margin: 0 0 40px !important;
    }
    .service .com-list li p {
        font-size: 1.3rem;
        margin-bottom: 15px;
    }
    .service-box {
        display: block;
        margin: 0 20px 80px;
    }
    .service-box .photo-box {
        width: auto;
        margin: 0 0 40px;
    }
    .service-box .text-box {
        margin: 0;
        padding: 0;
        display: block;
    }
    .service-box h2 {
        font-size: 2.5rem;
        margin: 0 0 20px;
    }
    .service-box h2 span {
        display: block;
        padding: 10px;
    }
    .service-box .text-box_sub {
        width: auto;
    }
    .detail-box h3 {
        margin-bottom: 20px;
        font-size: 2.5rem;
    }
    .detail-box h3 .txt-span {
        margin-bottom: 10px;
    }
    .service .detail-box .photo {
        margin-bottom: 80px;
    }
    .flow-sub h4 span {
        display: block;
        font-size: 2rem;
    }
    .btm-box {
        margin-top: 80px;
        height: 350px;
    }
    
}

/*------------------------------------------------------------
	404
------------------------------------------------------------*/
.page404 .main-img02 {
    margin-bottom: 0;
    background-image: url("./img/404/main_img.jpg");
}
.page404 .main-img02 h2 {
    padding-top: 50px;
    font-size: 20rem;
    line-height: 1;
}
.page404 .main-img02 h2 .txt-span {
    font-size: 3.2rem;
    font-weight: bold;
    padding-top: 60px;
}
@media all and (max-width: 896px) {
    .page404 .main-img02 h2 {
        padding-top: 0;
        font-size: 8rem !important;
    }
    .page404 .main-img02 h2 .txt-span{
        font-size: 2.5rem;
        padding-top: 20px;
    }
}

/*------------------------------------------------------------
	contact
------------------------------------------------------------*/
.contact .main-img {
    margin-bottom: 57px;
    background-image: url("./img/contact/main_img.jpg");
}
.contact h3 {
    margin-bottom: 12px;
}
.check-ul {
    margin-bottom: 70px;
}
.check-ul02 {
    margin-bottom: 50px;
}
.check-ul li {
    font-size: 1.4rem;
    font-weight: bold;
    margin-bottom: 8px;
}
input[type="checkbox"] {
    display: none;
	padding: 0;
	height: 21px;
	width: 21px;
	vertical-align: middle;
}
input[type="checkbox"] + span {
    background: url("./img/common/check01.png") no-repeat left center;
    background-size: 21px auto;
    display: inline-block;
    line-height: 21px;
    padding: 4px 0 4px 28px;
    min-height: 21px;
    vertical-align: middle;
}
input[type="checkbox"]:checked + span {
    background-image: url("./img/common/check02.png");
}
input[type="url"],
input[type="email"],
input[type="tel"],
input[type="text"] {
    appearance:none;
    -moz-appearance:none;
    -webkit-appearance:none;
    border-radius: 6px;
    height: 51px;
    color: #000000;
    border: 1px solid #808080;
    box-sizing: border-box;
    font-size: 1.4rem;
    padding: 0 10px;
    width: 100%;
    background-color: #fff;
}
textarea {
    appearance:none;
    -moz-appearance:none;
    -webkit-appearance:none;
    border-radius: 6px;
    height: 316px;
    color: #000000;
    border: 1px solid #808080;
    box-sizing: border-box;
    font-size: 1.4rem;
    padding: 10px;
    width: 100%;
    resize: vertical;
    background-color: #fff;
}
.contact p {
    margin-bottom: 46px;
}
.contact .checkP {
    margin-bottom: 43px;
    padding-top: 11px;
    text-align: center;
    font-size: 1.4rem;
    font-weight: bold;
}
.contact .checkP a {
    color: white;
    text-decoration: underline;
}
.submit {
    text-align: center;
}
.submit li {
    display: inline-block;
    margin: 0 5px;
}
.submit li input {
    appearance:none;
    -moz-appearance:none;
    -webkit-appearance:none;
    width: 313px;
    height: 50px;
    border-radius: 6px;
    text-align: center;
    cursor: pointer;
    font-size: 1.8rem;
    font-weight: bold;
    color: white;
    border: none;
    background-color: #033FF3;
}
.contact .js-check-box {
	display: none;
}
@media all and (min-width: 897px) {
    .submit li input:hover {
        opacity: 0.7;
    }
    .contact .checkP a:hover {
        text-decoration: none;
    }
}

@media all and (max-width: 896px) {
    .check-ul {
        margin-bottom: 40px;
    }
    input[type="url"], 
    input[type="email"], 
    input[type="tel"], 
    input[type="text"] {
        height: 35px;
    }
    .contact p {
        margin-bottom: 30px;
    }
    textarea {
        height: 200px;
    }
    .submit li {
        display: block;
        margin: 0 0 20px;
    }
    .submit li:last-child {
        margin-bottom: 0;
    }
    .submit li input {
        width: 100%;
        max-width: 300px;
    }
}
.error {
    display: block;
    color: #F00;
    font-size: 1.5rem;
    font-weight: bold;
}
.confirm .u-mt30 {
    margin-top: 30px;
}
.confirm .submit {
    margin-top: 43px;
}

/*------------------------------------------------------------
	thanks
------------------------------------------------------------*/

.thanks p {
    font-size: 2.4rem;
    letter-spacing: -0.1rem;
    margin-bottom: 25px;
}

@media all and (max-width: 896px) {
    .thanks p {
        font-size: 2rem;
        margin-bottom: 18px;
    }
}



@media all and (-ms-high-contrast:none){
    body, table, input, textarea, select, option {
        font-family: 'Noto Sans JP', sans-serif;
    }
}

.fp-tableCell {
    position: relative;
    z-index: 10;
}

@media all and (min-width: 897px) and (max-width: 1400px) {
    .index .sec02 .list li {
        font-size: 1.8rem;
    }
    .index .sec02 .list li .num {
        font-size: 3.8vw;
    }
    .index .sec02 .list li small {
        font-size: 1.6rem;
    }
}

 /*------------------------------------------------------------
	js-object-fit
------------------------------------------------------------*/
.js-object-fit img {
    -o-object-fit: cover;
    object-fit: cover;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
@media all and (-ms-high-contrast: none) {
    .js-object-fit img {
        opacity: 0;
    }
}
.ie-object-fit {
    position: relative;
    background-size: cover;
    background-position: center center;
}
.ie-object-fit img {
    opacity: 0;
}

.service .detail-box .main-img .sub {
    text-align: center;
}
.service .detail-box .main-img .sub-box {
    width: 800px;
    margin: 0 auto;
    display: inline-block;
    text-align: left;
    padding-left: 300px;
}
.service .detail-box .main-img h2 {
    font-size: 9rem;
}
.service .detail-box .main-img p {
    line-height: 1.72;
    max-width: 510px;
}
#main.black .headline02 {
    color: white;
}
#main.black .headline02::after {
    background-color: white;
}

@media all and (max-width: 896px) {
    .service .detail-box .main-img {
        height: 300px;
    }
    .service .detail-box .main-img .sub-box {
        width: auto;
        padding: 0;
    }
    .service .detail-box .main-img h2{
        margin-bottom: 20px;
        font-size: 2.5rem !important
    }
    .service .detail-box .main-img p {
        max-width: inherit;
    }
}

/********** ここから追加 **********/
html {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
	
	height: 100%;
	margin: 0;
}


.wrap {
    margin-left: auto;
    margin-right: auto;
    max-width: 1000px;
    padding-left: 2em;
    padding-right: 2em;
}

.wrap:after {
    clear: both;
    content: "";
    display: block;
}

body {
	font-family: "M PLUS 1p", sans-serif;
	font-size: 16px;
	text-align: justify;
	line-height: 1.5;
	
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.wrap {
	flex: 1;
}

h1 {
	font-family: "M PLUS 1p", sans-serif;
	font-size: 1.3rem;
	text-align: justify;
	line-height: 1.3;
}

.main {
	margin-top: 50px;
	margin-bottom: 50px;
}
/********** navi**********/
.navi-pc-links {
	height: 50px;
	display: flex;
	align-items: center;
	padding: 0 20px;
	color: #dddddd;
	font-size: 0.7rem;
	font-weight: 400;
}
.navi-pc-links a:link{ color: #dddddd; }
.navi-pc-links a:visited { color: #dddddd; }
.navi-pc-links a:hover { color: #ffffff; }
.navi-pc-links a:active { color: #ffffff; }
.navi-wrapper {
	display: flex;
	justify-content: space-between;
	width: 100%;
}
.navi {
	width: 100%;
	height: 50px;
	margin: 0 auto;  
	display: flex;
	align-items: center;
	
	position: fixed;
	top: 0;
	z-index: 100;
	background-color: rgba(0,0,0,0.9);
}

.navi-logo {
	height: 50px;
	display: flex;
	align-items: center;
	padding: 0 10px;
	
	font-family: serif;
	color: #999999;
}
.navi-logo h1{
	font-size: 1.3rem;
}
.navi-logo-title {
	font-family: serif;
	font-size: 1.3rem;
	color: #999999;
}

.navi-right {
	margin-right: auto;
	display: flex;
	align-items: center;
	gap: 0;
	margin-right: 70px;
}
.navi-right-pc {
	margin-right: 0px;
}

.navi-recruit, .navi-access {
	width: 100px;
	height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #ffffff;
	font-weight: 400;
	font-size: 0.9rem;
}
.navi-recruit {
	background-color: #660000;
}
.navi-access {
	background-color: #000000;
}
/********** navi**********/