@charset "utf-8";

/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

html { overscroll-behavior: none;}
body { min-width: 0px; font-size: 0.9em; line-height: 1.8;}

.ta_right-s_center { text-align: center;}
.ta_left-s_center { text-align: center;}
.ta_center-s_left { text-align: left;}

.hidden_s { display: none !important;}

/* margin */
.mb40-20 { margin-bottom: 20px !important;}
.mb60-30, .mb50-30 { margin-bottom: 30px !important;}
.mb80-40 { margin-bottom: 40px !important;}
.mb100-60 { margin-bottom: 60px !important;}
.mb120-60 { margin-bottom: 60px !important;}
.mb160-80 { margin-bottom: 80px !important;}

.mt80-40 { margin-top: 40px !important;}

/* ------------------------
	ヘッダー
------------------------ */

body { padding-top: 0px;}

.header { position: static; min-width: 0px; display: block; padding: 0px 1em; height: 50px; font-size: min(2.3vw,0.8em); line-height: 50px;}
.header h1 img { vertical-align: middle; max-height: 1.7em; width: auto; transform: translateY(-0.2em);}
.header h1 span { font-size: 1.3em;}


/* ------------------------
	グローバルナビ
------------------------ */

/* ハンバーガーメニュー */
.humberger {
	background: #AF1F24;
	cursor: pointer;
	display: block;
	position: fixed;
	top: 0px;
	right: 0px;
	width: 50px;
	height: 50px;
	border-bottom-left-radius: 25px;
	z-index: 10000001;
}
.humberger span {
	background: #fff;
	position: absolute;
	left: 14px;
	width: 22px;
	height: 1px;
	transition: 0.4s;
}
.humberger span:nth-of-type(1) { top: 16px;}
.humberger span:nth-of-type(2) { top: 23px;}
.humberger span:nth-of-type(3) { top: 30px;}
.is-open .humberger { background: #fff;}
.is-open .humberger span { background: #000;}
.is-open .humberger span:nth-of-type(1) { transform: translateY(5px) rotate(-45deg);}
.is-open .humberger span:nth-of-type(2) { opacity: 0;}
.is-open .humberger span:nth-of-type(3) { transform: translateY(-9px) rotate(45deg);}

/* ナビ本体 */
.sp-navi { -webkit-text-size-adjust: 100%;}
.sp-navi.is-open .sp-navi-inner {
	opacity: 1;
	visibility: visible;
	z-index: 10000000;
}
.sp-navi .sp-navi-inner {
	background: #AF1F24;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0px;
	height: 100%;
	width: 100%;
	transition: .5s;
}

.sp-navi .logo { padding: 0px 1em; height: 50px; font-size: min(2.3vw,0.8em); line-height: 50px;}
.sp-navi .logo img { vertical-align: middle; max-height: 1.7em; width: auto; transform: translateY(-0.2em);}
.sp-navi .logo span { font-size: 1.3em; letter-spacing: 0.05em; margin-left: 1em; line-height: 1;}

.sp-navi .navi-main { padding: 9% 10% 15%; font-size: min(5.5vw,2em);}
.sp-navi .navi-main li:not(.btn_area02) a { color: #fff; text-decoration: none; margin-bottom: 2em; display: block; background: url("../images/recruit/common/more_btn_white.svg") no-repeat left center; background-size: 0.55em auto; padding-left: 1em;}
.sp-navi .navi-main .btn_area01 a:after { content: ""; display: inline-block; background: url("../images/recruit/common/ico_link_white.svg") no-repeat center center; background-size: 100% auto; width: 0.9em; height: 0.7em; margin: -0.2em 0px 0px 0.4em; vertical-align: middle;}
.sp-navi .navi-main .btn_area02 a { display: inline-block; background: #fff; border-radius: 3em; width: 12em; color: #AF1F24; padding: 0.65em; margin-top: 2.2em;}
.sp-navi .navi-main .btn_area02 a:after { content: ""; display: inline-block; background: url("../images/recruit/common/ico_link_red.svg") no-repeat center center; background-size: 100% auto; width: 0.9em; height: 0.7em; margin: -0.2em 0px 0px 0.6em; vertical-align: middle;}

/* ------------------------
	フッター
------------------------ */

.my_box { padding-bottom: 60px;}

.footer { border-top-left-radius: 2em; border-top-right-radius: 2em; padding: 40px 0px 15px;}

.footer h2 { margin-bottom: 25px; font-size: min(4vw,1.2em) !important;}
.footer h2 img { width: 13em;}
.footer .box01 { display: block;}

@media only screen and (max-width: 480px) {
  .footer .list02 { gap: 1.5em;}
}


/*------------------------------------------------------

	トップページ

------------------------------------------------------*/

.re_main { height: calc(100vh - 40px);}
.re_main .space01, .re_main .space02 { height: 5vh;}
.re_main .text01 { height: calc(90vh - 40px);}
.re_main .text01:before, .re_main .text01:after { width: 150vh;}

.top_sec01 .sec_bg01 { background-size: 130% auto; font-size: min(2.85vw,1.45em); padding: 50px 0px; margin-bottom: 0px;}
.top_sec01 .sec_bg01 .box01 { line-height: 2; margin-bottom: -1.5em;}
.top_sec01 .sec_bg01 .box02 { display: block;}
.top_sec01 .sec_bg01 .box02 dl { justify-content: center; font-size: min(6vw,1.45em);}
.top_sec01 .sec_bg01 .box02 dt { width: 5em; margin-right: 0.5em;}
.top_sec01 .sec_bg01 .pos_ab { position: static;}
.top_sec01 .sec_bg01 .box01 .img01 { margin-top: -4em;}
.top_sec01 .sec_bg01 .box02 .img01 { margin: 0px 55% 2.5em 0px;}

.top_head_dot { font-size: min(7.5vw,2.5em); padding-bottom: 0.6em;}

.top_sec01 .sec_wrap section { display: block;}
.top_sec01 .sec_wrap section .box_inner { width: auto;}
.top_sec01 .sec_wrap section > figure:not(.bg01) { width: auto; margin: 50px 4% 0px !important;}
.top_sec01 .sec_wrap section:nth-of-type(even) > figure:not(.bg01) { margin: 0px 0px 0px -25%;}

.top_sec01 .list01 { gap: 2%; margin-top: -3%;}

.top_sec01 figcaption { font-size: min(3.7vw,1.8em);}

.top_sec01 .box03 { max-width: 380px; width: auto; margin: auto;}

.top_sec01 .sec01 > figure:not(.bg01):before { width: 80%; bottom: -70%; left: 40%;}
.top_sec01 .sec01 .bg01 { width: 120%; bottom: 20%; left: -50%;}
.top_sec01 .sec02 > figure:not(.bg01):before { width: 80%; bottom: -55%; left: -30%;}
.top_sec01 .sec02 .bg01 { width: 65%; bottom: 25%; right: -40%;}
.top_sec01 .sec04 .bg01 { bottom: -15%; left: auto; width: 100%; right: 75%;}

.top_sec01 .sec_bg02 { padding: 15% 3%;}
.top_sec01 .sec_bg02 figcaption { top: -2.5em;}
.top_sec01 .sec_bg02 a { background-size: 15% auto;}

.top_sec02 .sec01 { border-radius: 0px; padding: 50px 0.5% 20px;}
.top_sec02 .sec01 h2, .top_sec03 h2 { font-size: 2em;}
.top_sec02 .list01 { gap: 2%; font-size: min(1.5vw,0.8em)}
.top_sec02 .list01 li { width: 31%; margin-bottom: 3%;}
.top_sec02 .list01 .box_inner { padding: 1em 0px 0.7em;}
.top_sec02 .list01 .box01 { padding-top: 1em;}

.top_sec02 .bx-wrapper { margin: auto;}

.top_sec02 .sec02 .box_inner { width: 60%; font-size: min(1.8vw,1em);}
.top_sec02 .sec02 > figure { width: 38%; margin-left: -3%;}
.top_sec02 .sec02 > figure:before { width: 200%;}
.top_sec02 .sec02 .more_btn { font-size: 0.9rem;}

.top_sec02 .sec03 { background-size: 85px auto; display: block; padding: 30px 20px 50px; margin: 0px 15px;}
.top_sec02 .sec03 figure { width: auto; padding: 0px 15% 15px;}
.top_sec02 .sec03 .box_inner { width: auto;}
.top_sec02 .sec03 h2 { font-size: min(5vw,1.75em);}
.top_sec02 .sec03 .text01 { padding: 0px;}

.top_sec03 { padding: 50px 0px;}
.top_sec03 th, .top_sec03 td { padding: 1em;}
.top_sec03 th { width: 12em;}

@media only screen and (max-width: 640px) {
  .top_sec01 .list01 { display: block; margin-top: 30px;}
  .top_sec01 .list01 li { width: 100%; max-width: 380px; margin: 0px auto 15px;}
  
  .top_sec01 .sec01 > figure:not(.bg01):before, .top_sec01 .sec02 > figure:not(.bg01):before  { bottom: auto; top: -30%;}

  .top_sec02 .list01 { gap: 3%; font-size: min(2.2vw,1em)}
  .top_sec02 .list01 li { width: 46%;}
  
  .top_sec03 table, .top_sec03 tbody, .top_sec03 tr, .top_sec03 th, .top_sec03 td { display: block; width: 100%;}
  .top_sec03 th.fo11 { padding-bottom: 0px; font-size: 1.25em !important;}
}

@media only screen and (max-width: 480px) {
  .top_sec02 .list01 { font-size: min(4.5vw,1em)}
  .top_sec02 .list01 li { width: 90%; max-width: 330px; margin-bottom: 5%;}

  .top_sec02 .sec02 { display: block;}
  .top_sec02 .sec02 .box_inner { width: auto; font-size: min(3vw,1em); text-align: center;}
  .top_sec02 .sec02 > figure { width: auto; margin: 30px 15% 0px;}
  .top_sec02 .sec02 > figure:before { width: 400%; height: 500%; top: auto; bottom: -65%; transform: translateX(-50%);}
}


/* ------------------------
	コンテンツ
------------------------ */

.link_pad { padding-top: 50px; margin-top: -50px;}

.iframe_wrap { border-radius: 1em;}

.radius02 { border-radius: 1em;}
.radius025 { border-radius: 1.5em;}
.radius03 { border-radius: 2em;}

.pagettl { padding-top: 30px;}
.pagettl .box01 { font-size: min(4vw,1em); padding-left: 1.8em;}
.pagettl h2 { font-size: 2em;}
.pagettl:before { width: 120%; top: 30%; left: -90%}

.heading_dot { font-size: min(6vw,2em);}


/* ------------------------
	interview
------------------------ */

.int_main { padding-left: 3%; font-size: min(2.7vw,1em);}
.int_main .back_red, .int_main img { border-top-left-radius: 2em; border-bottom-left-radius: 2em;}
.int_main .back_red { display: block;}
.int_main .box_inner { padding: 1em 1.5em 1.5em; width: auto;}
.int_main figure { width: auto; margin-left: 4em;}
.int_main figcaption { top: 0.7em; font-size: 1.7em; right: auto; left: -1em;}

.int_sec section { display: block;}
.int_sec section > figure { width: auto;}
.int_sec section .box_inner { width: auto; padding: 0px 0px 25px !important;}
.int_sec section .box_inner:before { display: none;}


/* ------------------------
	know
------------------------ */

.know_main .text_box { font-size: min(2.3vw,1em);}
.know_main .text01.mb20 { margin-bottom: 0.8em !important;}
.know_main .text01 img { width: 7em;}
.know_main figcaption { right: 1.1em; font-size: min(4.5vw,2em);}

.know_sec01 { padding: 10% 0px 40px;}

.know_sec01 .list01 li { width: calc(50% - 8px); padding: 1.5em 0.5em 1em;}

@media only screen and (max-width: 480px) {
  .know_sec01 .list01 { justify-content: center;}
  .know_sec01 .list01 li { width: calc(100% - 8px); max-width: 350px; font-size: min(5.8vw,1em);}
}


