/* 元の本文・セクションで使う px-2（8px）の左端を共有。 */
.recruit-header-bar { left:0; width:100%; z-index:100; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:16px 8px; box-sizing:border-box; background:#f6f2ef; color:#000; }
.recruit-logo { display:block; flex:0 1 146px; max-width:146px; min-width:0; }
.recruit-header .header-company-logo { position:relative; left:8px; height:32.375px; }
.header-company-logo svg { display:block; width:100%; height:100%; overflow:hidden; }
@media (max-width:359px) { .recruit-header .header-company-logo { left:4px; } }

.header-actions { display:flex; align-items:center; flex-wrap:nowrap; gap:8px; flex-shrink:0; }
.header-actions > .header-cta { display:inline-flex; align-items:center; justify-content:center; font-size:13px; line-height:1.3; font-family:inherit; font-weight:700; padding:3px 8px; box-sizing:border-box; flex:0 0 auto; white-space:nowrap; margin:0; background:#f6f2ef; color:#000; border:1px solid #000; border-radius:0; text-decoration:none; transition:color .3s ease-in-out,background-color .3s ease-in-out; }
.recruit-logo:focus-visible,.header-cta:focus-visible { outline:2px solid #000; outline-offset:3px; }
.recruit-section { padding:40px 8px 48px; background:#f6f2ef; color:#000; font-family:kozuka-mincho-pro,serif; }
.recruit-title { margin:0; font-family:Helvetica,sans-serif; font-weight:900; font-size:calc(0.2 * min(100vw, 480px)); line-height:.9; letter-spacing:-.05em; overflow-wrap:anywhere; }
.recruit-subtitle { margin:16px 0 32px; font-size:18px; font-weight:700; line-height:1.3; }
.recruit-details { margin:0; font-size:16px; line-height:1.8; }
.recruit-details > div { border-top:1px solid #000; padding:18px 0; }
.recruit-details dt { font-weight:700; margin-bottom:8px; }
.recruit-details dd { margin:0; overflow-wrap:anywhere; }
.entry-form { display:grid; gap:24px; }
.entry-field label { display:flex; align-items:baseline; justify-content:space-between; gap:8px; font-size:16px; font-weight:700; line-height:1.6; margin-bottom:8px; }
.entry-field label span { font-size:12px; font-weight:300; }
.entry-field input,.entry-field select,.entry-field textarea { display:block; width:100%; box-sizing:border-box; border:1px solid #000; border-radius:0; background:#f6f2ef; color:#000; font-family:inherit; font-size:16px; line-height:1.6; padding:12px; }
.entry-field input,.entry-field select { min-height:52px; }
.entry-field textarea { min-height:160px; resize:vertical; }
.entry-field select { appearance:none; -webkit-appearance:none; padding-right:48px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 18px center; background-size:12px 8px; }
.entry-field :is(input,select,textarea):focus-visible { outline:2px solid #000; outline-offset:3px; }
.entry-field ::placeholder { color:#666; opacity:1; }
.entry-submit { width:100%; border:1px solid #000; border-radius:0; padding:16px 12px; font-family:inherit; font-size:16px; font-weight:700; line-height:1.6; background:#f6f2ef; color:#000; }
.entry-submit:disabled { cursor:not-allowed; opacity:.6; }

/* ヘッダーCTAだけ内側の余白を少し広げる。 */
.recruit-header .header-actions > .header-cta { padding:6px 12px; }

/* 募集要項は既存の40px余白・オレンジ枠・帯・数字の強弱を再利用。 */
#requirements { padding:48px 40px 48px; }
#requirements .requirements-heading {
  position:relative;
  isolation:isolate;
  padding:28px 0 16px;
  margin-bottom:24px;
}
#requirements .requirements-heading .reference-frame-viewport { inset:-48px -40px -8px; }
#requirements .requirements-heading .reference-rule { height:24px; margin:12px 0 16px; }
#requirements .requirements-heading .recruit-subtitle { margin:0; }
#requirements .recruit-details > div { border-color:#333; padding:22px 0; }
#requirements .recruit-details dt {
  width:fit-content;
  max-width:100%;
  background:var(--accent-orange);
  color:#fff;
  padding:2px 6px;
  margin-bottom:12px;
  letter-spacing:0.08em;
}
#requirements .requirements-salary { font-size:inherit; font-weight:900; line-height:1.5; color:#333; }

/* 職種の切り替えも、既存のCTAと同じ細線・オレンジで表現する。 */
#requirements .requirements-tabs {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-bottom:24px;
}
#requirements .requirements-tabs[hidden],
#requirements .requirements-panel[hidden] { display:none; }
#requirements .requirements-tab {
  min-width:0;
  min-height:52px;
  padding:10px 6px;
  border:1px solid #333;
  border-radius:0;
  background:#333;
  color:#fff;
  font-family:inherit;
  font-size:14px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1.5;
  cursor:pointer;
  transition:background-color .2s ease,border-color .2s ease;
}
#requirements .requirements-tab[aria-selected="true"] {
  background:var(--accent-orange);
  border-color:var(--accent-orange);
}
#requirements .requirements-tab:hover { border-color:var(--accent-orange); }
#requirements .requirements-tab:focus-visible,
#requirements .requirements-panel:focus-visible {
  outline:2px solid var(--accent-orange);
  outline-offset:3px;
}

/* コンタクトも40px余白と既存の装飾枠・帯・細線を使用する。 */
#entry { padding:48px 40px 48px; }
#entry .entry-heading {
  position:relative;
  isolation:isolate;
  padding:28px 0 16px;
  margin-bottom:24px;
}
#entry .entry-heading .reference-frame-viewport { inset:-48px -40px -8px; }
#entry .entry-heading .reference-rule { height:24px; margin:12px 0 16px; }
#entry .entry-heading .recruit-subtitle { margin:0; }
#entry .entry-form { gap:28px; }
#entry .entry-field label { align-items:center; color:#333; }
#entry .entry-field label span {
  flex:none;
  border:1px solid #333;
  padding:2px 6px;
  font-weight:700;
  letter-spacing:0.08em;
  line-height:1.4;
}
#entry .entry-field label[for="entry-name"] span,
#entry .entry-field label[for="entry-email"] span {
  background:var(--accent-orange);
  border-color:var(--accent-orange);
  color:#fff;
}
#entry .entry-field :is(input,select,textarea),
#entry .entry-submit { border-color:#333; }
#entry .entry-field :is(input,select,textarea):focus-visible { outline-color:var(--accent-orange); }
