/* =================================================================
   採用情報ページ専用スタイル
================================================================= */

/* ----- ページトップ：ファーストビュー入場アニメーション ----- */
.page-hero__en{
  opacity:0;
  transform:translateY(26px);
  animation:aboutFadeUp .9s cubic-bezier(.22,1,.36,1) forwards;
  animation-delay:.1s;
}
.page-hero__jp{
  opacity:0;
  transform:translateY(20px);
  animation:aboutFadeUp .9s cubic-bezier(.22,1,.36,1) forwards;
  animation-delay:.3s;
}
.page-hero__divider{
  transform:scaleX(0);
  transform-origin:left center;
  animation:aboutLineGrow 1s cubic-bezier(.22,1,.36,1) forwards;
  animation-delay:.55s;
}
.page-hero__image{
  opacity:0;
  transform:scale(1.05);
  animation:aboutPhotoIn 1.4s cubic-bezier(.22,1,.36,1) forwards;
  animation-delay:.2s;
}
@keyframes aboutFadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes aboutLineGrow{to{transform:scaleX(1)}}
@keyframes aboutPhotoIn{to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){
  .page-hero__en,.page-hero__jp,.page-hero__divider,.page-hero__image{animation:none !important;opacity:1 !important;transform:none !important}
}

.recruit-message{
  padding:110px 0;
  background:var(--paper);
  text-align:center;
}
.recruit-message__title{
  font-size:clamp(24px,3vw,32px);
  font-weight:900;
  color:var(--ink);
  letter-spacing:.04em;
  margin-bottom:48px;
}
.recruit-message__body{
  max-width:760px;
  margin:0 auto;
}
.recruit-message__text{
  font-size:15px;
  line-height:2;
  color:var(--text);
  margin-bottom:28px;
}
.recruit-message__text:last-child{margin-bottom:0}
.recruit-message__text--accent{
  color:var(--brass);
  font-weight:700;
}

/* ----- スクロール表示(他ページと共通の演出) ----- */
.recruit-message .reveal-io,
.requirements-list .reveal-io,
.process-flow .reveal-io,
.entry-card.reveal-io{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);
}
.recruit-message .reveal-io.in,
.requirements-list .reveal-io.in,
.process-flow .reveal-io.in,
.entry-card.reveal-io.in{opacity:1;transform:none}
.recruit-message .recruit-message__body .reveal-io:nth-child(2){transition-delay:.1s}
.recruit-message .recruit-message__body .reveal-io:nth-child(3){transition-delay:.2s}

/* ----- スクロール表示：見出し（代表挨拶・事業内容と同じ演出） ----- */
.sec-head__en{
  opacity:0;
  transition:opacity .5s cubic-bezier(.22,1,.36,1);
}
.sec-head__jp{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s cubic-bezier(.22,1,.36,1) .15s,transform .55s cubic-bezier(.22,1,.36,1) .15s;
}
.sec-head__jp::after{
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .5s cubic-bezier(.22,1,.36,1) .35s;
}
.sec-head.in .sec-head__en{opacity:1}
.sec-head.in .sec-head__jp{opacity:1;transform:translateY(0)}
.sec-head.in .sec-head__jp::after{transform:scaleX(1)}

.requirements-list .requirements-row:nth-child(2){transition-delay:.06s}
.requirements-list .requirements-row:nth-child(3){transition-delay:.12s}
.requirements-list .requirements-row:nth-child(4){transition-delay:.18s}
.requirements-list .requirements-row:nth-child(5){transition-delay:.24s}
.requirements-list .requirements-row:nth-child(6){transition-delay:.3s}

.process-flow .process-step:nth-child(3){transition-delay:.08s}
.process-flow .process-step:nth-child(5){transition-delay:.16s}
.process-flow .process-step:nth-child(7){transition-delay:.24s}

@media(max-width:760px){
  .recruit-message{padding:72px 0}
  .recruit-message__title{margin-bottom:32px}
  .recruit-message__text{font-size:14px;line-height:1.9;text-align:left}
  .recruit-message__text br.lb{display:none}
}

/* ===== 募集要項 ===== */
.recruit-requirements{
  padding:0 0 110px;
  background:var(--paper);
}
.requirements-list{
  max-width:880px;
  border-top:1px solid var(--line);
}
.requirements-row{
  display:grid;
  grid-template-columns:200px 1fr;
  gap:8px 24px;
  padding:26px 4px;
  border-bottom:1px solid var(--line);
}
.requirements-row dt{
  font-size:15px;
  font-weight:700;
  color:var(--brass);
}
.requirements-row dd p{
  font-size:14px;
  line-height:1.9;
  color:var(--text);
}
.requirements-row dd p + p{margin-top:4px}
.requirements-row dd p.note{
  font-size:12px;
  color:var(--text-mute);
}

@media(max-width:760px){
  .recruit-requirements{padding:0 0 72px}
  .requirements-row{grid-template-columns:1fr;gap:8px;padding:20px 0}
}

/* ===== 採用プロセス ===== */
.recruit-process{
  padding:0 0 110px;
  background:var(--paper);
}
.process-flow{
  display:flex;
  align-items:stretch;
}
.process-step{
  flex:1 1 0;
  min-width:0;
  min-height:260px;
  border:1px solid var(--brass);
  background:var(--paper);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:40px 16px;
}
.process-step__title{
  font-size:15px;font-weight:700;color:var(--brass);letter-spacing:.02em;
}
.process-step__sub{
  font-size:13px;color:var(--brass);margin-top:8px;
}
.process-step--list{
  padding:0;
  justify-content:flex-start;
}
.process-step__list{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:24px 20px 0;
}
.process-step__list li{
  background:var(--concrete);
  color:var(--brass);
  font-size:14px;
  font-weight:700;
  text-align:center;
  padding:22px 12px;
}
.process-step__note{
  font-size:12px;color:var(--text-mute);text-align:center;
  padding:14px 12px 24px;
}
.process-arrow{
  flex:0 0 56px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.process-arrow span{
  width:38px;height:38px;border-radius:50%;
  background:var(--ink);
  display:flex;align-items:center;justify-content:center;
}
.process-arrow span::before{
  content:"";
  width:9px;height:9px;
  border-top:2px solid #fff;
  border-right:2px solid #fff;
  transform:rotate(45deg);
  position:relative;
  left:-2px;
}

@media(max-width:760px){
  .recruit-process{padding:0 0 72px}
  .process-flow{flex-direction:column}
  .process-step{padding:28px 16px;min-height:160px}
  .process-arrow{flex:0 0 auto;padding:6px 0}
  .process-arrow span::before{
    left:0;
    top:-4px;
    transform:rotate(135deg);
  }
}

/* ===== エントリーフォーム ===== */
.entry-section{
  padding:0 0 130px;
  background:var(--paper);
}
.entry-hero{
  display:flex;
  align-items:stretch;
  height:clamp(380px,40vw,460px);
}
.entry-hero__left{
  flex:0 0 28%;
  max-width:28%;
  background:var(--ink);
  display:flex;
  align-items:center;
}
.entry-hero__inner{
  padding:50px;
  box-sizing:border-box;
}
.entry-hero__right{
  flex:1 1 72%;
  min-width:0;
  overflow:hidden;
}
.entry-hero__photo{
  width:100%;height:100%;
  display:block;
  object-fit:cover;
  object-position:75% center;
}
.entry-hero__en{
  color:#fff;font-family:var(--font-en);letter-spacing:.24em;font-size:16px;margin-bottom:18px;
  opacity:0;
  transition:opacity .5s cubic-bezier(.22,1,.36,1);
}
.entry-hero__jp{
  color:#fff;font-family:"Noto Serif JP",serif;font-style:italic;font-size:clamp(24px,2vw,30px);font-weight:500;line-height:1.3;margin-bottom:24px;white-space:nowrap;
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s cubic-bezier(.22,1,.36,1) .15s,transform .55s cubic-bezier(.22,1,.36,1) .15s;
}
.entry-hero__divider{
  width:68px;height:3px;background:#fff;opacity:.7;margin-bottom:0;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .5s cubic-bezier(.22,1,.36,1) .35s;
}
.entry-hero__inner.in .entry-hero__en{opacity:.85}
.entry-hero__inner.in .entry-hero__jp{opacity:1;transform:translateY(0)}
.entry-hero__inner.in .entry-hero__divider{transform:scaleX(1)}

.entry-card{
  width:82%;
  max-width:1160px;
  margin:-50px auto 0;
  background:var(--paper);
  position:relative;z-index:2;
  padding:56px 60px 64px;
  box-shadow:0 18px 48px rgba(22,32,46,.14);
}

.entry-row{margin-bottom:28px}
.entry-field__head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.entry-field__label{font-size:14px;font-weight:700;color:var(--ink)}
.entry-field__badge{
  font-size:11px;padding:3px 10px;background:var(--concrete);color:var(--text-mute);letter-spacing:.05em;
}
.entry-field__badge--required{background:var(--brass);color:#fff}

.entry-field__inputs--split{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.entry-row input[type="text"],
.entry-row input[type="email"],
.entry-row input[type="tel"],
.entry-row select,
.entry-row textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid var(--line);
  background:var(--paper);
  font-size:14px;
  color:var(--text);
  font-family:inherit;
}
.entry-row textarea{resize:vertical}
.entry-row input:focus,
.entry-row select:focus,
.entry-row textarea:focus{outline:none;border-color:var(--brass)}

.entry-dropzone{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border:1px dashed var(--line);
  background:#eeeeee;
  padding:36px 16px;
  cursor:pointer;
  text-align:center;
}
.entry-dropzone__icon{font-size:20px;color:var(--brass)}
.entry-dropzone__text{font-size:13px;color:var(--text)}
.entry-dropzone__note{font-size:11px;color:var(--text-mute)}
.entry-dropzone__input{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.entry-row--agree{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.entry-agree{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text)}
.entry-agree input[type="checkbox"]{width:16px;height:16px}
.entry-agree__link{font-size:12px;color:var(--brass);text-decoration:underline;align-self:flex-start}

.entry-submit{
  display:block;width:100%;margin-top:36px;
  background:var(--ink);color:#fff;
  border:none;padding:18px;
  font-size:15px;letter-spacing:.05em;cursor:pointer;
  transition:background .2s;
}
.entry-submit:hover{background:var(--brass)}

.entry-card .flash-messages{list-style:none;margin:0 0 28px;padding:0}
.entry-card .flash-messages li{padding:12px 16px;margin-bottom:8px;font-size:13px}
.entry-card .flash-success{background:#eef6ee;color:#2f6b3a;border:1px solid #cfe8d2}
.entry-card .flash-warning{background:#fff8e6;color:#8a6d1d;border:1px solid #f0e0ad}
.entry-card .flash-error{background:#fdeceb;color:#a33327;border:1px solid #f3c8c4}
.entry-row .error{display:block;color:#c0392b;font-size:12px;margin-top:6px}

@media(max-width:1250px){
  .entry-card{padding:48px 32px 56px}
  .entry-hero{flex-direction:column;height:auto}
  .entry-hero__left{flex:0 0 auto;max-width:none}
  .entry-hero__inner{padding:40px 24px}
  .entry-hero__right{flex:0 0 auto;height:190px}
  .entry-hero__en{font-size:16px}
  .entry-hero__jp{font-size:30px}
  .entry-card{margin-top:-32px}
}
@media(max-width:760px){
  .entry-section{padding:0 0 80px}
  .entry-hero{position:relative;height:360px}
  .entry-hero__right{position:absolute;inset:0;height:100%;z-index:0}
  .entry-hero__left{
    position:absolute;inset:0;max-width:none;
    background:rgba(8,15,53,.9);
    z-index:1;display:flex;align-items:center;
  }
  .entry-card{width:92%;padding:36px 20px 44px}
  .entry-field__inputs--split{grid-template-columns:1fr}
}

/* ===== エントリー内容確認 ===== */
.entry-confirm-section{
  padding:80px 0 130px;
  background:var(--paper);
}
.entry-confirm__lead{
  font-size:14px;color:var(--text);line-height:1.9;margin-bottom:40px;
}
.entry-confirm-list{max-width:100%}
.entry-confirm__actions{
  display:flex;align-items:center;justify-content:center;gap:24px;
  margin-top:48px;flex-wrap:wrap;
}
.entry-confirm__back{
  font-size:14px;color:var(--text-mute);text-decoration:underline;
}
.entry-confirm__submit-form{margin:0}
.entry-confirm__submit-form .entry-submit{
  width:auto;min-width:280px;margin-top:0;padding:16px 48px;
}

@media(max-width:760px){
  .entry-confirm-section{padding:56px 0 80px}
  .entry-confirm__actions{flex-direction:column-reverse;gap:16px}
  .entry-confirm__submit-form .entry-submit{width:100%}
}
