:root{
  --ink:#13253d;
  --ink-2:#3b4d66;
  --muted:#6b7d94;
  --paper:#f3f6fa;
  --card:#ffffff;
  --line:#dde4ee;
  --line-strong:#c2cedd;
  --brand:#1f5fbf;
  --brand-ink:#174a96;
  --brand-bg:#e8eff9;
  --amber:#d9801f;
  --amber-bg:#fff7e6;
  --radius:6px;
  --maxw:1120px;
  --font-body:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-head:"Zen Kaku Gothic New","Noto Sans JP","Hiragino Sans",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.75;font-feature-settings:"palt"}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
h1,h2,h3{font-family:var(--font-head);font-weight:700;line-height:1.3;margin:0;letter-spacing:.01em}
h1{font-size:clamp(26px,4vw,44px);letter-spacing:.005em}
h2{font-size:clamp(18px,2.2vw,22px)}
h3{font-size:16px}
p{margin:0}
ul{list-style:none;margin:0;padding:0}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}

/* header */
.site-head{background:var(--card);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;height:60px;gap:16px}
.brand{font-family:var(--font-head);font-weight:700;font-size:18px;display:flex;align-items:center;gap:10px}
.brand .mark{width:26px;height:26px;border-radius:50%;background:var(--brand);position:relative;flex:none}
.brand .mark::after{content:"";position:absolute;inset:8px;border-radius:50%;background:#fff}
.nav{display:flex;gap:18px;font-size:14px;color:var(--ink-2)}
.nav a.for-hosp{color:var(--amber);font-weight:500}
@media(max-width:640px){.nav .hide-sm{display:none}}

/* hero */
.hero{background:linear-gradient(180deg,#ffffff 0%,#edf2fa 100%);border-bottom:1px solid var(--line);padding:44px 0 40px}
.hero h1{max-width:22em}
.hero .lede{margin-top:14px;color:var(--ink-2);max-width:36em;font-size:16px}
.search{margin-top:24px;display:grid;grid-template-columns:1fr 1fr auto;gap:10px;max-width:760px}
.search select,.search button{height:46px;border-radius:var(--radius);font:inherit;font-size:15px}
.search select{border:1px solid var(--line-strong);background:#fff;padding:0 12px;color:var(--ink);appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%233b4c53' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.search button{border:0;background:var(--brand);color:#fff;padding:0 22px;font-weight:600;cursor:pointer}
.search button:hover{background:var(--brand-ink)}
@media(max-width:640px){.search{grid-template-columns:1fr}}
.values{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:14px;color:var(--ink-2)}
.values li{display:flex;align-items:center;gap:7px}
.values li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand)}
.job .place{font-weight:400;color:var(--muted);font-size:14px}
.hero-facts{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;color:var(--muted)}
.hero-facts b{color:var(--ink);font-weight:600}

/* sections */
.section{padding:36px 0}
.section + .section{border-top:1px solid var(--line)}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}
.section-head .more{font-size:14px;color:var(--brand)}

/* job rows */
.jobs{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.job{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:16px 18px;border-top:1px solid var(--line)}
.job:first-child{border-top:0}
.job .title{font-weight:600;font-size:16px;line-height:1.45}
.job .title a:hover{color:var(--brand-ink)}
.job .hosp{color:var(--ink-2);font-size:14px;margin-top:2px}
.job .meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted);margin-top:8px}
.job .meta .ok{color:var(--brand-ink)}
.job .actions{display:flex;flex-direction:column;gap:8px;align-self:center}
@media(max-width:640px){.job{grid-template-columns:1fr}.job .actions{flex-direction:row}}
.job.pick{background:var(--amber-bg);box-shadow:inset 4px 0 0 var(--amber)}
.job.pick .flag{display:inline-block;font-size:12px;color:var(--amber);border:1px solid var(--amber);border-radius:3px;padding:0 6px;margin-right:8px;vertical-align:2px;line-height:1.6}
.btn{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 14px;border-radius:var(--radius);font-size:13px;font-weight:600;white-space:nowrap;border:1px solid var(--line-strong);background:#fff;color:var(--ink)}
.btn:hover{text-decoration:none;border-color:var(--ink-2)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand-ink);border-color:var(--brand-ink)}
.tag{display:inline-block;font-size:12px;line-height:1.6;padding:0 7px;border-radius:3px;background:var(--paper);color:var(--ink-2);border:1px solid var(--line)}
.tag.direct{background:var(--brand-bg);color:var(--brand-ink);border-color:transparent}

/* link grids */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.grid a{background:var(--card);padding:12px 14px;display:flex;justify-content:space-between;align-items:baseline;font-size:14px}
.grid a:hover{background:var(--brand-bg);text-decoration:none}
.grid a .n{color:var(--muted);font-size:12px}
.grid a.empty{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips a{font-size:13px;border:1px solid var(--line-strong);border-radius:999px;padding:4px 12px;background:#fff}
.chips a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.chips a:hover{text-decoration:none;border-color:var(--ink)}

/* list page layout */
.list-head{padding:28px 0 20px}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:10px}
.crumbs a:hover{color:var(--ink)}
.list-head .count{color:var(--ink-2);margin-top:6px;font-size:14px}
.two{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:start;padding-bottom:48px}
@media(max-width:860px){.two{grid-template-columns:1fr}}
.side h3{font-size:13px;color:var(--muted);font-weight:500;margin:18px 0 8px}
.side h3:first-child{margin-top:0}
.side ul a{display:flex;justify-content:space-between;padding:5px 0;font-size:14px;border-bottom:1px solid var(--line)}
.side ul a .n{color:var(--muted);font-size:12px}
.side ul a.on{font-weight:600;color:var(--brand-ink)}

/* detail */
.detail{padding:28px 0 56px;display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:start}
@media(max-width:860px){.detail{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.card + .card{margin-top:16px}
.facts{display:grid;grid-template-columns:7em 1fr;gap:8px 12px;font-size:14px}
.facts dt{color:var(--muted)}
.facts dd{margin:0}
.evidence{margin-top:14px;padding:14px 16px;background:var(--paper);border-left:3px solid var(--line-strong);font-size:14px;color:var(--ink-2);white-space:pre-wrap;word-break:break-word}
.evidence small{display:block;color:var(--muted);margin-bottom:6px;font-size:12px}
.cta .btn{width:100%;height:44px;font-size:14px}
.cta .btn + .btn{margin-top:10px}
.cta p.note{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.6}
.verified{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--brand-ink);background:var(--brand-bg);padding:10px 12px;border-radius:var(--radius);margin-bottom:16px}
.verified svg{flex:none;margin-top:3px}

/* hospital cta banner */
.hosp-banner{margin-top:24px;border:1px dashed var(--amber);border-radius:var(--radius);padding:16px 18px;background:var(--amber-bg);display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;font-size:14px}
.hosp-banner b{display:block;font-size:15px}
.hosp-banner .btn{border-color:var(--amber);color:var(--amber)}

/* footer */
.site-foot{border-top:1px solid var(--line);padding:28px 0 40px;font-size:13px;color:var(--muted)}
.site-foot .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between}
.site-foot a:hover{color:var(--ink)}
.empty{padding:40px 20px;text-align:center;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
@media(prefers-reduced-motion:no-preference){.btn,.grid a,.chips a{transition:background-color .12s,border-color .12s}}

@media(max-width:640px){.grid{grid-template-columns:repeat(3,1fr)}.grid a{padding:10px 10px;font-size:13px}.grid.depts{grid-template-columns:repeat(2,1fr)}}

.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px;align-items:center}
.hero-copy .search{max-width:none}
.hero-art svg{display:block;width:100%;height:auto;border-radius:20px;box-shadow:0 18px 40px -22px rgba(19,37,61,.35)}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr;gap:22px}.hero-art{order:-1}.hero-art svg{height:210px}}

.brand-wrap{display:flex;align-items:center;gap:12px;min-width:0}
.brand-sub{font-size:12px;color:var(--muted);padding-left:12px;border-left:1px solid var(--line-strong);white-space:nowrap}
@media(max-width:900px){.brand-sub{display:none}}
.hero-art img{display:block;width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;border-radius:20px;box-shadow:0 18px 40px -22px rgba(19,37,61,.35)}
@media(max-width:860px){.hero-art img{height:210px;aspect-ratio:auto}}

.more-note{margin-top:12px;font-size:13px;color:var(--muted)}
.more-note a{color:var(--brand-ink)}
.fine{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.6}
@media(max-width:860px){.hero-art{width:100%;max-width:460px;margin:0 auto}.hero-art svg,.hero-art img{height:auto;aspect-ratio:16/11}}

.seg{display:inline-flex;gap:2px;margin-top:14px;padding:3px;border:1px solid var(--line-strong);border-radius:999px;background:#fff}
.seg a{padding:6px 16px;border-radius:999px;font-size:14px;color:var(--ink-2);white-space:nowrap}
.seg a:hover{text-decoration:none;background:var(--brand-bg)}
.seg a .n{margin-left:6px;font-size:12px;color:var(--muted)}
.seg a[aria-current="true"]{background:var(--ink);color:#fff}
.seg a[aria-current="true"] .n{color:#c7d6ea}
.emp-toggle{grid-column:1/-1;justify-self:start;display:inline-flex}
.emp-toggle label{position:relative}
.emp-toggle input{position:absolute;opacity:0;pointer-events:none}
.emp-toggle span{display:inline-block;padding:7px 22px;border:1px solid var(--line-strong);background:#fff;font-size:14px;cursor:pointer;color:var(--ink-2)}
.emp-toggle label:first-child span{border-radius:999px 0 0 999px}
.emp-toggle label:last-child span{border-radius:0 999px 999px 0;margin-left:-1px}
.emp-toggle input:checked + span{background:var(--ink);border-color:var(--ink);color:#fff}
.emp-toggle input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}

.brand{white-space:nowrap}
@media(max-width:520px){.brand{font-size:14px;gap:8px}.brand .mark{width:22px;height:22px}.brand .mark::after{inset:6px}.nav{gap:12px;font-size:13px}.site-head .wrap{gap:8px}}

.hero-art img{object-position:50% 22%}

/* 写真は背景の飾り：右側に薄く敷き、左へ溶かす。主役は見出しと検索欄 */
.hero{position:relative;overflow:hidden}
.hero .hero-grid{display:block;position:relative;z-index:1}
.hero .hero-copy{max-width:640px}
.hero .hero-art{position:absolute;top:0;right:0;bottom:0;left:auto;width:min(62%,800px);max-width:none;margin:0;order:0;z-index:0;pointer-events:none}
.hero .hero-art img,.hero .hero-art svg{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:62% 24%;border-radius:0;box-shadow:none;opacity:.78;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 36%);mask-image:linear-gradient(to right,transparent 0%,#000 36%)}
@media(max-width:860px){
  .hero .hero-art{left:0;width:100%}
  .hero .hero-art img,.hero .hero-art svg{height:100%;opacity:.2;object-position:58% 20%;-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 80%);mask-image:linear-gradient(to bottom,#000 0%,transparent 80%)}
}

@media(max-width:860px){
  .hero .hero-art img,.hero .hero-art svg{opacity:.42;-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 72%);mask-image:linear-gradient(to bottom,#000 0%,transparent 72%)}
}

/* hero headline: bold, large, marker accent */
.hero h1{font-size:clamp(34px,5.6vw,60px);font-weight:900;line-height:1.25;letter-spacing:.01em;color:var(--ink)}
.hero h1 .hl{background:linear-gradient(transparent 62%,#ffd34d 62%,#ffd34d 92%,transparent 92%);padding:0 .08em}
.hero .hero-copy{max-width:680px}
.hero button[type=submit],.hero .hero-search button{background:var(--amber);color:#fff;font-weight:700}
.hero button[type=submit]:hover,.hero .hero-search button:hover{background:#c26f16}

/* recent jobs: 3x3 square cards */
.job-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none;margin:0;padding:0}
.job-grid .job.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 1px 2px rgba(19,37,61,.04)}
.job-grid .job.card:first-child{border-top:1px solid var(--line)}
.job-grid .job.card:hover{border-color:var(--brand);box-shadow:0 4px 14px rgba(31,95,191,.12)}
.job-grid .job.card .meta{flex-direction:column;gap:4px}
@media(max-width:900px){.job-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.job-grid{grid-template-columns:1fr}}
.job-grid .job.card,.job-grid .job.card + .job.card{margin:0}
.job-grid{align-items:stretch}
