/* sat-jobs base — 骨組みと部品。色・書体・角丸は子テーマが :root の変数で決める */
:root{
  --ink:#16202c; --ink-2:#4f5b69; --bg:#fff; --surface:#fff; --soft:#f3f5f8; --line:#dfe4ea;
  --brand:#1d4ed8; --brand-ink:#fff; --accent:#e11d48; --accent-ink:#fff; --pay:#16202c;
  --f-b:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;
  --f-d:var(--f-b); --f-n:var(--f-b);
  --r:10px; --r-lg:18px; --shadow:0 1px 2px rgb(16 24 40 / .06),0 6px 18px rgb(16 24 40 / .06);
  --wrap:1180px; --gut:16px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;font-family:var(--f-b);scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-b);font-size:16px;line-height:1.75;letter-spacing:.01em;font-feature-settings:"palt" 0;overflow-wrap:anywhere}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--brand)}
a:hover{text-decoration-thickness:2px}
input,button,select,textarea{font:inherit;color:inherit}
h1,h2,h3{line-height:1.35;text-wrap:balance;margin:0}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px}
.skip:focus{left:8px}
main:focus{outline:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(var(--gut),env(safe-area-inset-left));padding-right:max(var(--gut),env(safe-area-inset-right))}
.num{font-family:var(--f-n);font-variant-numeric:tabular-nums}

/* ヘッダー */
.hd{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.hd__in{display:flex;align-items:center;gap:12px;min-height:64px}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;min-height:44px;margin-right:auto}
.logo__mark{width:36px;height:36px;flex:none}
.logo__t{display:flex;flex-direction:column;line-height:1.2}
.logo__name{font-family:var(--f-d);font-weight:800;font-size:1.15rem;letter-spacing:.02em}
.logo__sub{font-size:.72rem;color:var(--ink-2)}
.gnav ul{display:flex;gap:4px}
.gnav a{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:999px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.94rem}
.gnav a:hover{background:var(--soft)}
.hd__cta{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:700;text-decoration:none;white-space:nowrap}
.menu{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;position:relative}
.menu__bars,.menu__bars::before,.menu__bars::after{position:absolute;left:12px;width:18px;height:2px;background:var(--ink);border-radius:2px;content:"";transition:transform .2s}
.menu__bars{top:21px}.menu__bars::before{top:-6px;left:0}.menu__bars::after{top:6px;left:0}
.menu[aria-expanded="true"] .menu__bars{background:transparent}
.menu[aria-expanded="true"] .menu__bars::before{transform:translateY(6px) rotate(45deg)}
.menu[aria-expanded="true"] .menu__bars::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:860px){
  .menu{display:block}
  .hd__cta{padding:0 14px;font-size:.9rem}
  .gnav{position:absolute;left:0;right:0;top:100%;background:var(--surface);border-bottom:1px solid var(--line);display:none;padding:8px var(--gut) 16px}
  .gnav.is-open{display:block}
  .gnav ul{flex-direction:column}
  .gnav a{border-radius:10px;padding:0 12px}
}
@media (max-width:420px){.logo__sub{display:none}.hd__cta{display:none}}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-weight:700;text-decoration:none;border:2px solid var(--brand);cursor:pointer}
.btn:hover{filter:brightness(1.06)}
.btn--ghost{background:transparent;color:var(--brand)}
.btn--accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn--sm{min-height:44px;padding:0 16px;font-size:.9rem}
.btn:disabled{opacity:.45;cursor:not-allowed}
.more{margin-top:24px;display:flex;flex-wrap:wrap;gap:12px}

/* 見出し・区切り */
.sec{padding:56px 0 0}
.band{padding:56px 0;background:var(--soft);margin-top:56px}
.h2{font-family:var(--f-d);font-size:clamp(1.35rem,1.1rem + 1vw,1.9rem);font-weight:800;margin-bottom:18px}
.sec__head{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.sec__head .h2{margin:0}
.sec__lead{color:var(--ink-2);margin-top:-8px;margin-bottom:20px}
.textlink{font-weight:700;display:inline-flex;align-items:center;min-height:44px}

/* 写真 */
.photo{margin:0;position:relative}
.photo img{width:100%;height:100%;object-fit:cover}
.photo__cap{position:absolute;right:8px;top:8px;font-size:.68rem;line-height:1.4;padding:2px 8px;border-radius:999px;background:rgb(0 0 0 / .52);color:#fff}

/* 絞り込み */
.filters{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin;margin-bottom:6px}
.chip{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);font-weight:700;font-size:.92rem;cursor:pointer;white-space:nowrap}
.chip__n{font-family:var(--f-n);font-size:.78rem;min-width:1.6em;padding:1px 6px;border-radius:999px;background:var(--soft);color:var(--ink-2);text-align:center}
.chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.chip.is-on .chip__n{background:rgb(255 255 255 / .2);color:#fff}
.filters__live{min-height:1px;font-size:.85rem;color:var(--ink-2);margin-bottom:10px}

/* 求人カード */
.jobs{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:640px){.jobs{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.jobs{grid-template-columns:repeat(3,1fr)}}
.job{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}
.job[hidden]{display:none}
.job:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgb(16 24 40 / .06),0 14px 30px rgb(16 24 40 / .10)}
.job:focus-within{outline:3px solid var(--brand);outline-offset:2px}
.job__media{display:block;aspect-ratio:16/9;background:var(--soft);overflow:hidden;position:relative;isolation:isolate}
.job__media::before{content:"";position:absolute;inset:-12%;background:var(--img) center/cover no-repeat;filter:blur(18px) saturate(1.1);opacity:.55;z-index:-1}
.job__media img{width:100%;height:100%;object-fit:contain}
.job__media--none{display:grid;place-items:center;font-family:var(--f-d);font-size:2.4rem;font-weight:800;color:var(--brand)}
.job__body{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px;flex:1}
.job__comp{font-size:.82rem;color:var(--ink-2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.job__new{font-size:.7rem;font-weight:800;padding:1px 8px;border-radius:999px;background:var(--accent);color:var(--accent-ink)}
.job__title{font-size:1.08rem;font-weight:800;font-family:var(--f-d)}
.job__link{color:var(--ink);text-decoration:none}
.job__link::after{content:"";position:absolute;inset:0;z-index:1}
.job__link:focus-visible{outline:none}
.job__pay{display:flex;flex-direction:column;gap:2px}
.job__payv{font-family:var(--f-n);font-weight:800;font-size:1.3rem;color:var(--pay);line-height:1.3}
.job__note{font-size:.8rem;color:var(--ink-2);line-height:1.5}
.job__where{font-size:.88rem;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 12px}
.job__tags{display:flex;flex-wrap:wrap;gap:6px}
.job__tags li{font-size:.76rem;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--soft);color:var(--ink)}
.job__point{font-size:.84rem;color:var(--ink-2);line-height:1.6;border-left:3px solid var(--line);padding-left:10px}
.job__pointl{display:block;font-size:.7rem;font-weight:700;color:var(--ink-2);letter-spacing:.06em}
.job__foot{margin-top:auto;padding-top:8px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.job__go{font-weight:800;font-size:.9rem;color:var(--brand);display:inline-flex;align-items:center;gap:6px}
.job__go::after{content:"";width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}
.job__cmp{position:relative;z-index:2;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1.5px solid var(--line);border-radius:999px;font-weight:700;font-size:.88rem;cursor:pointer;background:var(--surface)}
.job__cmp input{width:20px;height:20px;accent-color:var(--brand);margin:0}
.job__cmp:has(input:checked){border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--surface))}
.job__rank{position:absolute;top:12px;left:12px;z-index:2;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-family:var(--f-n);font-weight:800;font-size:1.15rem;box-shadow:0 2px 8px rgb(0 0 0 / .2)}
.job__bar{display:block;height:8px;border-radius:999px;background:var(--soft);overflow:hidden}
.job__bar span{display:block;height:100%;background:var(--accent);border-radius:999px}
.job__check{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;font-size:.72rem;text-align:center}
.job__check li{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-radius:8px;background:var(--soft)}
.job__check li span[aria-hidden]{font-weight:800;font-size:1rem}
.job__check .is-ok span[aria-hidden]{color:var(--ok,#1b7a3a)}
.job__check .is-no{color:var(--ink-2)}

/* 比べる */
.ctray{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;width:min(640px,calc(100% - 24px));padding:10px 14px;border-radius:18px;background:var(--ink);color:#fff;box-shadow:0 10px 30px rgb(0 0 0 / .3)}
.ctray[hidden]{display:none}
.ctray__t{font-weight:700}
.ctray__h{font-weight:400;font-size:.8rem;opacity:.8;margin-left:4px}
.ctray .btn{background:#fff;color:var(--ink);border-color:#fff}
.ctray__clear{min-height:44px;background:none;border:0;color:#fff;text-decoration:underline;cursor:pointer}
.cmp{width:min(980px,calc(100% - 24px));max-height:calc(100dvh - 32px);border:0;border-radius:var(--r-lg);padding:0;color:var(--ink)}
.cmp::backdrop{background:rgb(10 15 30 / .55)}
.cmp__head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface)}
.cmp__t{font-size:1.1rem;font-family:var(--f-d)}
.cmp__x{min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);font-weight:700;cursor:pointer}
.cmp__scroll{overflow-x:auto;padding:4px 18px 8px;position:relative}
.cmp__table{border-collapse:collapse;width:100%;min-width:560px;font-size:.92rem}
.cmp__table th,.cmp__table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.cmp__table th{width:7.5em;color:var(--ink-2);font-weight:700;position:sticky;left:0;background:var(--surface)}
.cmp__table td.is-pay{font-family:var(--f-n);font-weight:800;font-size:1.05rem}
.cmp__none{color:var(--ink-2);font-size:.85rem}
.cmp__note{font-size:.8rem;color:var(--ink-2);padding:0 18px 18px}

/* 記事カード */
.posts{display:grid;gap:12px;grid-template-columns:1fr}
@media (min-width:760px){.posts{grid-template-columns:repeat(2,1fr)}}
.post{display:flex;flex-direction:column;gap:6px;height:100%;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);text-decoration:none}
.post:hover{border-color:var(--brand)}
.post__cat{font-size:.75rem;font-weight:700;color:var(--brand)}
.post__title{font-weight:700;line-height:1.55}
.post__date{font-size:.8rem;color:var(--ink-2);font-family:var(--f-n)}

/* FAQ */
.faq__list{display:grid;gap:10px}
.faq__item{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.faq__item summary{cursor:pointer;list-style:none;padding:16px 48px 16px 18px;font-weight:700;position:relative;min-height:44px}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"";position:absolute;right:20px;top:50%;width:10px;height:10px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq__item[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq__a{padding:0 18px 16px;color:var(--ink)}
.faq__a p+p{margin-top:.8em}

/* ページ */
.pg{padding-top:16px;padding-bottom:24px}
.pg--text{max-width:820px}
.page__head{margin:12px 0 24px}
.page__eyebrow{font-size:.85rem;font-weight:700;color:var(--brand);margin-bottom:6px}
.page__t{font-family:var(--f-d);font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);font-weight:800}
.page__lead{margin-top:10px;color:var(--ink-2)}
.page__meta{margin-top:10px;font-size:.85rem;color:var(--ink-2)}
.page__intro{margin-bottom:24px}
.updated{margin-top:32px;font-size:.82rem;color:var(--ink-2)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:0 4px;font-size:.82rem;color:var(--ink-2)}
.crumbs li{display:flex;align-items:center}
.crumbs li+li::before{content:"/";margin:0 6px;color:var(--line)}
.crumbs a{color:var(--ink-2);display:inline-flex;align-items:center;min-height:44px;min-width:44px}
.pager{margin-top:28px;display:flex;gap:6px;flex-wrap:wrap}
.pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink)}
.pager .current{background:var(--ink);color:#fff;border-color:var(--ink)}
.empty{padding:28px;border:1.5px dashed var(--line);border-radius:var(--r-lg);display:grid;gap:10px;justify-items:start;background:var(--surface)}
.empty__t{font-weight:800;font-size:1.1rem}

/* 本文 */
.prose{font-size:1.02rem;line-height:1.95}
.prose>*+*{margin-top:1.1em}
.prose h2{font-family:var(--f-d);font-size:1.45rem;margin-top:2.2em;padding-bottom:8px;border-bottom:2px solid var(--line)}
.prose h3{font-size:1.15rem;margin-top:1.8em}
.prose ul{list-style:disc;padding-left:1.4em}
.prose ol{list-style:decimal;padding-left:1.4em}
.prose li+li{margin-top:.4em}
.prose table{width:100%;border-collapse:collapse;font-size:.95rem;display:block;overflow-x:auto}
.prose th,.prose td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.prose th{background:var(--soft)}
.prose a{font-weight:600}
.prose blockquote{margin-left:0;padding:12px 16px;border-left:4px solid var(--brand);background:var(--soft);border-radius:0 8px 8px 0}

/* 送客バナー */
.referral{margin:56px auto 0;max-width:var(--wrap);padding:0 var(--gut)}
.referral__l{font-size:.78rem;color:var(--ink-2);margin-bottom:8px}
.referral img{border-radius:12px}

/* フッター */
.ft{margin-top:72px;background:var(--ink);color:#e7ebf0;padding:48px 0 24px}
.ft .logo{color:#fff}
.ft .logo__sub{color:#c3cad3}
.ft__in{display:grid;gap:32px;grid-template-columns:1fr}
@media (min-width:860px){.ft__in{grid-template-columns:1.2fr 1fr}}
.ft__about p{margin-top:12px;font-size:.9rem;color:#c3cad3}
.ft__nav ul{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 16px}
.ft__nav a{display:inline-flex;align-items:center;min-height:44px;color:#fff;text-decoration:none;font-size:.92rem}
.ft__nav a:hover{text-decoration:underline}
.ft__copy{margin-top:28px;font-size:.78rem;color:#9aa4b1}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* 点検で直した所：押せる大きさ44px以上・文字12px以上・写真注記は不透明の地 */
.gnav a{min-width:44px;justify-content:center}
.job__link{display:inline-flex;align-items:center;min-height:44px}
.job__new,.photo__cap{font-size:.75rem}
.photo__cap{background:#1d232b;color:#fff}
.job__cmp{position:relative;padding:0 16px 0 12px}
.job__cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}
.job__cmp span{display:inline-flex;align-items:center;gap:8px}
.job__cmp span::before{content:"";width:20px;height:20px;border:2px solid var(--ink-2);border-radius:6px;background:#fff;flex:none}
.job__cmp input:checked+span::before{background:var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5 8.5 14 15 6.5' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;border-color:var(--brand)}
.job__cmp input:focus-visible+span::before{outline:3px solid var(--brand);outline-offset:2px}
.job__cmp input:disabled+span{opacity:.45}
.job__check{font-size:.75rem}
.chip__n{font-size:.75rem}
.logo__sub{font-size:.75rem}
.ft__nav a{min-width:44px}
.job__pointl{font-size:.75rem}
.job__cmp{min-height:48px}
