/* 採用情報ページ 固有スタイル */

/* 「募集概要」の文字サイズを本文と揃える(太字はそのまま) */
body#recruit_index .sub_title {
font-size: 100%;
}

/* .section_titleの下マージンをPC(768px以上でmargin-bottom: 3remになる)も含めて2remに統一 */
body#recruit_index .section_title {
margin-bottom: 2rem;
}

/* ローディング(FVエリア内のみ。vegasの写真読み込み待ち専用) */
#recruitLoader {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
background: #FFF;
overflow: hidden;
}
.recruit_loader_bar {
position: absolute;
top: 0;
left: 0;
width: 0;
height: 100%;
background: #F77400;
}
.recruit_loader_percent {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 12px;
letter-spacing: .05em;
color: #FFF;
}
#recruitLoader.is-hidden {
opacity: 0;
pointer-events: none;
transition: opacity .5s ease-out;
}

/* スクロールでフワッと現れる演出 */
.reveal {
opacity: 0;
transform: translateY(24px);
transition: opacity .9s cubic-bezier(.19,1,.22,1), transform .9s cubic-bezier(.19,1,.22,1);
}
.reveal.is-visible {
opacity: 1;
transform: translateY(0);
}
.reveal-d1 { transition-delay: .15s; }
.reveal-d2 { transition-delay: .3s; }

/* FVヒーロー(背景はvegasが差し込む) */
.recruit_hero_wrap {
position: relative;
isolation: isolate;
min-height: 60vh;
color: #FFF;
text-align: center;
overflow: hidden;
}
.recruit_hero_layer {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.recruit_hero_box {
position: absolute;
top: 50%;
left: 50%;
z-index: 2;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: min(62vw, 260px);
aspect-ratio: 1 / 1;
background: rgba(247, 116, 0, .9);
opacity: 0;
transform: translate(-50%, -50%) translateY(28px) scale(.94);
transition: opacity 2.2s cubic-bezier(.25,.75,.3,1), transform 2.2s cubic-bezier(.25,.75,.3,1);
}
.recruit_hero_box.is-visible {
opacity: 1;
transform: translate(-50%, -50%) translateY(0) scale(1);
}
@media (max-width: 767px) {
.recruit_hero_box {
width: min(48vw, 210px);
}
}
.recruit_hero_box_sub {
margin-bottom: .8em;
font-size: min(3.2vw, 14px);
letter-spacing: .1em;
}
.recruit_hero_box_main {
font-size: min(7.5vw, 34px);
font-weight: 600;
letter-spacing: .15em;
}
@media (min-width: 768px) {
.recruit_hero_wrap {
min-height: 70vh;
}
}

/* 各募集ジャンルの写真 */
.job_photo {
margin-bottom: 1.5rem;
border-radius: 8px;
overflow: hidden;
}
.job_photo img {
display: block;
width: 100%;
height: 220px;
object-fit: cover;
}

.form_table {
width: 100%;
border-collapse: collapse;
margin-bottom: 2rem;
}
.form_table tr {
display: block;
margin-bottom: 1rem;
}
.form_table th,
.form_table td {
display: block;
width: 100%;
box-sizing: border-box;
border: 1px solid #E9E7DE;
padding: 1rem;
}
.form_table th {
font-weight: normal;
background: #F7F6F5;
text-align: left;
border-bottom: none;
}
.form_table td {
border-top: none;
}
.form_table .captcha_label {
font-size: 90%;
}
@media (min-width: 768px) {
.form_table tr {
display: table-row;
margin-bottom: 0;
}
.form_table th,
.form_table td {
display: table-cell;
width: auto;
vertical-align: top;
}
.form_table th {
width: 30%;
border-bottom: 1px solid #E9E7DE;
}
.form_table td {
border-top: 1px solid #E9E7DE;
}
}

.form_table input[type="text"],
.form_table input[type="email"],
.form_table input[type="tel"],
.form_table select,
.form_table textarea {
width: 100%;
box-sizing: border-box;
padding: .8rem;
border: 1px solid #E9E7DE;
font-size: min(4vw, 16px);
}

.required {
margin-left: .5em;
color: #F77400;
font-size: 80%;
}

.captcha_row {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: .8rem;
}

.form_table .captcha_output {
box-sizing: border-box;
width: 4.5em;
height: 44px;
padding: .5rem .3rem;
border: 1px solid #E9E7DE;
resize: none;
color: #F77400;
font-size: 24px;
line-height: 1;
letter-spacing: .2em;
text-align: center;
opacity: 1;
}

.captcha_row button {
flex-shrink: 0;
padding: .8rem 1.2rem;
border: 1px solid #E9E7DE;
border-radius: 4px;
background: #FFF;
color: #231815;
cursor: pointer;
}

.privacy_agree {
margin-top: 1.5rem;
text-align: center;
}
.privacy_agree label {
cursor: pointer;
}
.privacy_agree input[type="checkbox"] {
margin-right: .3em;
vertical-align: middle;
}
.privacy_agree a {
color: #F77400;
text-decoration: underline;
}

.submit_area {
margin-top: 2rem;
text-align: center;
}

.btn_submit,
.submit_area input[type="submit"] {
display: inline-block;
padding: 1rem 3rem;
border: none;
border-radius: 4px;
background: #F77400;
color: #FFF;
font-size: 106%;
font-weight: 600;
cursor: pointer;
}
.submit_area input[type="button"] {
display: inline-block;
margin-left: 1rem;
padding: 1rem 2rem;
border: 1px solid #E9E7DE;
border-radius: 4px;
background: #FFF;
color: #231815;
font-size: 106%;
cursor: pointer;
}

/* confirm.html / complete.html (単独ページ) */
#formWrap {
max-width: 700px;
margin: 4rem auto;
padding: 0 4vw;
color: #231815;
line-height: 1.8;
font-size: min(3.7vw, 15px);
}
#formWrap h3 {
margin-bottom: 1.5rem;
padding-bottom: 1rem;
border-bottom: 2px solid #F77400;
text-align: center;
font-size: min(5vw, 22px);
}
#formWrap p.lead {
margin-bottom: 1.5rem;
text-align: center;
}
#formWrap.complete {
text-align: center;
}
#formWrap .error_list {
margin-bottom: 1.5rem;
color: #F77400;
}
