@charset "utf-8";
/* CSS Document */

/*
文字赤 #cb1818
背景赤 #ce2424
*/

/*==================================
	base
==================================*/
* { box-sizing: border-box;}
html { height: 100%; width: 100%; font-size: 62.5%;/* 10px */}
body { font-family: YakuHanJP, "Zen Kaku Gothic New", sans-serif; font-weight: 500; font-style: normal; font-size:1.6rem; line-height: 1.5; letter-spacing: 0.02em; color:#222; height: 100%; width: 100%;}
section { position: relative; z-index: 1;}
h1,h2,h3,h4,h5,ul,li,dl,dt,dd,p { font-weight: 500;}
@media screen and (min-width: 750px) {
.spOnly { display: none;}
}
@media screen and (max-width: 749px) {
body { font-size: 1.4rem; min-width: 100%;}
img { width: 100%;}
.pcOnly { display: none;}
}


/*==================================
	parts
==================================*/
/* block */
.wrapper { position: relative; height: 100%; width: 100%;}
#contents { position: relative;}
.disIB { display: inline-block;}
.disB { display: block;}

.outer { max-width: 1320px; width: 100%; margin: 0 auto;}
.inner { max-width: 1100px; width: 100%; margin: 0 auto;}
@media screen and (max-width: 1400px) {
.outer { width: 87.73%;}
}
@media screen and (max-width: 1180px) {
.inner { width: 87.73%;}
.outer .inner { width: 80%;}
}

/* link */
a { color: #000; text-decoration: none;display: block;}
a:hover { text-decoration: none;}
.faxnum { pointer-events: none;}
.blankLink a { padding-right: 18px; background: url("/lib/img/icon_arr_blank.svg") right center no-repeat; background-size: 9px 9px;}
@media screen and (min-width: 750px) {
.telnum,
a[href^="tel:"] { pointer-events: none;}
}

/* font */
.en { font-family: "Jost", sans-serif; font-optical-sizing: auto; font-weight: 500; font-style: normal;}
.taC { text-align: center;}
.taL { text-align: left;}
.taR { text-align: right;}
.fwR { font-weight: 400;}
.fwB { font-weight: 700;}
.fwSB.en { font-weight: 600;}
.fwB.en { font-weight: 700;}
.fwN { font-weight: 400;}

/* floating */
.floating { position: fixed; z-index: 18; right: 0; top: 83vh;}
.floating a { padding: 20px 40px 20px 25px; border-radius: 5px 0 0 5px; box-shadow: 0px 0px 8px -5px #777777; background: url("/lib/img/icon_arr_blank_red.svg") right 15px center no-repeat; background-size: 10px 10px; background-color: #fff; cursor: pointer;}
.floating .txtArea { padding-right: 40px; border-right: solid 1px #ebebeb;}
.floating .txtArea .en { font-size: 24px; color: #cb1818; line-height: 1;}
.floating .txtArea .txt { font-size: 11px; font-weight: 400;}
@media screen and (max-width: 899px) {
.floating a { padding: 12px 12px 28px 12px; text-align: center; background-position:  bottom 12px center;}
.floating .txtArea { padding-right: 0; border-right: 0;}
.floating .txtArea .en { font-size: 18px;}
.floating .txtArea .txt { font-size: 8px;}
}

/* modal */
.modalBtn { cursor: pointer;}
body.modalOpen{ overflow:hidden;}
.modalOverlay { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,.7); z-index:1000; cursor:pointer;}
.recruitEntry{ padding: 100px 30px; max-width: 1100px; width:90%; max-height:80vh; border-radius: 12px; display:none; position:fixed; top:50%; left:50%; transform:translate(-50%, -50%); z-index:1001; background:#fff;/* overflow-y:auto;*/}
.recruitEntry .closeBtn { top: -50px; right: 0; position:absolute; cursor:pointer;}
.recruitEntry .closeBtn img { width: 34px; height: 34px;}
.recruitEntry .tit { font-size: 3.8rem; text-align: center; font-weight: 700;}
.recruitEntry .list { margin-top: 50px; display: flex; justify-content: center; flex-wrap: wrap;}
.recruitEntry .list li { min-width: 300px; margin: 0 15px 15px 15px;}
.recruitEntry .list li a { font-size: 1.8rem; padding: 20px 35px; color: #fff; background: url("/lib/img/icon_arr_blank.svg") right 20px center no-repeat; background-color: #cb1818; font-weight: 700; background-size: 10px 10px; border-radius: 40px;}
@media screen and (max-width: 899px) {
.recruitEntry{ padding: 50px 30px;}
.recruitEntry .tit { font-size: 2.2rem;}
.recruitEntry .list { margin-top: 30px;}
.recruitEntry .list li a { font-size: 1.5rem;}
}

/* 404 */
section.page-404 { padding: 300px 0; text-align: center;}
section.page-404 .btn { margin-top: 30px;}
section.page-404 .btn a { border-bottom: solid 1px #222; display: inline-block;}
@media screen and (max-width: 899px) {
section.page-404 { padding: 200px 0 150px 0;}
}

/*==================================
	header
==================================*/
header {z-index: 50; width: 100%;}
header .hd_logo { top: 30px; left: 50px; width: 150px; z-index: 10; position: relative;}
header .hd_logo a { font-size: 9px; height: 58px; padding-top: 25px; color: #cb1818; font-family: "Jost", sans-serif; font-optical-sizing: auto; font-weight: 500; font-style: normal; background: url("/lib/img/logo.png") left top no-repeat; background-size: 58px 58px; text-align: right; letter-spacing: 0.08em;}
header #navArea nav .hdNav li.line .megamenu dt { cursor: pointer;}
header #navArea nav .hdNav li.line .megamenu dd { display: none;}

@media screen and (min-width: 1220px) {
header { position: fixed; transition: all 0.3s ease;}
header.hdFloat { transform: translateY(0);}
header:not(.hdFloat) { transform: translateY(-10px);}
header #navArea { position: fixed; top: 60px; right: 50px; z-index: 10;}
header .hd_logo { width: 175px;}
header .hd_logo a { font-size: 10px; height: 85px; padding-top: 35px; background-size: 70px 70px; background-position: left center;}
header #navArea nav { font-size: 15px; display: flex;}
header #navArea nav .hdNav_logo_sp { display: none;}
header #navArea nav .hdNav { display: flex;}
header #navArea nav .hdNav li { margin: 0 10px;}
header #navArea nav .hdNav li.entry { display: none;}
header #navArea nav .hdNav li.line {}
header #navArea nav .hdNav li.btn { font-size: 13px;}
header #navArea nav .hdNav li.btn a { padding: 10px 20px; border-radius: 20px; border: solid 1px #222; text-align: center;}
header #navArea nav .hdNav li.btn.bk { margin: -10px 0 0 8px;}
header #navArea nav .hdNav li.btn.wh { margin: -10px 0 0 8px;}
header #navArea nav .hdNav li.btn.bk a { background: #222; color: #fff;}
header.hdFloat { height: 96px; width: 94%; top: 30px; margin: 0 3%; border-radius: 96px; background: #fff; box-shadow: 0px 0px 8px -5px #777777;}	
header #navArea nav .hdNav li.line .megamenu { position: relative;}
header #navArea nav .hdNav li.line .megamenu dt { padding-right: 12px; background: url("/lib/img/icon_plus.svg") right center no-repeat; background-size: 7px 7px;}
header #navArea nav .hdNav li.line .megamenu dd { margin-top: 40px; padding: 30px; border-radius: 8px; position: absolute; background: #fff; box-shadow: 0px 0px 11.31px 1.69px rgba(74, 74, 74, 0.05);}
header #navArea nav .hdNav li.line .megamenu dd { margin-top: 40px;}
header #navArea nav .hdNav li.line .megamenu dd.item01 { width: 870px; left: -435px;}
header #navArea nav .hdNav li.line .megamenu dd.item02 { width: 460px; left: -230px;}
header #navArea nav .hdNav li.line .megamenu dd .tit { font-size: 2.2rem; margin-bottom: 15px;}
header #navArea nav .hdNav li.line .megamenu dd .item { display: flex; justify-content: space-between;}
header #navArea nav .hdNav li.line .megamenu dd .item p { width: 190px;}
	
header.hdFloat #navArea { top: 35px; right: 3%; position: fixed; z-index: 10;}
header.hdFloat .hd_logo { top: 5px; left: 5%; width: 170px;}
header.hdFloat .hd_logo a { background-size: 65px 65px;}
header.hdFloat #navArea nav .hdNav li.line .megamenu dd { margin-top: 60px;}
}
@media screen and (min-width: 1400px) {
header .hd_logo { width: 215px; position: fixed;}
header .hd_logo a { font-size: 1.2rem; background-size: 85px 85px;}
header #navArea nav .hdNav li { margin: 0 15px;}
header.hdFloat .hd_logo { width: 190px;}
}

@media screen and (max-width: 1219px) {
header { height: 0;}
header .hd_logo { top: 20px; left: 20px;}
header nav { position: fixed; top: -100vh; width: 100%; height: 100vh; padding: 0; text-align: center; display: block; background: #fff; overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; transition: all .5s; z-index: 20; opacity: 0;}
header nav:before { height: 150px; width: 100%; background: #f4f4f4; content: ""; position: absolute; top: 0; left: 0;}
header #navArea nav .hdNav_logo_sp { top: 20px; left: 20px; width: 150px; z-index: 10; position: relative;}
header #navArea nav .hdNav_logo_sp a { font-size: .9rem; height: 58px; padding-top: 25px; color: #cb1818; font-family: "Jost", sans-serif; font-optical-sizing: auto; font-weight: 500; font-style: normal; background: url("/lib/img/logo_wh.png") left top no-repeat; background-size: 58px 58px; text-align: right; letter-spacing: 0.08em;}
header #navArea nav .hdNav { padding: 50px 6%; border-radius: 15px; position: relative; z-index: 10; left: 0; top: 40px; background: #fff;}
header #navArea nav .hdNav li a { font-size: 1.6rem; text-align: left; display: block; font-weight: 700; background: url("/lib/img/icon_simplearrR_red.svg") right 15px center no-repeat;background-size: 6px 10px;}
header #navArea nav .hdNav li.line { border-bottom: solid 1px #e6e6e6;}
header #navArea nav .hdNav li.line a { padding: 20px 20px 20px 0; color: #cb1818;}
header #navArea nav .hdNav li.btn.spOnly { display: block;}
header #navArea nav .hdNav li.btn { margin: 10px 4.5% 0 4.5%;}
header #navArea nav .hdNav li.btn a { font-size: 1.5rem; padding: 20px 25px; border-radius: 10px; color: #fff; background: url("/lib/img/icon_arrR_wh.svg") right 20px center no-repeat; background-size: 13px 13px; background-color: #cb1818;}
header #navArea nav .hdNav li.mt { margin-top: 50px;}
header #navArea nav .hdNav li.line .megamenu {}
header #navArea nav .hdNav li.line .megamenu dt { font-size: 1.6rem; padding: 20px 0; color: #cb1818; text-align: left; font-weight: 700; position: relative;}
header #navArea nav .hdNav li.line .megamenu dt:after { width: 6px; height: 10px; content: ""; background: url("/lib/img/icon_simplearrR_red.svg") no-repeat; background-size: 6px 10px; display: inline-block; position: absolute; right: 15px; top: 25px; transform: rotate(90deg);}
header #navArea nav .hdNav li.line .megamenu.open dt:after {transform: rotate(-0.25turn);}
header #navArea nav .hdNav li.line .megamenu dd:nth-last-child(1) { margin-bottom: 10px;}
header #navArea nav .hdNav li.line .megamenu dd .tit { display: none;}
header #navArea nav .hdNav li.line .megamenu dd img { display: none;}
header #navArea nav .hdNav li.line .megamenu dd p { font-size: 1.4rem;}
header #navArea nav .hdNav li.line .megamenu dd p a { padding: 10px 0; background: none;}
header #navArea nav .hdNav li.line .megamenu dd p a:before { content: ""; width: 10px; height: 2px; background: #cb1818; display: inline-block; margin: 0 10px 0 5px; margin-bottom: 5px;}
header .toggle_btn { display: block; position: fixed; top: 15px; right: 20px; width: 50px; height: 50px; padding: 15px; border-radius: 50px; transition: all .5s; cursor: pointer; z-index: 20; background: #222;}
header .toggle_btn span { display: block; position: absolute; right: 0; left: 0; margin: auto; width: 20px; height: 2px; background-color: #fff; transition: all .5s;}
header .toggle_btn span:nth-child(1) { top: 18px;}
header .toggle_btn span:nth-child(2) { top: 24px;}
header .toggle_btn span:nth-child(3) { bottom: 18px;}
header #mask { display: none; transition: all .5s;}
/* open */
.open { overflow: hidden;}
.open header nav { right: 0; opacity: 1;}
.open header .toggle_btn span { background-color: #fff;}
.open header .toggle_btn span:nth-child(1) { top: 16px; -webkit-transform: translateY(7px) rotate(-315deg); transform: translateY(7px) rotate(-315deg);}
.open header .toggle_btn span:nth-child(2) { opacity: 0;}
.open header .toggle_btn span:nth-child(3) { bottom: 17px; -webkit-transform: translateY(-8px) rotate(315deg); transform: translateY(-8px) rotate(315deg);}
.open header #mask { display: block; position: fixed; top: 0; right: 0; width: 100%; height: 100%; background: #000; opacity: .3; z-index: 15; cursor: pointer;}
/* menu move keyframes */
header nav { animation: SlideOut 1.4s; top: -100vh; transition: all 0.6s;}
.open header nav { animation: SlideIn .4s; top: 0; transition: all 0.6s;}
}

@keyframes SlideIn {
0% { opacity: 0;transform: translateY(-100%);}
100% { opacity: 1;transform: translateY(0); }
}
@keyframes SlideOut {
0% { opacity: 1;transform: translateY(0);}
100% { opacity: 0;transform: translateY(-100%);}
}


/*==================================
	entry
==================================*/
#entry { padding: 150px 0; margin: -30px 0 -30px 0; border-radius: 24px; color: #fff; background: url("/lib/img/entry_bg.gif") center center no-repeat; background-color: #cb1818; position: relative; z-index: 5;}
#entry .secTit { text-align: center;}
#entry .secTit .en { font-size: 91px; letter-spacing: 0.05em; font-weight: 400; line-height: 1.2;}
#entry .secTit .jp {font-size: 18px;}
#entry .list { 	margin-top: 40px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 320px)); gap: 15px; justify-content: center;}
#entry .list.row2 { grid-template-columns: 1fr 1fr; max-width: 70%; margin-left: auto; margin-right: auto;}
#entry .list.row1 { grid-template-columns: 1fr; max-width: 40%; margin-left: auto; margin-right: auto;}
#entry .list li {}
#entry .list li a { font-size: 22px; padding: 30px; font-weight: 700; color: #cb1818; background: url("/lib/img/icon_arrR_red.svg") right 20px center no-repeat; background-size: 12px 12px; background-color: #fff; border-radius: 8px;}
#entry .link { margin-top: 40px; text-align: center;}
#entry .link a { font-size: 1.8rem; padding: 10px 30px 10px 10px; background: url("/lib/img/icon_arr_blank.svg") right 10px center no-repeat; background-size: 10px 10px;  border-bottom: solid 1px #fff; display: inline-block; color: #fff;}
@media screen and (max-width: 1099px) {
#entry .list li a { font-size: 20px; padding: 25px 20px;}
}
@media screen and (max-width: 999px) {
#entry .list,
#entry .list.row2 ,
#entry .list.row1 { grid-template-columns: 1fr; max-width: 100%;}
#entry .list li { width: 400px; margin: 0 auto;}
#entry .list li a {}
}
@media screen and (max-width: 899px) {
#entry { padding: 13.33vw 0; margin: -4vw 0 -4vw 0; border-radius: 3.2vw;}
#entry .secTit .en { font-size: 40px; font-weight: 400;}
#entry .secTit .jp {font-size: 12px;}
#entry .list { margin-top: 20px;}
#entry .list li a { font-size: 16px;}
#entry .link a {font-size: 1.3rem; padding: 10px 30px 10px 0; background-size: 8px 8px; background-position: center right;}
}
@media screen and (max-width: 749px) {
#entry .list li { width: 90%;}
}


/*==================================
	footer
==================================*/
footer { padding: 100px 0 60px 0; color: #fff; background: url("/lib/img/ft_bg.jpg") center center no-repeat; background-size: cover;}
footer a { color: #fff;}
footer .outer { position: relative;}
footer .txtArea { margin-bottom: 480px;}
footer .txtArea .subtxt { font-size: 32px; font-weight: 500;}
footer .txtArea .txt { margin-top: 30px;}
footer .txtArea .txt img { max-width: 696px; width: 48vw;}
footer .ftNav { width: 500px; display: flex; flex-wrap: wrap;}
footer .ftNav li { font-size: 15px; margin: 10px 15px;}
footer .ftNav li.privacy { position: absolute; right: 0; bottom: 100px; margin: 0;}
footer .blankLink { font-size: 15px; position: absolute; right: 0; bottom: 0;}
footer .copyArea { margin-top: 40px; padding-top: 30px; font-size: 13px; width: 100%; border-top: solid 1px #766e63;}


@media screen and (max-width: 1180px) {
footer .txtArea .subtxt { font-size: 2.5vw;}
footer .ftNav li { margin: 10px;}
}
@media screen and (min-width: 900px) {
footer .ftNav li:nth-child(1) { order: 1;}
footer .ftNav li:nth-child(2) { order: 4;}
footer .ftNav li:nth-child(3) { order: 7;}
footer .ftNav li:nth-child(4) { order: 2;}
footer .ftNav li:nth-child(5) { order: 5;}
footer .ftNav li:nth-child(6) { order: 8;}
footer .ftNav li:nth-child(7) { order: 3;}
footer .ftNav li:nth-child(8) { order: 6;}
}
@media screen and (max-width: 899px) {
footer { padding: 8vw 0 4vw 0;}
footer { background: url("/lib/img/ft_bg_sp.jpg") center center no-repeat; background-size: cover;}
footer .pcOnly { display: none;}
footer .outer { display: block;}
footer .txtArea { margin-bottom: 0;}
footer .txtArea .subtxt { font-size: 3.2vw;}
footer .txtArea .txt { margin-top: 4vw;}
footer .txtArea .txt img { width: 56.8vw; max-width: 100%;}
footer .ftNav { margin-top: 32vw; width: 100%;}
footer .ftNav li { width: 33%; font-size: 1.22rem;; margin: 10px 0 0 0;}
footer .ftNav li.privacy { margin-top: 20px; width: 100%; position: inherit;}
footer .blankLink { font-size: 1.2rem; position: relative; margin-top: 3vw; padding-top: 3vw; border-top: solid 1px #766e63;}
footer .blankLink a { display: inline-block;}
footer .copyArea { margin-top: 5vw; padding-top: 0; font-size: 10px; text-align: center; border-top: 0;}
}
