/* 株式会社こはる野ケア 採用サイト */
:root {
  --green: #3fa66a;
  --dark: #2c5e43;
  --deep: #1f5f3f;
  --coral: #ef7f6d;
  --coral-d: #e06a57;
  --yellow: #f3c44f;
  --cream: #fff8ec;
  --white: #ffffff;
  --mint: #eef7ef;
  --line: #e6e0d2;
  --line2: #cfe6d5;
  --text: #3d352d;
  --muted: #7a6f63;
  --ja: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Rounded Mplus 1c", "Yu Gothic", "Meiryo", sans-serif;
  --en: "Quicksand", "Zen Maru Gothic", sans-serif;
  --r-card: 24px;
  --r-btn: 16px;
  --wrap: 1080px;
  --gut: 40px;
  --sec: 96px;
  --head-h: 100px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 110px; }
body {
  margin: 0;
  font-family: var(--ja);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.95;
  letter-spacing: 0.04em;
  color: var(--text);
  background: var(--cream);
  padding-top: var(--head-h);
  overflow-wrap: anywhere;
}
[hidden] { display: none !important; }
.sprite { display: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--dark); text-decoration: none; }
a:hover { text-decoration: underline; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; font-weight: 700; color: var(--dark); line-height: 1.5; letter-spacing: 0.06em; }
h2 { font-size: 32px; }
h3 { font-size: 22px; }
.en, .num, .date, .time, .tm { font-family: var(--en); font-weight: 700; letter-spacing: 0.02em; }
.nb { display: inline-block; max-width: 100%; }
.nw, .tel-num { white-space: nowrap; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gut); }
.wrap.narrow { max-width: 860px; }
.ic { width: 24px; height: 24px; flex: none; color: var(--green); }
.ic.big { width: 40px; height: 40px; }
.note { font-size: 14px; color: var(--muted); margin-top: 20px; }
.note.center, .lead.center { text-align: center; }
.lead { max-width: 760px; margin: 0 auto 36px; }
.text-col { max-width: 760px; margin: 0 auto; }
.tel-num { font-family: var(--en); font-weight: 700; font-size: 26px; color: var(--dark); letter-spacing: 0.04em; }
.tel-plain { font-family: var(--en); font-weight: 700; }

/* ---------- 見出し ---------- */
.dots { display: inline-flex; gap: 8px; }
.dots i { display: block; width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.dots i:nth-child(2) { background: var(--coral); }
.dots i:nth-child(3) { background: var(--yellow); }
.sec-h { text-align: center; margin-bottom: 44px; }
.sec-h .dots { margin-bottom: 10px; }
.sec-h h2 { display: block; }
.sec-h .en-label { display: block; font-family: var(--en); font-weight: 700; font-size: 13px; letter-spacing: 0.18em; color: var(--green); margin-top: 6px; }
.sec-h .lead { margin: 20px auto 0; text-align: center; }
h3 .h3t { display: inline; }
h3:not(.plain)::before, h2.sub::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--green); margin-right: 10px; vertical-align: 0.12em; }
h3.sub, h2.sub { font-size: 22px; margin: 40px 0 20px; }
.no.en { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--green); color: #fff; font-size: 18px; flex: none; }

/* ---------- 節 ---------- */
.sec { padding: var(--sec) 0; }
.sec.alt { background: var(--mint); }
.sec.plain { padding-top: 40px; }
.btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 20px; margin-top: 44px; }
.btns .btn { min-width: 280px; }

/* ---------- ボタン ---------- */
.btn, .form .submit button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  padding: 10px 64px 10px 28px;
  border-radius: var(--r-btn);
  font-family: var(--ja);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  border: 2px solid transparent;
  transition: background-color 0.15s, color 0.15s;
}
.btn:hover { text-decoration: none; }
.btn .t { display: block; }
.btn .ar { position: absolute; right: 14px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; }
.btn .ar .ic { width: 18px; height: 18px; }
.btn-coral { background: var(--coral); color: #fff; border-color: var(--coral); }
.btn-coral:hover { background: var(--coral-d); border-color: var(--coral-d); }
.btn-coral .ar .ic { color: var(--coral); }
.btn-green { background: var(--green); color: #fff; border-color: var(--green); }
.btn-green:hover { background: var(--dark); border-color: var(--dark); }
.btn-green .ar .ic { color: var(--green); }
.btn-outline { background: #fff; color: var(--dark); border-color: var(--green); }
.btn-outline:hover { background: var(--mint); }
.btn-outline .ar { background: var(--green); }
.btn-outline .ar .ic { color: #fff; }
.btn-white { background: #fff; color: var(--dark); border-color: #fff; }
.btn-white .ar { background: var(--green); }
.btn-white .ar .ic { color: #fff; }

/* ---------- ヘッダー ---------- */
.header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; pointer-events: none; }
.h-bar {
  pointer-events: auto;
  position: absolute; top: 14px; left: 20px; right: 20px;
  height: 72px;
  display: flex; align-items: center; gap: 20px;
  padding: 0 16px 0 20px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 20px;
  white-space: nowrap;
}
.h-logo { display: flex; align-items: center; gap: 12px; flex: none; }
.h-logo img { width: 190px; height: 49px; }
.h-logo .site { font-size: 13px; font-weight: 700; color: var(--dark); letter-spacing: 0.1em; padding-left: 12px; border-left: 1px solid var(--line); line-height: 1.3; }
.h-nav { flex: 1; display: flex; justify-content: center; }
.h-nav ul { display: flex; gap: 4px; }
.h-nav a { display: block; padding: 8px 12px; font-size: 15px; font-weight: 700; color: var(--dark); border-radius: 999px; }
.h-nav a:hover, .h-nav a[aria-current="page"] { background: var(--mint); text-decoration: none; }
.h-btns { display: flex; gap: 10px; flex: none; }
.h-btns .btn { min-height: 44px; padding: 4px 48px 4px 20px; font-size: 14px; border-radius: 12px; }
.h-btns .btn .ar { width: 24px; height: 24px; margin-top: -12px; right: 10px; }
.h-btns .btn .ar .ic { width: 16px; height: 16px; }
.menu-btn { display: none; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--green); color: #fff; padding: 0; cursor: pointer; align-items: center; justify-content: center; margin-left: auto; }
.menu-btn .ic { color: #fff; width: 24px; height: 24px; }
.drawer { pointer-events: auto; position: fixed; inset: 0; background: var(--cream); overflow-y: auto; padding: 14px 20px 40px; z-index: 60; }
.d-head { display: flex; align-items: center; justify-content: space-between; height: 60px; padding: 0 16px; background: #fff; border: 1px solid var(--line); border-radius: 20px; }
.d-logo img { width: 160px; height: 41px; }
.d-close { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--green); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.d-close .ic { color: #fff; }
.d-list { margin: 20px 0; background: #fff; border-radius: 20px; padding: 6px 20px; }
.d-list li + li { border-top: 1px dotted var(--line2); }
.d-list a { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; font-weight: 700; font-size: 16px; }
.d-btns { display: flex; flex-direction: column; gap: 12px; }
.d-tel { text-align: center; margin-top: 24px; font-size: 13px; }
.d-tel .lbl { display: block; }
body.menu-open { overflow: hidden; }

/* 固定ボタン */
.pcfix { display: none; position: fixed; right: 24px; bottom: 24px; z-index: 40; }
.pcfix a { display: flex; align-items: center; justify-content: center; width: 104px; height: 104px; border-radius: 50%; background: var(--coral); color: #fff; font-weight: 700; font-size: 14px; line-height: 1.45; text-align: center; letter-spacing: 0.04em; }
.pcfix a:hover { background: var(--coral-d); text-decoration: none; }
.pcfix .t { display: block; }
.pcfix .t .nb { display: block; }
.spbar { display: none; position: fixed; left: 12px; right: 12px; bottom: 10px; z-index: 40; gap: 8px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 20px; }
.spbar .btn { flex: 1; min-width: 0; min-height: 48px; padding: 4px 40px 4px 12px; font-size: 14px; border-radius: 12px; }
.spbar .btn .ar { width: 24px; height: 24px; margin-top: -12px; right: 8px; }
.spbar .btn .ar .ic { width: 16px; height: 16px; }

/* ---------- ページ見出し（下層） ---------- */
.page-head { padding: 28px 0 0; }
.page-head .wrap { display: grid; grid-template-columns: 1fr 260px; gap: 40px; align-items: center; }
.ph-txt h1 { font-size: 36px; line-height: 1.4; margin-top: 10px; }
.ph-txt .en-label { display: block; font-family: var(--en); font-weight: 700; font-size: 13px; letter-spacing: 0.18em; color: var(--green); margin-top: 8px; }
.ph-txt .dots { margin-top: 14px; }
.ph-img img { width: 260px; height: 260px; border-radius: 50%; object-fit: cover; }
.page-head.plain .wrap { grid-template-columns: 1fr; }
.page-head.plain .ph-txt { text-align: center; }
.breadcrumb { font-size: 13px; }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px 0; }
.breadcrumb li + li::before { content: "›"; margin: 0 8px; color: var(--muted); }
.breadcrumb a { color: var(--green); }
.breadcrumb span { color: var(--muted); }

/* ---------- 最初の画面 ---------- */
.hero { padding: 36px 0 var(--sec); }
.hero-in {
  display: grid;
  grid-template-columns: 21fr 52fr 21fr;
  column-gap: 3%;
  grid-template-areas: "txt txt txt" "btns btns btns" "sa main sb" "pts pts pts";
}
.hero-txt { grid-area: txt; text-align: center; }
.hero-tag { margin: 0 0 18px; }
.hero-tag > span { display: inline-block; padding: 4px 20px; border: 2px solid var(--green); border-radius: 999px; font-weight: 700; font-size: 15px; color: var(--dark); }
.hero h1 { font-size: clamp(34px, 4.4vw, 58px); font-weight: 900; line-height: 1.45; letter-spacing: 0.04em; }
.hero h1 .nb { display: block; }
.hero-lead { max-width: 720px; margin: 20px auto 0; }
.hero-btns { grid-area: btns; display: flex; justify-content: center; gap: 16px 20px; margin: 28px 0 40px; flex-wrap: wrap; }
.hero-btns .btn { min-width: 280px; }
.hero-main { grid-area: main; }
.hero-main img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 28px; }
.hero-side { padding-top: 40px; }
.hero-side-a { grid-area: sa; }
.hero-side-b { grid-area: sb; }
.hero-side img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 28px; }
.hero-points { grid-area: pts; margin-top: 40px; }
.hero-points ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; background: #fff; border-radius: var(--r-card); padding: 20px 16px; }
.hero-points li { display: flex; align-items: center; gap: 10px; padding: 4px 8px; font-weight: 700; font-size: 15px; color: var(--dark); line-height: 1.5; }
.hero-points li + li { border-left: 1px dotted var(--line2); }
.hero-points .pt { display: block; min-width: 0; }

/* ---------- カード ---------- */
.cards { display: grid; gap: 28px; }
.cards-4 { grid-template-columns: repeat(4, 1fr); }
.cards-3 { grid-template-columns: repeat(3, 1fr); }
.cards-2 { grid-template-columns: repeat(2, 1fr); }
.cards-center { justify-content: center; grid-template-columns: repeat(auto-fit, minmax(240px, 320px)); }
.card { display: flex; flex-direction: column; background: #fff; border-radius: var(--r-card); overflow: hidden; color: var(--text); }
.card:hover { text-decoration: none; }
.card:hover h2, .card:hover h3 { text-decoration: underline; }
.card-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.card-body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; gap: 10px; }
.card-body h2, .card-body h3 { font-size: 19px; line-height: 1.5; }
.card-body h2::before, .card-body h3::before { display: none; }
.card-body p { font-size: 15px; }
.card .more { margin-top: auto; align-self: flex-end; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14px; color: var(--dark); padding-top: 6px; }
.card .more .ar { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--green); }
.card .more .ar .ic { width: 16px; height: 16px; color: #fff; }
.card-round { padding: 28px 28px 0; display: flex; justify-content: center; }
.round { display: block; width: 150px; height: 150px; border-radius: 50%; overflow: hidden; }
.round img { width: 100%; height: 100%; object-fit: cover; }
.iv-card .card-body { text-align: center; align-items: center; }
.iv-card .iv-no { color: var(--green); font-size: 13px; letter-spacing: 0.18em; }
.iv-card h2, .iv-card h3 { font-size: 17px; }
.iv-meta { font-size: 13px; color: var(--muted); display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 10px; line-height: 1.6; }
.iv-meta .name { color: var(--text); font-weight: 700; font-size: 15px; }
.iv-meta .office { width: 100%; }
.tag { display: inline-block; align-self: flex-start; padding: 2px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; line-height: 1.7; }
.tag-regular { background: var(--green); color: #fff; }
.tag-part { background: var(--yellow); color: var(--text); }
.tag-kind { background: var(--mint); color: var(--dark); }
.tag-shift { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 2px solid var(--green); color: var(--dark); font-size: 15px; padding: 2px 16px 2px 10px; }
.tag-shift .ic { width: 20px; height: 20px; }
.job-dl { font-size: 14px; display: grid; gap: 4px; }
.job-dl div { display: flex; gap: 10px; align-items: flex-start; }
.job-dl dt { flex: none; min-width: 3.2em; color: #fff; background: var(--dark); border-radius: 6px; font-size: 12px; text-align: center; line-height: 1.6; padding: 2px 6px; margin-top: 4px; }
.job-dl dd { margin: 0; }
.of-addr { font-size: 14px; margin: 0; line-height: 1.7; }
.of-access, .of-cap { font-size: 14px; display: flex; gap: 6px; align-items: flex-start; margin: 0; }
.of-access .ic, .of-cap .ic { width: 20px; height: 20px; margin-top: 3px; }

/* ---------- 数字 ---------- */
.data-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.data-list.data-3 { max-width: 900px; margin: 0 auto; }
.data-list li { background: #fff; border-radius: var(--r-card); padding: 26px 20px 22px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.data-list .dl { font-weight: 700; color: var(--dark); font-size: 15px; line-height: 1.5; }
.data-list .dv { display: inline-block; position: relative; padding-bottom: 8px; }
.data-list .dv::after { content: ""; position: absolute; left: 10%; right: 10%; bottom: 0; height: 5px; border-radius: 999px; background: var(--yellow); }
.data-list .num { font-size: 46px; line-height: 1.1; color: var(--dark); }
.data-list .unit { font-weight: 700; font-size: 16px; color: var(--dark); margin-left: 4px; }
.data-list .dc { font-size: 13px; color: var(--muted); line-height: 1.6; }
.bars-wrap { display: grid; gap: 24px; margin-top: 28px; }
.bars-box { background: #fff; border-radius: var(--r-card); padding: 28px 32px; }
.bars-box h3 { font-size: 19px; margin-bottom: 18px; }
.bars li { display: grid; grid-template-columns: minmax(8em, 13em) 1fr 5em; align-items: center; gap: 14px; padding: 7px 0; }
.bars .bl { font-weight: 700; font-size: 15px; color: var(--dark); line-height: 1.5; }
.bars .bt { display: block; height: 16px; border-radius: 999px; background: var(--mint); overflow: hidden; }
.bars .bf { display: block; height: 100%; border-radius: 999px; background: var(--green); }
.bars .bv { text-align: right; }
.bars .num { font-size: 20px; color: var(--dark); }
.bars .unit { font-size: 13px; margin-left: 2px; }
.gender-bar { display: flex; height: 56px; border-radius: 999px; overflow: hidden; }
.gender-bar > span { display: flex; align-items: center; justify-content: center; gap: 10px; color: #fff; font-weight: 700; }
.gender-bar .g-f { background: var(--coral); }
.gender-bar .g-m { background: var(--green); }
.gender-bar .num { font-size: 22px; }
.gender-bar .unit { font-size: 13px; }

/* ---------- 勤務 ---------- */
.shift-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.shift-item { background: #fff; border-radius: var(--r-card); padding: 22px 20px; display: flex; flex-direction: column; gap: 8px; }
.shift-item .time { font-size: 22px; color: var(--dark); margin: 0; }
.shift-item p { font-size: 14px; }
.work-in { display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start; }
.work-in .shift-list { grid-template-columns: repeat(2, 1fr); }
.work-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-card); }

/* ---------- タイル・番号つき・アイコン一覧 ---------- */
.numbered { display: grid; gap: 24px; }
.nm { background: #fff; border-radius: var(--r-card); padding: 28px 32px; display: grid; grid-template-columns: 1fr 340px; gap: 28px; align-items: center; }
.nm:not(:has(.nm-img)) { grid-template-columns: 1fr; }
.nm-body .no { margin-bottom: 10px; }
.nm-body h3 { margin-bottom: 10px; }
.nm-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 18px; }
.numbered.compact { grid-template-columns: repeat(3, 1fr); }
.numbered.compact .nm { grid-template-columns: 1fr; align-content: start; }
.numbered.compact .nm h3 { font-size: 19px; }
.numbered.compact .nm p { font-size: 15px; }
.icon-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.icon-list li { background: #fff; border-radius: var(--r-card); padding: 22px 24px; display: flex; gap: 16px; align-items: flex-start; }
.icon-list li .ic { margin-top: 4px; }
.icon-list h3 { font-size: 19px; margin-bottom: 6px; }
.icon-list h3::before { display: none; }
.icon-list p { font-size: 15px; }
.icon-list.simple li { align-items: center; font-weight: 700; color: var(--dark); }
.icon-list.simple li span { line-height: 1.6; }
.check-list { background: #fff; border-radius: var(--r-card); padding: 16px 28px; }
.check-list li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; font-weight: 700; color: var(--dark); }
.check-list li + li { border-top: 1px dotted var(--line2); }
.check-list .ic { margin-top: 6px; width: 22px; height: 22px; }
.svc-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.svc { background: #fff; border-radius: var(--r-card); padding: 28px 26px; }
.svc h3 { font-size: 20px; margin-bottom: 10px; }
.svc p { font-size: 15px; }
.svc-offices { margin-top: 14px; border-top: 1px dotted var(--line2); padding-top: 10px; }
.svc-offices a { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; font-size: 14px; padding: 3px 0; }
.svc-offices .ic { width: 16px; height: 16px; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.col-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-card); }
.figs-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 36px; }
.figs-2 figure, .fig-wide, .iv-photo { margin: 0; }
.figs-2 img, .fig-wide img, .iv-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-card); }
.fig-wide { max-width: 760px; margin: 40px auto 0; }
.wj-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.wj { background: #fff; border-radius: var(--r-card); overflow: hidden; padding-bottom: 22px; }
.wj-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.wj-noimg { display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 2; background: var(--mint); }
.wj-noimg .ic { width: 64px; height: 64px; }
.wj h3 { font-size: 19px; margin: 18px 22px 8px; }
.wj p { font-size: 15px; margin: 0 22px; }

/* ---------- 流れ ---------- */
.flow-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; counter-reset: step; }
.flow-list li { background: #fff; border-radius: var(--r-card); padding: 26px 22px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.flow-list h3 { font-size: 19px; }
.flow-list h3::before { display: none; }
.flow-list p { font-size: 14px; text-align: left; }

/* ---------- Q&A ---------- */
.qa-list { display: grid; gap: 14px; }
.qa { background: #fff; border-radius: 20px; overflow: hidden; }
.qa summary { display: flex; align-items: center; gap: 14px; padding: 18px 20px; cursor: pointer; list-style: none; font-weight: 700; color: var(--dark); font-size: 17px; line-height: 1.6; }
.qa summary::-webkit-details-marker { display: none; }
.qa .q, .qa .al { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--green); color: #fff; font-size: 18px; flex: none; }
.qa .al { background: var(--coral); }
.qa .qt { flex: 1; }
.qa .tgl { flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--mint); display: flex; align-items: center; justify-content: center; transition: transform 0.2s; }
.qa .tgl .ic { width: 20px; height: 20px; }
.qa[open] .tgl { transform: rotate(180deg); }
.qa .a { display: flex; gap: 14px; padding: 4px 20px 22px; border-top: 1px dotted var(--line2); margin: 0 20px; padding-left: 0; padding-right: 0; padding-top: 16px; }
.qa .at { flex: 1; }
.qa .at p { font-size: 15px; }
.toc { padding: 0 0 8px; }
.toc ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.toc a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 18px; background: #fff; border: 2px solid var(--line2); border-radius: 999px; font-weight: 700; font-size: 14px; }
.toc a:hover { border-color: var(--green); text-decoration: none; }
.toc .ic { width: 18px; height: 18px; }

/* ---------- お知らせ ---------- */
.news-list { background: #fff; border-radius: var(--r-card); padding: 10px 28px; }
.news-list li { display: flex; gap: 20px; padding: 14px 0; align-items: baseline; }
.news-list li + li { border-top: 1px dotted var(--line2); }
.news-list .date { flex: none; color: var(--green); font-size: 15px; }
.news-list .txt { font-size: 15px; }

/* ---------- 表 ---------- */
.tbl-wrap { border: 1px solid var(--line2); border-radius: 16px; overflow: hidden; background: #fff; }
.tbl { width: 100%; border-collapse: collapse; font-size: 15px; }
.tbl th, .tbl td { padding: 14px 20px; text-align: left; vertical-align: top; border-bottom: 1px dotted var(--line2); }
.tbl tr:last-child th, .tbl tr:last-child td { border-bottom: 0; }
.tbl th { background: var(--mint); color: var(--dark); font-weight: 700; width: 11em; }
.tbl thead th { width: auto; border-bottom: 1px solid var(--line2); }
.tbl-3 tbody th { width: 15em; }
.tbl-office tbody th { width: 15em; }
.tbl-office td.tel { white-space: nowrap; }
.tbl-time th { width: 7em; }
.tbl-time .en { font-size: 16px; }
.tbl caption { text-align: left; font-weight: 700; padding: 10px 20px; }
.pay-main { display: block; font-weight: 700; color: var(--dark); }
.pay-detail { display: block; font-size: 14px; color: var(--muted); }

/* ---------- 月収の例 ---------- */
.pay-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.pay { background: #fff; border-radius: var(--r-card); padding: 26px 28px; }
.pay h3 { font-size: 18px; margin-bottom: 14px; }
.pay-items { display: grid; gap: 6px; }
.pay-items .pk { display: flex; justify-content: space-between; gap: 10px; font-size: 15px; padding: 6px 0; border-bottom: 1px dotted var(--line2); }
.pay-items .pv { color: var(--dark); }
.pay-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 12px; font-weight: 700; color: var(--dark); }
.pay-total .num { font-size: 30px; }

/* ---------- タブ・1日の流れ ---------- */
.tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 24px; }
.tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 54px; padding: 6px 12px; border-radius: 999px; border: 2px solid var(--green); background: #fff; color: var(--dark); font-family: var(--ja); font-weight: 700; font-size: 16px; cursor: pointer; }
.tabs button[aria-selected="true"] { background: var(--green); color: #fff; }
.tabs button[aria-selected="true"] .ic { color: #fff; }
.tab-panel { background: #fff; border-radius: var(--r-card); padding: 26px 28px; }
.tab-panel + .tab-panel { margin-top: 20px; }
.tab-panel h3 { margin-bottom: 16px; }
.timeline { background: #fff; border-radius: var(--r-card); padding: 10px 28px; }
.timeline li { display: flex; gap: 18px; padding: 10px 0; align-items: flex-start; position: relative; }
.timeline li + li { border-top: 1px dotted var(--line2); }
.timeline .tm { flex: none; width: 4.2em; color: var(--green); font-size: 17px; padding-top: 2px; }
.timeline .tc { flex: 1; }

/* ---------- カレンダー ---------- */
.cal-wrap { background: #fff; border-radius: var(--r-card); padding: 16px 12px; }
.cal { width: 100%; table-layout: fixed; border-collapse: collapse; }
.cal th { font-size: 13px; color: var(--muted); font-weight: 700; padding: 4px 0 8px; text-align: center; }
.cal th:nth-child(6) { color: var(--dark); }
.cal th:nth-child(7) { color: var(--coral); }
.cal td { text-align: center; padding: 6px 2px; vertical-align: top; }
.cal .d { display: block; font-size: 13px; color: var(--muted); line-height: 1.2; margin-bottom: 4px; }
.m { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; font-weight: 700; font-size: 15px; background: var(--mint); color: var(--dark); }
.m abbr { text-decoration: none; }
.m-early { background: var(--yellow); color: var(--text); }
.m-day { background: var(--green); color: #fff; }
.m-late { background: var(--dark); color: #fff; }
.m-night { background: var(--text); color: #fff; }
.m-ake { background: #fff; border: 2px solid var(--text); color: var(--text); }
.m-off { background: var(--line); color: var(--muted); }
.cal-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 18px; margin-top: 18px; font-size: 14px; }
.cal-legend li { display: flex; align-items: center; gap: 6px; }
.cal-legend .m { width: 28px; height: 28px; font-size: 13px; }
.cal-total { text-align: center; font-weight: 700; color: var(--dark); margin-top: 16px; }

/* ---------- 事業所の詳細 ---------- */
.of-top { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: start; }
.of-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-card); }
.of-tbl h2.sub { margin-top: 0; }
.mgr { background: #fff; border-radius: var(--r-card); padding: 36px; display: grid; grid-template-columns: 200px 1fr; gap: 36px; align-items: start; }
.mgr-round .round { width: 200px; height: 200px; }
.mgr-name { font-size: 22px; font-weight: 700; color: var(--dark); display: flex; align-items: baseline; gap: 12px; margin-bottom: 4px; }
.mgr-name .role { font-size: 15px; }
.mgr-meta { font-size: 14px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 4px 18px; margin-bottom: 14px; }

/* ---------- 先輩職員の声（詳細） ---------- */
.iv-head { text-align: center; margin-bottom: 36px; }
.iv-head .iv-no { display: block; color: var(--green); letter-spacing: 0.18em; font-size: 14px; margin-bottom: 8px; }
.iv-catch { font-size: 28px; line-height: 1.6; }
.iv-catch .ln { display: block; }
.iv-profile { background: #fff; border-radius: var(--r-card); padding: 32px 36px; display: grid; grid-template-columns: 160px 1fr; gap: 32px; align-items: center; }
.iv-round .round { width: 160px; height: 160px; }
.iv-name { display: flex; align-items: baseline; gap: 12px; margin-bottom: 10px; }
.iv-name .name { font-size: 24px; font-weight: 700; color: var(--dark); }
.iv-name .kana { font-size: 13px; color: var(--muted); }
.iv-dl { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 20px; font-size: 14px; }
.iv-dl div { display: flex; gap: 10px; }
.iv-dl dt { flex: none; color: var(--muted); min-width: 3em; }
.iv-dl dd { margin: 0; }
.iv-qas { margin-top: 40px; display: grid; gap: 28px; }
.iv-qa h3 { display: flex; gap: 12px; align-items: flex-start; font-size: 20px; margin-bottom: 10px; }
.iv-qa h3::before { display: none; }
.iv-qa h3 .q { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--green); color: #fff; font-size: 17px; flex: none; margin-top: 1px; }
.iv-qa h3 .h3t { flex: 1; }
.iv-sch, .iv-msg { margin-top: 40px; }
.iv-sch h3, .iv-msg h3 { margin-bottom: 16px; }
.iv-msg { background: #fff; border-radius: var(--r-card); padding: 28px 32px; }

/* ---------- 代表メッセージ ---------- */
.msg-in { display: grid; grid-template-columns: 320px 1fr; gap: 40px; align-items: start; }
.msg-img { margin: 0; }
.msg-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-card); }
.msg-img figcaption { margin-top: 10px; font-size: 14px; display: flex; gap: 10px; align-items: baseline; }
.msg-img .name { font-weight: 700; font-size: 17px; color: var(--dark); }
.sign { text-align: right; margin-top: 24px; display: flex; justify-content: flex-end; gap: 12px; align-items: baseline; }
.sign .name { font-size: 20px; font-weight: 700; color: var(--dark); }
.msg-career { margin: 24px 0 0; padding-top: 18px; border-top: 1px dotted var(--line2); font-size: 14px; }
.msg-career dt { font-weight: 700; color: var(--dark); }
.msg-career dd { margin: 0; }

/* ---------- キャリア ---------- */
.career-list { display: grid; gap: 16px; }
.career-path { background: #fff; border-radius: var(--r-card); padding: 20px 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.career-path .cp { display: inline-block; padding: 6px 18px; border-radius: 999px; background: var(--mint); color: var(--dark); font-weight: 700; font-size: 15px; }
.career-path .cp-ar { display: inline-flex; }

/* ---------- 募集要項 ---------- */
.filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 36px; }
.filters button { padding: 8px 22px; min-height: 46px; border-radius: 999px; border: 2px solid var(--green); background: #fff; color: var(--dark); font-family: var(--ja); font-weight: 700; font-size: 15px; cursor: pointer; }
.filters button[aria-pressed="true"] { background: var(--green); color: #fff; }
.job-top { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center; margin-bottom: 56px; }
.job-intro { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.job-name { font-size: 30px; }
.job-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-card); }
.back-link { text-align: center; margin-top: 32px; }
.back-link a { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; }

/* ---------- フォーム ---------- */
.form-lead { margin-bottom: 36px; }
.form-tel { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 10px; background: #fff; border-radius: 20px; padding: 16px 20px; font-size: 14px; }
.form-tel .lbl { width: 100%; text-align: center; }
.form-tel .who { font-weight: 700; color: var(--dark); }
.form-tel .ic { width: 22px; height: 22px; }
.form { background: #fff; border-radius: var(--r-card); padding: 36px 40px; }
.form-msg { display: none; background: #fdebe7; color: #b3412f; border-radius: 12px; padding: 12px 18px; margin-bottom: 24px; font-weight: 700; }
.form-msg.is-show { display: block; }
.row { display: grid; grid-template-columns: 240px 1fr; gap: 10px 24px; padding: 18px 0; border-bottom: 1px dotted var(--line2); }
.rl { font-weight: 700; color: var(--dark); padding-top: 12px; }
.rl label, .rl .lab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.req, .opt { display: inline-block; flex: none; font-size: 12px; line-height: 1.6; padding: 1px 10px; border-radius: 999px; color: #fff; background: var(--coral); }
.opt { background: #bbb3a7; }
.rf input[type="text"], .rf input[type="tel"], .rf input[type="email"], .rf select, .rf textarea {
  width: 100%; min-height: 52px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; font-family: var(--ja); font-size: 16px; color: var(--text);
}
.rf textarea { min-height: 140px; resize: vertical; }
.rf input:focus, .rf select:focus, .rf textarea:focus { outline: 2px solid var(--green); outline-offset: 1px; border-color: var(--green); }
.sel-wrap { position: relative; display: block; }
.sel-wrap select { appearance: none; -webkit-appearance: none; padding-right: 44px; }
.sel-wrap .ic { position: absolute; right: 14px; top: 50%; margin-top: -10px; width: 20px; height: 20px; pointer-events: none; }
.date-sel { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 10px; }
.date-2 { display: grid; gap: 10px; }
.sub-lab { display: grid; grid-template-columns: 5em 1fr; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: var(--dark); }
.choices { display: flex; flex-wrap: wrap; gap: 8px 18px; padding-top: 10px; }
.choice { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 15px; }
.choice input { width: 20px; height: 20px; accent-color: var(--green); margin: 0; flex: none; }
.hint { font-size: 13px; color: var(--muted); margin: 6px 0 0; }
.err { display: none; font-size: 13px; color: #b3412f; font-weight: 700; margin: 6px 0 0; }
.is-error .err { display: block; }
.is-error input[type="text"], .is-error input[type="tel"], .is-error input[type="email"], .is-error select { border-color: var(--coral); background: #fff6f4; }
.agree { padding: 24px 0 8px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.agree .choice { font-weight: 700; color: var(--dark); }
.txt-link { display: inline-flex; align-items: center; gap: 2px; font-size: 14px; color: var(--green); }
.txt-link .ic { width: 16px; height: 16px; }
.submit { text-align: center; margin-top: 24px; }
.submit button { min-width: 300px; }
.openday-list { background: #fff; border-radius: var(--r-card); padding: 10px 28px; }
.openday-list li { display: flex; flex-wrap: wrap; gap: 4px 20px; padding: 14px 0; align-items: baseline; }
.openday-list li + li { border-top: 1px dotted var(--line2); }
.od-date { font-weight: 700; color: var(--dark); }
.od-time { color: var(--green); }

/* ---------- 会社概要 ---------- */
.history { background: #fff; border-radius: var(--r-card); padding: 10px 28px; margin: 0; }
.history div { display: flex; gap: 20px; padding: 14px 0; }
.history div + div { border-top: 1px dotted var(--line2); }
.history dt { flex: none; width: 7.5em; color: var(--green); font-size: 16px; white-space: nowrap; }
.history dd { margin: 0; }
.privacy { display: grid; gap: 20px; margin-top: 24px; counter-reset: pv; }
.privacy li { background: #fff; border-radius: 20px; padding: 20px 26px; }
.privacy h2 { font-size: 18px; margin-bottom: 6px; }
.privacy h2::before { counter-increment: pv; content: counter(pv); display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--green); color: #fff; font-family: var(--en); font-size: 14px; margin-right: 10px; vertical-align: 0.1em; }

/* ---------- 閉じの導線・フッター ---------- */
.closing { background: var(--mint); padding: var(--sec) 0; }
.c-box { background: #fff; border-radius: 28px; padding: 48px 40px; text-align: center; }
.c-box h2 { font-size: 26px; }
.c-tel { margin: 20px 0 6px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 12px; }
.c-tel .lbl { width: 100%; font-weight: 700; font-size: 15px; }
.c-tel .num { display: inline-flex; align-items: center; gap: 6px; }
.c-tel .tel-num { font-size: 34px; }
.c-tel .hrs { font-size: 14px; }
.c-note { font-size: 14px; color: var(--muted); }
.c-box .btns { margin-top: 28px; }
.footer { background: var(--deep); color: #fff; padding: 64px 0 28px; }
.footer a { color: #fff; }
.f-in { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; }
.f-logo img { width: 200px; height: 52px; }
.f-offices { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; margin-top: 24px; font-size: 13px; line-height: 1.8; }
.f-oname { font-weight: 700; font-size: 14px; margin-bottom: 2px; }
.f-h { font-weight: 700; margin-bottom: 10px; }
.f-links { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 20px; font-size: 14px; }
.f-links a { display: inline-block; padding: 3px 0; }
.f-sub { margin-top: 18px; font-size: 13px; }
.f-copy { margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.25); font-size: 13px; text-align: center; }

/* ========== 幅ごとの調整 ========== */
@media (min-width: 1400px) {
  .pcfix { display: block; }
}
@media (max-width: 1399px) {
  .h-bar { gap: 12px; padding: 0 12px 0 16px; }
  .h-logo .site { display: none; }
  .h-nav ul { gap: 0; }
  .h-nav a { font-size: 14px; padding: 8px 9px; }
  .h-btns .btn { padding: 4px 40px 4px 14px; font-size: 13px; }
  .h-btns .btn .ar { right: 8px; }
}
@media (max-width: 1199px) {
  :root { --head-h: 84px; }
  html { scroll-padding-top: 90px; }
  .h-bar { top: 10px; left: 12px; right: 12px; height: 60px; padding: 0 10px 0 16px; }
  .h-logo img { width: 160px; height: 41px; }
  .h-logo .site { display: none; }
  .h-nav, .h-btns { display: none; }
  .menu-btn { display: flex; }
}
@media (max-width: 1100px) {
  .cards-4 { grid-template-columns: repeat(2, 1fr); }
  .nm { grid-template-columns: 1fr 280px; }
}
@media (max-width: 1023px) {
  .shift-list { grid-template-columns: repeat(2, 1fr); }
  .flow-list { grid-template-columns: repeat(2, 1fr); }
  .work-in { grid-template-columns: 1fr 320px; }
  .hero-points ul { grid-template-columns: repeat(2, 1fr); }
  .hero-points li:nth-child(3) { border-left: 0; }
  .hero-points li:nth-child(n+3) { border-top: 1px dotted var(--line2); padding-top: 10px; }
}
@media (max-width: 900px) {
  :root { --gut: 18px; --sec: 56px; }
  body { font-size: 15px; padding-bottom: 84px; }
  h2 { font-size: 24px; }
  h3 { font-size: 19px; }
  h3.sub, h2.sub { font-size: 19px; margin-top: 32px; }
  .sec-h { margin-bottom: 32px; }
  .btn, .form .submit button { min-height: 54px; font-size: 15px; }
  .btns { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 32px; }
  .btns .btn { min-width: 0; }
  .spbar { display: flex; }
  .page-head .wrap { grid-template-columns: 1fr; gap: 20px; }
  .page-head { padding-top: 16px; }
  .ph-txt h1 { font-size: 27px; }
  .ph-img img { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 20px; }
  /* 最初の画面: 写真→札→見出し→説明→条件→ボタン→写真2枚 */
  .hero { padding: 12px 0 var(--sec); }
  .hero-in { grid-template-columns: 1fr 1fr; column-gap: 12px; grid-template-areas: "main main" "txt txt" "pts pts" "btns btns" "sa sb"; }
  .hero-main img { border-radius: 20px; }
  .hero-txt { margin-top: 24px; }
  .hero h1 { font-size: clamp(22px, 7vw, 34px); letter-spacing: 0.02em; }
  .hero-lead { margin-top: 14px; text-align: left; }
  .hero-points { margin-top: 20px; }
  .hero-points ul { grid-template-columns: repeat(2, 1fr); padding: 14px 12px; gap: 6px; }
  .hero-points li { font-size: 14px; gap: 8px; padding: 6px 4px; }
  .hero-points li + li { border-left: 0; }
  .hero-points li:nth-child(2) { border-left: 1px dotted var(--line2); }
  .hero-points li:nth-child(n+3) { border-top: 1px dotted var(--line2); }
  .hero-points li:nth-child(4) { border-left: 1px dotted var(--line2); }
  .hero-points .ic.big { width: 32px; height: 32px; }
  .hero-btns { flex-direction: column; align-items: stretch; gap: 12px; margin: 20px 0 24px; }
  .hero-btns .btn { min-width: 0; }
  .hero-side { padding-top: 0; }
  .hero-side img { border-radius: 20px; }
  .cards { gap: 18px; }
  .cards-3, .cards-2 { grid-template-columns: 1fr 1fr; }
  .card-body { padding: 16px 16px 18px; gap: 8px; }
  .card-body h2, .card-body h3 { font-size: 16px; }
  .card-body p { font-size: 14px; }
  .card-round { padding: 20px 20px 0; }
  .round { width: 120px; height: 120px; }
  .data-list { grid-template-columns: 1fr 1fr; gap: 12px; }
  .data-list li { padding: 20px 10px 18px; }
  .data-list .num { font-size: 36px; }
  .data-list .dl { font-size: 14px; }
  .bars-box { padding: 20px 18px; }
  .bars li { grid-template-columns: minmax(6em, 9em) 1fr 4em; gap: 8px; }
  .bars .bl { font-size: 13px; }
  .bars .num { font-size: 17px; }
  .gender-bar { height: 48px; }
  .gender-bar .num { font-size: 18px; }
  .shift-list { gap: 12px; }
  .shift-item { padding: 16px 14px; }
  .shift-item .time { font-size: 19px; }
  .work-in { grid-template-columns: 1fr; gap: 20px; }
  .work-in .shift-list { grid-template-columns: 1fr 1fr; }
  .nm { grid-template-columns: 1fr; padding: 22px 20px; gap: 18px; }
  .numbered.compact { grid-template-columns: 1fr; }
  .icon-list { grid-template-columns: 1fr; }
  .icon-list li { padding: 18px 18px; }
  .svc-list { grid-template-columns: 1fr; }
  .two-col { grid-template-columns: 1fr; gap: 24px; }
  .figs-2 { grid-template-columns: 1fr; gap: 16px; margin-top: 24px; }
  .wj-list { grid-template-columns: 1fr 1fr; gap: 14px; }
  .wj h3 { margin: 14px 16px 6px; font-size: 16px; }
  .wj p { margin: 0 16px; font-size: 14px; }
  .flow-list { grid-template-columns: 1fr; gap: 12px; }
  .flow-list li { flex-direction: row; text-align: left; flex-wrap: wrap; align-items: center; padding: 18px 18px; gap: 6px 12px; }
  .flow-list li h3 { flex: 1; }
  .flow-list li p { width: 100%; }
  .qa summary { font-size: 15px; padding: 14px 14px; gap: 10px; }
  .qa .q, .qa .al { width: 30px; height: 30px; font-size: 15px; }
  .qa .a { margin: 0 14px; }
  .news-list { padding: 6px 18px; }
  .news-list li { flex-direction: column; gap: 0; padding: 12px 0; }
  .news-list .txt { font-size: 14px; }
  .tbl th, .tbl td { display: block; width: auto; padding: 10px 16px; }
  .tbl th { border-bottom: 0; }
  .tbl thead { display: none; }
  .tbl-3 td::before { content: attr(data-l); display: block; font-size: 12px; font-weight: 700; color: var(--green); }
  .tbl-time tr { display: flex; }
  .tbl-time th { flex: none; width: 5.2em; }
  .tbl-time td { flex: 1; }
  .tbl-time tr + tr th, .tbl-time tr + tr td { border-top: 1px dotted var(--line2); }
  .tbl-time th { border-bottom: 0; }
  .tbl-time td { border-bottom: 0; }
  .pay-list { grid-template-columns: 1fr; gap: 14px; }
  .pay { padding: 20px 18px; }
  .pay-total .num { font-size: 26px; }
  .tabs { grid-template-columns: 1fr 1fr; gap: 8px; }
  .tabs button { min-height: 48px; font-size: 15px; }
  .tab-panel { padding: 18px 14px; }
  .timeline { padding: 6px 18px; }
  .timeline .tm { width: 3.8em; font-size: 15px; }
  .cal-wrap { padding: 12px 6px; }
  .m { width: clamp(26px, 8.4vw, 36px); height: clamp(26px, 8.4vw, 36px); font-size: clamp(12px, 3.8vw, 15px); }
  .cal td { padding: 5px 1px; }
  .of-top { grid-template-columns: 1fr; gap: 20px; }
  .mgr { grid-template-columns: 1fr; padding: 24px 20px; gap: 20px; justify-items: center; text-align: left; }
  .mgr-round .round { width: 160px; height: 160px; }
  .mgr-body { width: 100%; }
  .iv-catch { font-size: clamp(17px, 5.2vw, 21px); letter-spacing: 0.02em; }
  .iv-catch .ln { display: inline; }
  .iv-profile { grid-template-columns: 1fr; padding: 24px 20px; gap: 20px; justify-items: center; }
  .iv-pbody { width: 100%; }
  .iv-dl { grid-template-columns: 1fr; }
  .iv-qa h3 { font-size: 17px; }
  .iv-msg { padding: 20px 18px; }
  .msg-in { grid-template-columns: 1fr; gap: 24px; }
  .msg-img { max-width: 420px; margin: 0 auto; }
  .job-top { grid-template-columns: 1fr; gap: 20px; margin-bottom: 36px; }
  .job-top .job-img { order: -1; }
  .job-name { font-size: 22px; }
  .form { padding: 20px 16px; }
  .row { grid-template-columns: 1fr; gap: 6px; padding: 14px 0; }
  .rl { padding-top: 0; }
  .date-sel { gap: 6px; }
  .submit button { min-width: 0; width: 100%; }
  .c-box { padding: 32px 20px; border-radius: 24px; }
  .c-box h2 { font-size: 20px; }
  .c-tel .tel-num { font-size: 28px; }
  .footer { padding: 44px 0 24px; }
  .f-in { grid-template-columns: 1fr; gap: 32px; }
  .f-offices { grid-template-columns: 1fr; gap: 12px; }
  .history div { flex-direction: column; gap: 0; }
  .history dt { width: auto; }
  .toc ul { gap: 8px; }
  .toc a { font-size: 13px; padding: 7px 14px; }
}
@media (max-width: 600px) {
  .cards-3, .cards-2, .cards-4 { grid-template-columns: 1fr; }
  .cards-center { grid-template-columns: 1fr; }
  .wj-list { grid-template-columns: 1fr; }
  .work-in .shift-list { grid-template-columns: 1fr; }
  .shift-list { grid-template-columns: 1fr; }
  .h-logo img { width: 150px; height: 39px; }
}
@media (max-width: 400px) {
  h2 { font-size: 22px; }
  .ph-txt h1 { font-size: 24px; }
  .hero-points ul { grid-template-columns: 1fr; }
  .hero-points li { border-left: 0 !important; border-top: 1px dotted var(--line2); }
  .hero-points li:first-child { border-top: 0; }
  .hero-tag > span { font-size: 13px; padding: 3px 14px; }
  .data-list { grid-template-columns: 1fr; }
  .tabs { grid-template-columns: 1fr 1fr; }
  .tabs button { font-size: 14px; padding: 6px 6px; gap: 4px; }
  .filters button { font-size: 14px; padding: 6px 14px; }
  .bars li { grid-template-columns: 1fr; gap: 4px; }
  .bars .bv { text-align: left; }
  .cal-legend { gap: 8px 12px; font-size: 13px; }
  .sub-lab { grid-template-columns: 1fr; gap: 4px; }
  .h-logo img { width: 140px; height: 36px; }
}

/* ========== 手元での直し（2026-10-01） ========== */
/* 先輩職員の声のカード: パソコンは2列・写真を左、文字を右に置く（見出しが細かく折れないように） */
.cards-iv { grid-template-columns: repeat(2, 1fr); }
.cards-iv .iv-card { flex-direction: row; align-items: center; }
.cards-iv .iv-card .card-round { padding: 24px 0 24px 28px; flex: none; }
.cards-iv .iv-card .card-body { text-align: left; align-items: flex-start; padding: 24px 26px 22px 22px; }
.cards-iv .iv-card h2, .cards-iv .iv-card h3 { font-size: 18px; }
.cards-iv .iv-meta { justify-content: flex-start; }
.f-addr { display: inline-block; }
/* 本文の最後の行が1〜2文字だけ残らないようにする */
.hero-lead, .lead, .card-body p, .sec p { text-wrap: pretty; }
.iv-card .ln { display: block; }
@media (max-width: 900px) {
  /* スマホは写真を上・文字を下の縦積み（見出しを意味のまとまりで2行にする） */
  .cards-iv { grid-template-columns: 1fr; }
  .cards-iv .iv-card { flex-direction: column; align-items: stretch; }
  .cards-iv .iv-card .card-round { padding: 24px 24px 0; }
  .cards-iv .iv-card .round { width: 120px; height: 120px; }
  .cards-iv .iv-card .card-body { text-align: center; align-items: center; padding: 16px 18px 20px; }
  .cards-iv .iv-meta { justify-content: center; }
  .cards-iv .iv-card h2, .cards-iv .iv-card h3 { font-size: 16px; }
}
