@charset "UTF-8";
/* ============================================================
   recruit.css — ゴルフインストラクター求人サイト専用
   ・style.css / legacy-golf.css / legacy.css の後に読み込む
   ・前半：求人トップ・共通パーツ（新規コンポーネント）
   ・後半：旧本文（.legacy）の見出し・注記・Q&A等を新デザインに寄せる
   ============================================================ */

/* ---------- 1. ヘッダー：現在地の表示 ---------- */
.is-recruit .header__nav a[aria-current="page"] {
  color: var(--green-800); background: var(--green-050);
  box-shadow: inset 0 -2px 0 var(--green-600);
}
.is-recruit .drawer a[aria-current="page"] { color: var(--green-800); background: var(--green-050); }

/* ---------- 2. 求人トップのヒーロー ---------- */
.rhero {
  position: relative; overflow: hidden; color: #fff;
  background:
    radial-gradient(90% 120% at 0% 0%, rgba(255, 212, 0, .16), transparent 55%),
    linear-gradient(135deg, var(--green-800) 0%, var(--green-700) 55%, var(--green-600) 100%);
}
.rhero__inner {
  display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(28px, 4vw, 56px);
  align-items: center; padding-block: clamp(40px, 6vw, 80px);
}
.rhero__badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff; color: var(--green-800);
  font-size: 13.5px; font-weight: 900; letter-spacing: .02em;
  padding: 6px 16px 6px 8px; border-radius: 999px;
}
.rhero__badge b {
  background: var(--cta); color: #fff; padding: 2px 10px; border-radius: 999px; font-size: 12px;
}
.rhero h1 {
  margin-top: 18px; font-size: clamp(28px, 4.6vw, 46px); font-weight: 900; line-height: 1.32;
  letter-spacing: .005em; text-wrap: balance;
}
.rhero h1 .sm { display: block; font-size: .5em; font-weight: 800; color: rgba(255, 255, 255, .88); margin-bottom: .45em; }
.rhero h1 .em { color: #ffe066; }
.rhero__lead { margin-top: 18px; font-size: clamp(15px, 1.7vw, 17.5px); color: rgba(255, 255, 255, .92); max-width: 32em; }
.rhero__facts { margin-top: 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-width: 34em; }
.rhero__facts li {
  display: flex; align-items: center; gap: 8px;
  background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .22);
  padding: 8px 12px; border-radius: 12px; font-size: 14px; font-weight: 800; line-height: 1.45;
}
.rhero__facts li::before {
  content: "✓"; flex: none; width: 20px; height: 20px; border-radius: 50%;
  display: grid; place-items: center; font-size: 11px; background: #fff; color: var(--green-700);
}
.rhero__actions { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 12px; }
.rhero__actions .btn--ghost { box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .9); background: transparent; color: #fff; }
.rhero__actions .btn--ghost:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.rhero__note { margin-top: 12px; font-size: 12.5px; color: rgba(255, 255, 255, .78); }

.rhero__media { position: relative; }
.rhero__media img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .28); border: 5px solid rgba(255, 255, 255, .95);
}
.rhero__chip {
  position: absolute; left: -14px; bottom: 22px;
  background: #fff; color: var(--ink); border-radius: 16px; padding: 12px 16px;
  box-shadow: var(--shadow-lg); font-size: 12.5px; font-weight: 800; line-height: 1.45;
}
.rhero__chip b { display: block; font-size: 22px; font-weight: 900; color: var(--cta-dark); line-height: 1.2; }
.rhero__chip b small { font-size: .6em; }

@media (max-width: 900px) {
  .rhero__inner { grid-template-columns: 1fr; }
  .rhero__media { order: -1; max-width: 560px; }
  .rhero__chip { left: 12px; bottom: 12px; padding: 9px 13px; }
  .rhero__chip b { font-size: 19px; }
}
@media (max-width: 640px) {
  .rhero__inner { padding-block: 22px 34px; gap: 22px; }
  .rhero__media img { aspect-ratio: 2 / 1; border-width: 3px; border-radius: 16px; }
  .rhero__chip { font-size: 11px; padding: 6px 11px; border-radius: 12px; }
  .rhero__chip b { font-size: 17px; }
  .rhero h1 { margin-top: 14px; }
  .rhero__facts li { font-size: 12.5px; padding: 7px 9px; gap: 6px; }
  .rhero__actions .btn { width: 100%; }
}

/* 実績ストリップ（style.css の .stats を4列で使う） */
.is-recruit .stats__list { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 767px) {
  .is-recruit .stats__list { grid-template-columns: repeat(2, 1fr); }
  .is-recruit .stats__list li { border-left: 0; }
  .is-recruit .stats__list li:nth-child(2n) { border-left: 1px solid var(--line-color); }
}

/* ---------- 3. 求人トップのブロック ---------- */
.rtop { display: grid; gap: clamp(56px, 8vw, 88px); }
.rblock__head { margin-bottom: 22px; }
.rblock__eyebrow {
  display: inline-block; font-size: 12px; font-weight: 900; letter-spacing: .14em;
  color: var(--green-700); margin-bottom: 6px;
}
.rblock__title { font-size: clamp(22px, 3.2vw, 30px); font-weight: 900; line-height: 1.45; }
.rblock__title .mk { background: linear-gradient(transparent 60%, var(--sun) 60%); padding-inline: 2px; }
.rblock__lead { margin-top: 10px; color: var(--ink-2); font-size: 15.5px; }
.rblock__more { margin-top: 20px; }
.rblock__more a { font-weight: 800; }

/* 募集状況 */
.jobs { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.job {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  background: #fff; border: 1px solid var(--line-color); border-radius: 14px;
  padding: 14px 16px; box-shadow: var(--shadow-sm);
}
.job__name { font-weight: 900; font-size: 16px; line-height: 1.4; }
.job__name small { display: block; font-size: 12px; font-weight: 700; color: var(--ink-3); }
a.job__name { color: var(--ink); text-decoration: none; }
a.job__name::after { content: "勤務地を見る ›"; display: block; font-size: 12px; font-weight: 800; color: var(--green-700); margin-top: 2px; }
a.job__name:hover { color: var(--green-700); }
a.job__name:hover::after { text-decoration: underline; }
.job__tag {
  flex: none; font-size: 12px; font-weight: 900; padding: 4px 11px; border-radius: 999px; line-height: 1.5;
  background: var(--cta-soft); color: var(--cta-dark);
}
.job--open { border-color: #ffd9bc; box-shadow: inset 4px 0 0 var(--cta), var(--shadow-sm); }
.job--closed { background: var(--surface-2); box-shadow: none; }
.job--closed .job__name { color: var(--ink-3); }
.job--closed .job__tag { background: #e8ece9; color: var(--ink-3); }
.jobs__note { margin-top: 16px; }
@media (max-width: 560px) {
  .jobs { grid-template-columns: 1fr 1fr; gap: 8px; }
  .job { flex-direction: column-reverse; align-items: flex-start; gap: 6px; padding: 11px 12px; }
  .job__name { font-size: 15px; }
  .job__name small { font-size: 11px; }
  a.job__name::after { font-size: 11px; }
  .job__tag { font-size: 11px; padding: 2px 9px; }
}

/* 更新情報 */
.news { display: grid; border-top: 1px solid var(--line-color); }
.news li { display: flex; gap: 16px; padding: 14px 4px; border-bottom: 1px solid var(--line-color); align-items: baseline; flex-wrap: wrap; }
.news time { font-size: 13px; font-weight: 800; color: var(--ink-3); flex: none; }
.news a { font-weight: 800; }

/* 求人の特徴（写真付きカード） */
.rfeats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; counter-reset: rf; }
.rfeat {
  background: #fff; border: 1px solid var(--line-color); border-radius: var(--radius);
  overflow: hidden; box-shadow: var(--shadow-sm); display: flex; flex-direction: column;
}
.rfeat__img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.rfeat__body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.rfeat h3 { font-size: 17px; font-weight: 900; line-height: 1.5; display: flex; gap: 10px; align-items: flex-start; }
.rfeat h3::before {
  counter-increment: rf; content: counter(rf, decimal-leading-zero);
  flex: none; font-size: 12px; font-weight: 900; color: #fff; background: var(--green-600);
  border-radius: 8px; padding: 3px 7px; margin-top: 3px; line-height: 1.3;
}
.rfeat p { font-size: 14.5px; line-height: 1.85; color: var(--ink-2); }
.rfeat details { margin-top: auto; font-size: 13.5px; color: var(--ink-2); }
.rfeat summary {
  cursor: pointer; font-weight: 800; color: var(--green-700); list-style: none;
  display: inline-flex; align-items: center; gap: 6px; padding: 4px 0;
}
.rfeat summary::-webkit-details-marker { display: none; }
.rfeat summary::after { content: "＋"; font-size: 12px; }
.rfeat details[open] summary::after { content: "－"; }
.rfeat details ul { margin-top: 6px; display: grid; gap: 5px; padding: 12px 14px; background: var(--surface-2); border-radius: 10px; line-height: 1.75; }
.rfeat details li { padding-left: 1em; text-indent: -1em; }
.rfeat details li::before { content: "・"; }
@media (max-width: 960px) { .rfeats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) {
  .rfeats { grid-template-columns: 1fr; gap: 14px; }
  .rfeat { flex-direction: row; }
  .rfeat__img { width: 34%; aspect-ratio: auto; min-height: 100%; }
  .rfeat__body { padding: 12px 14px 14px; }
  .rfeat h3 { font-size: 15.5px; }
  .rfeat p { font-size: 13.5px; line-height: 1.75; }
}

/* 収入事例の表 */
.income { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.income__card { background: #fff; border: 1px solid var(--line-color); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); }
.income__head { padding: 14px 18px; background: var(--green-050); border-bottom: 1px solid var(--line-color); }
.income__head b { display: block; font-size: 16px; font-weight: 900; }
.income__head span { font-size: 13px; color: var(--ink-3); font-weight: 700; }
.income__card--main .income__head { background: var(--cta-soft); }
.income table { font-size: 15px; }
.income th, .income td { padding: 11px 18px; border-bottom: 1px solid var(--line-color); text-align: left; }
.income tr:last-child th, .income tr:last-child td { border-bottom: 0; }
.income th { font-weight: 700; color: var(--ink-2); }
.income td { text-align: right; font-weight: 900; font-size: 18px; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.income td small { font-size: 12px; font-weight: 700; margin-left: 2px; }
.income__card--main td { color: var(--cta-dark); }
@media (max-width: 700px) { .income { grid-template-columns: 1fr; } }

/* 募集要項（要約） */
.spec { border: 1px solid var(--line-color); border-radius: var(--radius); overflow: hidden; background: #fff; }
.spec > div { display: grid; grid-template-columns: 9em 1fr; border-bottom: 1px solid var(--line-color); }
.spec > div:last-child { border-bottom: 0; }
.spec dt { padding: 15px 18px; background: var(--surface-2); font-weight: 900; font-size: 14.5px; color: var(--green-800); }
.spec dd { padding: 15px 18px; font-size: 15px; line-height: 1.85; }
.spec dd ul { display: grid; gap: 3px; }
.spec dd li { padding-left: 1.1em; position: relative; }
.spec dd li::before { content: ""; position: absolute; left: 0; top: .78em; width: 6px; height: 6px; border-radius: 50%; background: var(--green-500); }
.spec .spec__note { margin-top: 6px; font-size: 13px; color: var(--ink-3); }
@media (max-width: 600px) {
  .spec > div { grid-template-columns: 1fr; }
  .spec dt { padding: 10px 14px; font-size: 13.5px; }
  .spec dd { padding: 12px 14px 14px; font-size: 14.5px; }
}

/* Instagram は2段（12枚）までに揃える */
.is-recruit .insta-embed .ig-feed-item:nth-child(n+13) { display: none; }

/* ---------- 4. 応募までの道のり（全ページ共通） ---------- */
.rpath { padding-block: clamp(40px, 6vw, 64px); background: #fff; border-top: 1px solid var(--line-color); }
.rpath__title { text-align: center; font-size: clamp(19px, 2.6vw, 24px); font-weight: 900; margin-bottom: 22px; }
.rpath__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; counter-reset: rp; }
.rpath__list a {
  position: relative; display: flex; flex-direction: column; gap: 4px; height: 100%;
  padding: 16px 18px 16px; border-radius: 14px; text-decoration: none; color: var(--ink);
  background: var(--surface-2); border: 1px solid var(--line-color);
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.rpath__list a:hover { transform: translateY(-2px); box-shadow: var(--shadow); background: #fff; color: var(--ink); }
.rpath__list a::before {
  counter-increment: rp; content: "STEP " counter(rp);
  font-size: 11px; font-weight: 900; letter-spacing: .12em; color: var(--green-700);
}
.rpath__list b { font-size: 16px; font-weight: 900; line-height: 1.45; }
.rpath__list span { font-size: 13px; color: var(--ink-3); font-weight: 700; line-height: 1.6; }
.rpath__list a[aria-current="page"] { background: var(--green-050); border-color: var(--green-500); box-shadow: inset 0 0 0 1px var(--green-500); }
.rpath__list a[aria-current="page"]::after {
  content: "いま見ているページ"; position: absolute; right: 12px; top: 14px;
  font-size: 10.5px; font-weight: 900; color: var(--green-700); background: #fff;
  padding: 1px 8px; border-radius: 999px; border: 1px solid var(--green-100);
}
.rpath__list li:last-child a { background: var(--line); border-color: var(--line); color: #fff; }
.rpath__list li:last-child a::before, .rpath__list li:last-child span { color: rgba(255, 255, 255, .9); }
.rpath__list li:last-child a:hover { background: var(--line-dark); }
@media (max-width: 860px) { .rpath__list { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) {
  .rpath__list { gap: 8px; }
  .rpath__list a { padding: 12px 12px 13px; }
  .rpath__list b { font-size: 14.5px; }
  .rpath__list span { font-size: 12px; }
  .rpath__list a[aria-current="page"]::after { display: none; }
}

/* ============================================================
   5. 旧本文（.legacy）を新デザインに寄せる
   ============================================================ */
.is-recruit .legacy { color: var(--ink); }
.is-recruit .legacy .main-contents { display: block; }

/* 大見出し（緑帯・赤帯）→ 左ライン付きの落ち着いた見出し */
.is-recruit .legacy .midashi-sp2:not(h1),
.is-recruit .legacy .midashi-sp9r,
.is-recruit .legacy .midashi-sp4:not(h1),
.is-recruit .legacy .midashi-4 {
  display: block; width: auto; max-width: none;
  margin: 2.3em 0 .9em !important; padding: 12px 16px 12px 18px !important;
  background: var(--green-050) none !important; color: var(--ink) !important;
  border-left: 5px solid var(--green-600); border-radius: 0 12px 12px 0;
  font-size: clamp(18px, 2.4vw, 22px) !important; font-weight: 900 !important; line-height: 1.5 !important;
  text-align: left !important;
}
.is-recruit .legacy h1 + .midashi-sp2,
.is-recruit .legacy h1 + .midashi-sp9r,
.is-recruit .legacy h1 + h2.midashi-sp2 { margin-top: 0 !important; }

/* 見出しとして使われている h1.midashi-sp2（地域ページ）は、既定のh1デザインに合わせる */
.is-recruit .legacy h1.midashi-sp2, .is-recruit .legacy h1.midashi-sp4 { display: block; text-align: left !important; }

/* 小見出し */
.is-recruit .legacy .midashi-sp8,
.is-recruit .legacy div.midashi-sp5 {
  display: block; width: auto; margin: 1.6em 0 .5em; padding: 0;
  font-size: clamp(16.5px, 2vw, 18.5px); line-height: 1.6; font-weight: 900; color: var(--green-800);
}
.is-recruit .legacy div.midashi-sp5::before,
.is-recruit .legacy .midashi-sp8::before {
  content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 9px; vertical-align: .08em;
  border-radius: 3px; background: var(--cta);
}
/* 文中のラベル（「採用済み」等） */
.is-recruit .legacy span.midashi-sp5 {
  display: inline-block; font-size: 12px; line-height: 1.6; padding: 1px 10px; margin-left: 6px;
  border-radius: 999px; background: #eef1ef; color: var(--ink-3); font-weight: 800; vertical-align: .1em;
}

/* 旧来の「■」マーク（<font color="#FFCC00">■</font>）→ 小さな丸 */
.is-recruit .legacy font[color="#FFCC00" i],
.is-recruit .legacy font[color="#FC0" i] { font-size: 0; }
.is-recruit .legacy font[color="#FFCC00" i]::before,
.is-recruit .legacy font[color="#FC0" i]::before {
  content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%;
  background: var(--green-500); margin: 0 .6em .2em .15em; vertical-align: middle;
}

/* 黄色の注記ボックス → 落ち着いた補足ボックス */
.is-recruit .legacy .sp-annotation {
  width: auto; margin: 14px 0 18px; padding: 14px 18px;
  background: var(--sun-soft); border: 1px solid #f4e3a1; border-left: 4px solid var(--sun-deep);
  border-radius: 0 12px 12px 0; font-size: 14.5px; line-height: 1.9; color: var(--ink-2);
}

/* Q&A */
.is-recruit .legacy .QA-Q, .is-recruit .legacy .QA-A {
  display: inline-grid; place-items: center; width: 26px; height: 26px; padding: 0;
  margin-right: 10px; border-radius: 50%; font-size: 13px; line-height: 1; vertical-align: .1em;
}
.is-recruit .legacy .QA-Q { background: var(--green-600); }
.is-recruit .legacy .QA-A { background: var(--cta); }
.is-recruit .legacy hr { border: 0; border-top: 1px dashed #d5dfd8; margin: 16px 0; }

/* サブメニュー（黄色の帯リンク）→ カード型リンク */
.is-recruit .legacy .sub_menu2 ul { display: grid; gap: 8px; margin: 12px 0 20px; }
.is-recruit .legacy .sub_menu2 li a {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 12px 16px !important; line-height: 1.6 !important; font-size: 15.5px !important;
  background: #fff !important; color: var(--ink) !important; text-decoration: none !important;
  border: 1px solid var(--line-color) !important; border-radius: 12px; box-shadow: var(--shadow-sm);
}
.is-recruit .legacy .sub_menu2 li a::after { content: "›"; color: var(--green-600); font-size: 20px; font-weight: 900; }
.is-recruit .legacy .sub_menu2 li a:hover { border-color: var(--green-500) !important; background: var(--green-050) !important; }

/* 写真 */
.is-recruit .legacy img { margin-block: 6px 12px; }
.is-recruit .legacy img[width="680"], .is-recruit .legacy img[width="670"], .is-recruit .legacy img[width="630"] { width: 100%; }

/* 地図 */
.is-recruit .legacy iframe[src*="google.com/maps"] {
  display: block; width: 100%; height: clamp(220px, 34vw, 320px) !important;
  margin: 10px 0 18px; border-radius: 12px; border: 1px solid var(--line-color) !important;
}

/* 本文内のリンクは緑系に統一（求人サイトはピンクだと警告色に見えるため） */
.is-recruit .legacy a:link, .is-recruit .legacy a:visited { color: var(--green-700); }
.is-recruit .legacy a:hover { color: var(--green-600); }

/* ============================================================
   2026-10-08 応募フォーム（instructor-recruit/entry.html）
   ・フォームの基本の見た目は style.css の .form-card / .field を使う
   ・ここでは .legacy 内のリセットの打ち消しと、メール欄・選択肢（ラジオ）を追加
   ============================================================ */
.is-recruit .legacy .entry-lead { margin: 0 0 24px; font-size: 15.5px; line-height: 1.9; color: var(--ink-2); }
.is-recruit .legacy .entry-form { margin: 0 0 8px; }
.is-recruit .legacy .entry-form .field input[type="email"] {
  width: 100%; min-height: 54px; padding: 15px 16px; font-size: 16px; font-family: inherit;
  border: 1.5px solid #d6e0da; border-radius: 12px; background: #fff; color: var(--ink);
  transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.is-recruit .legacy .entry-form .field input[type="email"]:hover { border-color: #b9cbbf; }
.is-recruit .legacy .entry-form .field input[type="email"]:focus {
  outline: none; border-color: var(--green-600); box-shadow: 0 0 0 4px rgba(41, 160, 79, .14);
}
.is-recruit .legacy .entry-form .field input[type="email"]:user-invalid { border-color: #d93025; background-color: #fff8f7; }
.is-recruit .legacy .entry-form textarea { padding: 15px 16px; }

/* 選択肢のグループ（fieldset）：label と同じく番号を付ける */
.is-recruit .legacy .entry-form fieldset.field { min-width: 0; margin-inline: 0; }
.is-recruit .legacy .entry-form fieldset.field > legend {
  float: left; width: 100%; display: flex; align-items: center; gap: 10px; padding: 0;
  margin-bottom: 10px; font-size: 14.5px; font-weight: 800;
}
.is-recruit .legacy .entry-form fieldset.field > legend::before {
  counter-increment: fld; content: counter(fld);
  position: absolute; left: 18px; top: 18px; width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 900; color: #fff; background: var(--green-600);
}
.is-recruit .legacy .entry-form fieldset.field:has(:checked) > legend::before { content: "✓"; background: var(--green-700); }
.is-recruit .legacy .entry-choices { clear: both; display: grid; gap: 8px; }
.is-recruit .legacy .entry-choice {
  display: flex; align-items: center; gap: 12px; margin: 0; padding: 13px 16px;
  border: 1.5px solid #d6e0da; border-radius: 12px; background: #fff;
  font-size: 15.5px; font-weight: 700; line-height: 1.5; cursor: pointer;
  transition: border-color .15s, background-color .15s;
}
.is-recruit .legacy .entry-choice:hover { border-color: #b9cbbf; }
.is-recruit .legacy .entry-choice input[type="radio"] {
  flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--green-600); cursor: pointer;
}
.is-recruit .legacy .entry-choice:has(:checked) { border-color: var(--green-600); background: var(--green-050); }
.is-recruit .legacy .entry-choice:has(:focus-visible) { box-shadow: 0 0 0 4px rgba(41, 160, 79, .18); }
.is-recruit .legacy .entry-form .form-foot a { color: var(--green-700); font-weight: 700; }

@media (max-width: 560px) {
  .is-recruit .legacy .entry-form fieldset.field > legend::before { left: 14px; top: 16px; width: 26px; height: 26px; font-size: 13px; }
  .is-recruit .legacy .entry-choice { font-size: 15px; padding: 12px 14px; }
}