/* ===== Tokens ===== */
:root{
  --ink:#1B1F3C;        /* 本文・見出し（Tenth Revolution ネイビー） */
  --ink-2:#4F5470;      /* 補足テキスト */
  --line:#E6E2D9;       /* 罫線 */
  --paper:#FAF9F5;      /* 背景（クリーム） */
  --card:#FFFFFF;
  --teal:#036765;       /* アクション・リンク（明るい背景用） */
  --teal-deep:#024B4A;
  --teal-soft:#E3F1EF;
  --mint:#8AFC96;       /* 濃色背景のアクセント */
  --coral:#D8644D;      /* 数字・強調（大きい文字用） */
  --coral-deep:#B3472F; /* 小さい文字用 */
  --coral-soft:#F8E4DE;
  --night:#1B1F3C;      /* 濃色セクション */
  --radius-s:6px;
  --radius-l:14px;
  --wrap:1120px;
  --jp:"Helvetica Neue",Helvetica,Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",Meiryo,sans-serif;
  --num:"Helvetica Neue",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--jp);font-size:16px;line-height:1.8;letter-spacing:.01em;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--teal)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.num{font-family:var(--num);font-feature-settings:"tnum";letter-spacing:0}
h1,h2,h3{line-height:1.35;letter-spacing:.01em;margin:0}
p{margin:0 0 1em}
.muted{color:var(--ink-2)}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;background:#fff;padding:8px 12px;z-index:99}

/* ===== Header ===== */
.site-head{position:sticky;top:0;z-index:40;background:rgba(244,246,248,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;gap:24px;height:64px}
.brand{display:flex;flex-direction:column;line-height:1.1;text-decoration:none;color:var(--ink);font-weight:700}
.brand span{font-family:var(--num);font-size:17px;letter-spacing:.01em}
.brand small{font-size:11px;color:var(--ink-2);font-weight:500;letter-spacing:.08em}
.nav{display:flex;gap:22px;margin-left:auto;align-items:center}
.nav a{color:var(--ink);text-decoration:none;font-size:14px;font-weight:500}
.nav a:hover{color:var(--teal)}
.nav a[aria-current="page"]{color:var(--teal);font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:700;font-size:15px;text-decoration:none;border:2px solid transparent;cursor:pointer;font-family:var(--jp);transition:background .15s,color .15s}
.btn-primary{background:var(--teal);color:#fff}
.btn-primary:hover{background:var(--teal-deep)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-sm{padding:8px 16px;font-size:14px}
.menu-toggle{display:none;white-space:nowrap;margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font:inherit;font-size:14px}
@media (max-width:820px){
  .menu-toggle{display:block}
  .nav{display:none;position:absolute;top:64px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:flex-start;padding:16px 24px 24px;border-bottom:1px solid var(--line);gap:14px}
  .nav.open{display:flex}
}

/* ===== Hero ===== */
.hero{padding:72px 0 56px}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(34px,5.2vw,60px);font-weight:900;letter-spacing:-.01em;line-height:1.22}
.hero h1 .line{display:block}
.hero .lead{font-size:17px;color:var(--ink-2);max-width:34em;margin:24px 0 32px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.hero-verbs{display:flex;gap:10px;margin-top:36px;flex-wrap:wrap}
.hero-verbs a{display:flex;gap:10px;align-items:baseline;text-decoration:none;color:var(--ink);border:1px solid var(--line);background:var(--card);padding:10px 14px;border-radius:var(--radius-s);font-size:14px}
.hero-verbs a b{font-size:18px}
.hero-verbs a:hover{border-color:var(--teal)}

/* Ticker: 実データの求人を流す */
.ticker{background:var(--night);color:#E8ECF5;border-radius:var(--radius-l);padding:20px 0 0;overflow:hidden;box-shadow:0 30px 60px -30px rgba(15,26,51,.55)}
.ticker-head{display:flex;justify-content:space-between;align-items:baseline;padding:0 22px 12px;font-size:13px;color:#A9B4CC;border-bottom:1px solid rgba(255,255,255,.08)}
.ticker-head strong{color:#fff;font-size:15px}
.ticker-window{height:360px;overflow:hidden;position:relative;mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent)}
.ticker-list{list-style:none;margin:0;padding:0;animation:scrollUp 60s linear infinite}
.ticker:hover .ticker-list{animation-play-state:paused}
.ticker-list li{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:12px 22px;border-bottom:1px solid rgba(255,255,255,.06)}
.ticker-list .t-title{font-size:14px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticker-list .t-co{font-size:12px;color:#A9B4CC;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticker-list .t-sal{grid-row:1/3;grid-column:2;align-self:center;font-family:var(--num);font-weight:600;color:var(--mint);font-size:15px;text-align:right}
.ticker-foot{padding:14px 22px;font-size:13px;background:rgba(255,255,255,.04)}
.ticker-foot a{color:#fff}
@keyframes scrollUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker-list{animation:none}.ticker-window{overflow-y:auto}}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:40px}.ticker-window{height:280px}}

/* ===== Sections ===== */
section{padding:88px 0}
.sec-head{max-width:720px;margin-bottom:44px}
.sec-head h2{font-size:clamp(26px,3.4vw,38px);font-weight:900}
.sec-head p{color:var(--ink-2);margin-top:14px}
.band{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dark{background:var(--night);color:#E8ECF5}
.dark .sec-head p,.dark .muted{color:#A9B4CC}
.dark a{color:#fff}

/* Stats strip (会社資料の数値) */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink)}
.stat{padding:22px 20px 22px 0;border-right:1px solid var(--line)}
.stat + .stat{padding-left:20px}
.stat:last-child{border-right:0}
.stat b{display:block;font-family:var(--num);font-size:clamp(30px,3.6vw,44px);font-weight:600;line-height:1.1;letter-spacing:-.02em}
.stat span{font-size:13px;color:var(--ink-2)}
.stats-note{font-size:12px;color:var(--ink-2);margin-top:12px}
@media (max-width:720px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(3){padding-left:0}.stat{border-bottom:1px solid var(--line)}}

/* Services: 3つの動詞 */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:var(--radius-l);background:var(--card);overflow:hidden}
.svc{padding:34px 30px 30px;border-right:1px solid var(--line);display:flex;flex-direction:column}
.svc:last-child{border-right:0}
.svc .verb{font-size:56px;font-weight:900;line-height:1;color:var(--teal);margin-bottom:18px}
.svc h3{font-size:21px;font-weight:900;margin-bottom:4px}
.svc .en{font-family:var(--num);font-size:13px;color:var(--ink-2);margin-bottom:16px}
.svc ul{list-style:none;padding:0;margin:0 0 20px;border-top:1px solid var(--line)}
.svc li{padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.6}
.svc li b{display:block;font-size:15px}
.svc .fit{margin-top:auto;font-size:13.5px;background:var(--paper);padding:12px 14px;border-radius:var(--radius-s)}
.svc .fit strong{display:block;font-size:12px;color:var(--ink-2);font-weight:700;margin-bottom:2px}
.sow{margin-top:20px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:22px 28px;border-radius:var(--radius-l);border:1px dashed var(--ink-2)}
.sow h3{font-size:18px;font-weight:900}
.sow p{margin:4px 0 0;font-size:14.5px;color:var(--ink-2)}
@media (max-width:900px){.services{grid-template-columns:1fr}.svc{border-right:0;border-bottom:1px solid var(--line)}.svc:last-child{border-bottom:0}}

/* Focus roles */
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden}
.role{background:var(--card);padding:24px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:6px}
.role:hover{background:#FDFCF9}
.role h3{font-size:17px;font-weight:700}
.role p{font-size:14px;color:var(--ink-2);margin:0}
.role .meta{margin-top:auto;padding-top:12px;display:flex;justify-content:space-between;font-size:13px;color:var(--ink-2)}
.role .meta b{font-family:var(--num);color:var(--ink);font-size:15px}
.role.lead{background:var(--night);color:#fff;grid-column:span 2}
.role.lead p,.role.lead .meta{color:#A9B4CC}
.role.lead .meta b{color:var(--mint)}
.role.lead h3{font-size:22px}
@media (max-width:600px){.role.lead{grid-column:auto}}

/* Revolent */
.rev-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.steps{list-style:none;padding:0;margin:0;counter-reset:s}
.steps li{position:relative;padding:0 0 26px 64px;counter-increment:s}
.steps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:42px;height:42px;border-radius:50%;border:2px solid var(--mint);color:var(--mint);font-family:var(--num);font-weight:600;font-size:18px;display:grid;place-items:center}
.steps li:not(:last-child)::after{content:"";position:absolute;left:20px;top:44px;bottom:6px;width:2px;background:rgba(138,252,150,.35)}
.steps h3{font-size:19px;font-weight:900;color:#fff}
.steps h3 small{font-family:var(--num);font-size:12px;color:#A9B4CC;font-weight:500;margin-left:8px;letter-spacing:.06em}
.steps p{margin:6px 0 0;font-size:14.5px;color:#C9D1E3}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tabs button{font:inherit;font-size:14px;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#E8ECF5;cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--mint);color:var(--night);border-color:var(--mint);font-weight:700}
.platform{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-l);padding:24px}
.platform .from{font-size:13px;color:#A9B4CC;margin-bottom:6px}
.platform .from b{color:#fff;font-weight:500}
.platform .arrow{font-size:13px;color:var(--mint);margin:10px 0}
.platform .to{font-size:20px;font-weight:900;color:#fff}
.platform .certs{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.platform .certs span{font-family:var(--num);font-size:12.5px;padding:3px 9px;border-radius:4px;background:rgba(138,252,150,.14);color:#CFF9D4}
.rev-terms{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:14px}
.rev-terms div{border-top:1px solid rgba(255,255,255,.15);padding-top:10px}
.rev-terms b{display:block;color:#fff;font-size:15px}
.rev-stats{display:grid;grid-template-columns:repeat(5,1fr);margin-top:56px;border-top:1px solid rgba(255,255,255,.18)}
.rev-stats div{padding:18px 12px 0 0}
.rev-stats b{display:block;font-family:var(--num);font-size:32px;font-weight:600;color:var(--mint);line-height:1.1}
.rev-stats span{font-size:12.5px;color:#A9B4CC}
@media (max-width:900px){.rev-grid{grid-template-columns:1fr;gap:36px}.rev-stats{grid-template-columns:repeat(3,1fr);row-gap:16px}}

/* Patterns (ケース) */
.patterns{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pattern{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-l);padding:28px}
.pattern .who{font-size:13px;color:var(--ink-2)}
.pattern h3{font-size:19px;font-weight:900;margin:6px 0 16px}
.pattern dl{margin:0;display:grid;grid-template-columns:5.5em 1fr;gap:8px 12px;font-size:14.5px;line-height:1.65}
.pattern dt{font-weight:700;color:var(--ink-2)}
.pattern dd{margin:0}
.pattern .model{display:inline-block;margin-top:18px;font-size:13px;font-weight:700;color:var(--teal);background:var(--teal-soft);padding:4px 10px;border-radius:4px}
@media (max-width:820px){.patterns{grid-template-columns:1fr}}

/* Process */
.process{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:p;border-top:2px solid var(--ink)}
.process li{counter-increment:p;padding:18px 18px 0 0}
.process li::before{content:counter(p,decimal-leading-zero);font-family:var(--num);font-weight:600;color:var(--teal);font-size:14px;display:block;margin-bottom:6px}
.process h3{font-size:16px;font-weight:900;margin-bottom:6px}
.process p{font-size:13.5px;color:var(--ink-2);line-height:1.7}
@media (max-width:820px){.process{grid-template-columns:1fr 1fr;row-gap:12px}}

/* Candidates */
.cand{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.checks{list-style:none;padding:0;margin:0}
.checks li{padding:14px 0 14px 34px;border-bottom:1px solid var(--line);position:relative;font-size:15px}
.checks li::before{content:"";position:absolute;left:4px;top:21px;width:14px;height:8px;border-left:2.5px solid var(--teal);border-bottom:2.5px solid var(--teal);transform:rotate(-45deg)}
.checks b{display:block}
@media (max-width:820px){.cand{grid-template-columns:1fr}}

/* Contact */
.contact{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.contact h2{font-size:clamp(28px,3.6vw,42px);font-weight:900}
.contact-box{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-l);padding:28px}
.contact-box a.mail{font-family:var(--num);font-size:18px;word-break:break-all}
.contact-box .row{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px}
.contact-box .row:last-child{border-bottom:0}
.contact-box .row span{display:block;color:#A9B4CC;font-size:12px}
@media (max-width:820px){.contact{grid-template-columns:1fr}}

/* Footer */
.site-foot{background:#12152B;color:#A9B4CC;font-size:13px;padding:40px 0}
.site-foot .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.site-foot a{color:#E8ECF5}
.site-foot p{margin:0 0 4px}

/* ===== Jobs page ===== */
.jobs-hero{padding-top:52px;padding-bottom:28px}
.jobs-hero h1{font-size:clamp(28px,4vw,44px);font-weight:900}
.jobs-hero p{color:var(--ink-2);max-width:44em;margin-top:12px}
.jobs-summary{display:flex;gap:28px;flex-wrap:wrap;margin-top:22px;font-size:13px;color:var(--ink-2)}
.jobs-summary b{display:block;font-family:var(--num);font-size:28px;color:var(--ink);font-weight:600;line-height:1.1}
.filters{position:sticky;top:64px;z-index:30;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}
.filters .wrap{display:flex;flex-direction:column;gap:12px}
.f-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.f-search{flex:1 1 280px;position:relative}
.f-search input{width:100%;font:inherit;font-size:15px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--card)}
.f-row select{font:inherit;font-size:14px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--card);color:var(--ink)}
.f-salary{display:flex;align-items:center;gap:8px;font-size:14px;white-space:nowrap}
.f-salary input{width:140px;accent-color:var(--teal)}
.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.chip{font:inherit;font-size:13.5px;white-space:nowrap;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip .c{font-family:var(--num);opacity:.6;margin-left:4px}
.f-reset{font:inherit;font-size:13px;background:none;border:0;color:var(--teal);text-decoration:underline;cursor:pointer;padding:4px}
.result-bar{display:flex;justify-content:space-between;align-items:center;padding:20px 0 10px;font-size:14px;color:var(--ink-2)}
.result-bar b{font-family:var(--num);color:var(--ink);font-size:18px}
.job-list{list-style:none;margin:0 0 64px;padding:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden}
.job{border-bottom:1px solid var(--line)}
.job:last-child{border-bottom:0}
.job details > summary{list-style:none;display:grid;grid-template-columns:1fr 180px;gap:6px 24px;padding:18px 22px;cursor:pointer}
.job details > summary::-webkit-details-marker{display:none}
.job details[open] > summary{background:#FDFCF9}
.job .j-title{font-weight:700;font-size:16px;line-height:1.5}
.job .j-co{font-size:13.5px;color:var(--ink-2)}
.job .j-co .conf{font-size:11.5px;border:1px solid var(--ink-2);border-radius:3px;padding:0 5px;margin-left:6px}
.job .j-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.job .j-tags span{font-size:12px;padding:2px 8px;border-radius:4px;background:var(--paper);color:var(--ink-2)}
.job .j-tags span.cat{background:var(--teal-soft);color:var(--teal-deep)}
.job .j-sal{grid-column:2;grid-row:1/4;align-self:center;text-align:right}
.job .j-sal b{font-family:var(--num);font-size:20px;font-weight:600}
.job .j-sal small{font-size:12px;color:var(--ink-2)}
.job .bar{height:6px;border-radius:3px;background:var(--coral-soft);margin-top:6px;overflow:hidden}
.job .bar i{display:block;height:100%;background:var(--coral)}
.job .j-body{padding:0 22px 20px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-end;background:#FDFCF9}
.job .j-body p{margin:0;font-size:14px;color:var(--ink-2);max-width:46em}
.empty{padding:48px 22px;text-align:center;color:var(--ink-2)}
@media (max-width:640px){.job details > summary{grid-template-columns:1fr}.job .j-sal{grid-column:1;grid-row:auto;text-align:left}.job .bar{max-width:180px}.filters{position:static}}

/* ===== Legal page ===== */
.legal{padding-top:56px;padding-bottom:88px}
.legal h1{font-size:32px;font-weight:900;margin-bottom:24px}
.legal h2{font-size:20px;font-weight:900;margin:40px 0 12px}
.legal table{width:100%;border-collapse:collapse;background:var(--card);font-size:14.5px}
.legal th,.legal td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}
.legal th{width:32%;background:#F4F1EA;font-weight:700}
.todo{background:#FFF4D6;color:#7A4B00;padding:1px 6px;border-radius:3px;font-weight:700}

@media (max-width:640px){
  .brand small{display:none}
  .f-row select,.f-salary{flex:1 1 calc(50% - 5px)}
  .f-salary input{width:auto;flex:1}
  .jobs-summary{gap:18px}
}

/* ==========================================================
   Theme v2 — tenthrevolution.com の配色に合わせた上書き
   navy #1B1F3C / teal #036765 / mint #8AFC96 / coral #D8644D / cream #FAF9F5
   ========================================================== */
.site-head{background:var(--night);border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:none}
.brand{color:#fff}
.brand small{color:#9FA6C8}
.nav a{color:#E8EBF7}
.nav a:hover,.nav a[aria-current="page"]{color:var(--mint)}
.menu-toggle{color:#fff;border-color:rgba(255,255,255,.3)}
@media (max-width:820px){.nav{background:var(--night);border-bottom:1px solid rgba(255,255,255,.1)}}
.btn-primary:hover{background:var(--teal-deep)}
.site-head .btn-primary,.dark .btn-primary,.hero .btn-primary,.page-hero .btn-primary{background:var(--mint);color:var(--night)}
.site-head .btn-primary:hover,.dark .btn-primary:hover,.hero .btn-primary:hover,.page-hero .btn-primary:hover{background:#B4FFBC}
.hero .btn-ghost,.page-hero .btn-ghost,.dark .btn-ghost{border-color:rgba(255,255,255,.7);color:#fff}
.hero .btn-ghost:hover,.page-hero .btn-ghost:hover,.dark .btn-ghost:hover{background:#fff;color:var(--night)}
.dark{background:linear-gradient(180deg,var(--night) 0%,#142B3F 100%)}
.dark a:not(.btn){color:#fff}

/* Hero */
.hero{background:linear-gradient(180deg,var(--night) 0%,var(--night) 38%,#0C5D5E 100%);color:#fff;padding:84px 0 76px}
.hero h1{font-size:clamp(32px,4.8vw,54px)}
.hero h1 em,.page-hero h1 em{font-style:normal;color:var(--mint)}
.hero .eyebrow,.page-hero .eyebrow{font-family:var(--num);font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--mint);margin:0 0 14px}
.hero .lead{color:#D5D9EE}
.doors{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:36px}
.door{display:block;text-decoration:none;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-l);padding:18px 20px;transition:border-color .15s,background .15s}
.door:hover{border-color:var(--mint);background:rgba(255,255,255,.1)}
.door small{display:block;font-family:var(--num);font-size:12px;letter-spacing:.1em;color:var(--mint)}
.door b{display:block;font-size:17px;margin:2px 0 4px}
.door span{display:block;font-size:13.5px;color:#C9CEE6;line-height:1.6}
@media (max-width:560px){.doors{grid-template-columns:1fr}}

/* Stats */
.stat b{color:var(--coral)}
.stats{border-top-color:var(--ink)}
.svc .verb{color:var(--coral)}
.process li::before{color:var(--coral-deep)}

/* Light-section teaser (landing) */
.teasers{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.teaser{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-l);padding:26px;text-decoration:none;color:var(--ink);display:block}
.teaser:hover{border-color:var(--teal)}
.teaser .verb{font-size:40px;font-weight:900;color:var(--coral);line-height:1}
.teaser h3{font-size:18px;font-weight:900;margin:10px 0 6px}
.teaser p{font-size:14.5px;color:var(--ink-2);margin:0}
.teaser .more{display:inline-block;margin-top:12px;font-size:14px;font-weight:700;color:var(--teal)}
@media (max-width:820px){.teasers{grid-template-columns:1fr}}

/* ===== Job-change guide page ===== */
.page-hero{background:linear-gradient(180deg,var(--night) 0%,#0C5D5E 190%);color:#fff;padding:64px 0 48px}
.page-hero h1{font-size:clamp(30px,4.4vw,48px);font-weight:900;line-height:1.25;max-width:20em}
.page-hero .lead{color:#D5D9EE;max-width:40em;margin:18px 0 0;font-size:17px}
.byline{margin:22px 0 0;font-size:13.5px;color:#B9BFDB}
.byline b{color:#fff}
.page-hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.anchors{position:sticky;top:64px;z-index:30;background:var(--paper);border-bottom:1px solid var(--line)}
.anchors .wrap{display:flex;gap:8px;overflow-x:auto;padding-top:10px;padding-bottom:10px;scrollbar-width:thin}
.anchors a{white-space:nowrap;font-size:13.5px;text-decoration:none;color:var(--ink);padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card)}
.anchors a:hover{border-color:var(--teal);color:var(--teal)}
.guide section{padding:64px 0;scroll-margin-top:120px}
.guide .sec-head{margin-bottom:28px}
.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.benefit{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-l);padding:22px}
.benefit b{display:block;font-size:16px;margin-bottom:4px}
.benefit p{margin:0;font-size:14px;color:var(--ink-2);line-height:1.7}
.benefit .tag{display:block;font-family:var(--num);font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--coral-deep);margin-bottom:6px}
@media (max-width:820px){.benefits{grid-template-columns:1fr}}
.timeline{display:grid;grid-template-columns:2fr 4fr 3fr;gap:6px;margin-top:8px}
.tl{border-radius:var(--radius-s);padding:14px 16px;color:#fff;font-size:13.5px;line-height:1.55}
.tl b{display:block;font-size:15px}
.tl i{font-style:normal;font-family:var(--num);font-size:13px;opacity:.85}
.tl:nth-child(1){background:var(--night)}.tl:nth-child(2){background:var(--teal)}.tl:nth-child(3){background:var(--coral-deep)}
.timeline-note{font-size:13px;color:var(--ink-2);margin-top:10px}
@media (max-width:720px){.timeline{grid-template-columns:1fr}}
.stepx .wrap{border-top:2px solid var(--ink);padding-top:32px}
.stepx .sh{display:flex;gap:16px;align-items:center;margin-bottom:8px}
.stepx .badge{flex:none;width:52px;height:52px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-family:var(--num);font-weight:700;font-size:22px}
.stepx h2{font-size:clamp(24px,3vw,32px);font-weight:900}
.stepx .en{font-family:var(--num);font-size:12.5px;letter-spacing:.08em;color:var(--ink-2)}
.stepx .intro{max-width:46em;color:var(--ink-2);margin:10px 0 24px}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:10px 0 24px}
.cmp > div{border-radius:var(--radius-l);padding:18px 20px;font-size:14.5px;line-height:1.7}
.cmp .ng{background:var(--coral-soft)}.cmp .ok{background:var(--teal-soft)}
.cmp small{display:block;font-family:var(--num);font-weight:700;letter-spacing:.1em;font-size:12px;margin-bottom:4px}
.cmp .ng small{color:var(--coral-deep)}.cmp .ok small{color:var(--teal)}
@media (max-width:720px){.cmp{grid-template-columns:1fr}}
.gcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-l);padding:22px 24px;margin:0 0 16px}
.gcard h3{font-size:17px;font-weight:900;margin-bottom:8px}
.gcard ul{margin:0;padding-left:1.2em;font-size:15px}
.gcard li{margin:4px 0}
.acc{margin:0 0 10px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-l)}
.acc summary{cursor:pointer;list-style:none;padding:16px 20px;font-weight:700;font-size:16px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font-family:var(--num);font-size:22px;color:var(--teal);line-height:1}
.acc[open] summary::after{content:"–"}
.acc .body{padding:0 20px 18px;font-size:15px}
.acc .body ul{margin:6px 0 0;padding-left:1.2em}
.acc .body li{margin:4px 0}
.callout{background:var(--teal-soft);border-left:4px solid var(--teal);border-radius:var(--radius-s);padding:14px 18px;font-size:14.5px;margin:18px 0}
.rules{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:820px){.rules{grid-template-columns:1fr}}
.foot-cta{background:var(--teal-soft);border-radius:var(--radius-l);padding:32px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}
.foot-cta h2{font-size:24px;font-weight:900}

h1,h2,h3{text-wrap:balance}
.hero h1{font-size:clamp(30px,4.2vw,50px)}

/* ===== Language switch ===== */
.lang{display:inline-flex;border:1px solid rgba(255,255,255,.3);border-radius:999px;overflow:hidden}
.lang a{padding:4px 11px;font-size:12.5px;font-weight:700;text-decoration:none;color:#C9CEE6}
.lang a.on{background:var(--mint);color:var(--night)}
.lang a:not(.on):hover{color:#fff}
@media (max-width:820px){.lang{align-self:flex-start}}

/* ===== Employer page: mode tabs ===== */
[hidden]{display:none!important}
.modetabs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px;max-width:720px}
.modetabs button{font:inherit;text-align:left;cursor:pointer;color:#fff;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-l);padding:14px 18px;transition:border-color .15s,background .15s}
.modetabs button small{display:block;font-family:var(--num);font-size:12px;letter-spacing:.1em;color:var(--mint)}
.modetabs button b{display:block;font-size:16px;margin-top:2px}
.modetabs button:hover{border-color:var(--mint)}
.modetabs button[aria-selected="true"]{background:rgba(138,252,150,.14);border-color:var(--mint)}
@media (max-width:560px){.modetabs{grid-template-columns:1fr}}
.page-hero .lead[hidden]{display:none}

/* Salary table */
.cur-toggle{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.cur-toggle button{font:inherit;font-size:13.5px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);cursor:pointer;color:var(--ink)}
.cur-toggle button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.cur-note{font-size:12.5px;color:var(--ink-2)}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-l);background:var(--card)}
.stbl{width:100%;border-collapse:collapse;font-size:14.5px;min-width:560px}
.stbl th,.stbl td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line)}
.stbl th{font-size:12.5px;color:var(--ink-2);font-weight:700;background:#F4F1EA}
.stbl tr:last-child td{border-bottom:0}
.stbl td.num-c{font-family:var(--num);font-weight:600}
.stbl td.top{font-family:var(--num);font-weight:700;color:var(--coral-deep)}

/* Mistake cards / budget / entity */
.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-l);padding:22px 24px}
.band .mcard,.band .ocard{background:var(--card)}
.mcard h3{font-size:17px;font-weight:900;margin-bottom:6px}
.mcard p{font-size:14.5px;color:var(--ink-2);margin:0 0 14px}
.do{background:var(--teal-soft);border-radius:var(--radius-s);padding:10px 14px;font-size:14px;line-height:1.65}
.do small{display:block;font-family:var(--num);font-weight:700;letter-spacing:.1em;font-size:11.5px;color:var(--teal);margin-bottom:2px}
@media (max-width:820px){.mgrid{grid-template-columns:1fr}}
.blist{border-top:2px solid var(--ink)}
.blist > div{display:grid;grid-template-columns:14em 1fr;gap:8px 24px;padding:16px 0;border-bottom:1px solid var(--line)}
.blist b{font-size:15.5px}
.blist span{font-size:14.5px;color:var(--ink-2)}
@media (max-width:720px){.blist > div{grid-template-columns:1fr}}
.ogrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ocard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-l);padding:24px}
.ocard .onum{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--teal);color:#fff;font-family:var(--num);font-weight:700;margin-bottom:12px}
.ocard h3{font-size:17px;font-weight:900;margin-bottom:6px}
.ocard p{font-size:14.5px;color:var(--ink-2);margin:0 0 14px}
@media (max-width:900px){.ogrid{grid-template-columns:1fr}}
.pattern[hidden]{display:none}

/* ===== ログイン ===== */
.loginbtn{font:inherit;font-size:14px;font-weight:600;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:999px;padding:6px 14px;cursor:pointer}
.loginbtn:hover{border-color:var(--teal);color:var(--teal)}
.loginbtn.on{background:var(--teal-soft);border-color:var(--teal);color:var(--teal)}
.login-modal{position:fixed;inset:0;background:rgba(27,31,60,.55);display:grid;place-items:center;z-index:100;padding:16px}
.login-card{position:relative;background:#fff;border-radius:16px;padding:32px 28px;max-width:420px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.login-card h2{margin:0 0 10px;font-size:22px}
.login-card p{margin:0 0 18px;font-size:14px;color:var(--ink-2);line-height:1.7}
.login-card .lm-x{position:absolute;right:12px;top:8px;border:0;background:none;font-size:26px;line-height:1;cursor:pointer;color:var(--ink-2)}
.login-card .lm-msg{margin:14px 0 0;min-height:1.4em;font-size:14px;color:var(--teal);font-weight:600}
.jd-link{color:inherit;text-decoration:underline;text-decoration-color:var(--teal);text-underline-offset:3px}
.jd-link:hover{color:var(--teal)}
.jd-ico{color:var(--teal);font-size:.85em}
@media (max-width:760px){.loginbtn{align-self:flex-start}}
/* login button on dark header */
.site-head .loginbtn{color:#E8EBF7;border-color:rgba(255,255,255,.35);white-space:nowrap;padding:6px 14px;line-height:1.2}
.site-head .loginbtn:hover{color:var(--mint);border-color:var(--mint)}
.site-head .loginbtn.on{background:rgba(255,255,255,.1);border-color:var(--mint);color:var(--mint)}

/* ===== Header v3: ロゴ削除・余白・モバイル ===== */
.site-head .wrap{height:72px;gap:20px}
.nav{margin-left:0;flex:1;gap:28px}
.nav a{white-space:nowrap}
.nav .lang{margin-left:auto}
.head-cta{display:none}
@media (max-width:1080px){.nav{gap:20px}}
@media (max-width:820px){
  .site-head .wrap{height:60px;justify-content:space-between}
  .menu-toggle{display:block;margin-left:0;min-height:40px;padding:6px 14px}
  .head-cta{display:inline-flex}
  .nav-cta{display:none}
  .nav{position:absolute;top:60px;flex:none;gap:4px;padding:8px 24px 20px}
  .nav > a:not(.btn){padding:12px 0;font-size:16px;width:100%;border-bottom:1px solid rgba(255,255,255,.08)}
  .nav .lang{margin:12px 0 4px}
  .nav .lang a{width:auto;padding:7px 16px;border:0;font-size:14px;white-space:nowrap}
  .nav .loginbtn{margin-top:8px;min-height:40px}
}
@media (max-width:640px){
  .filters .f-row select{flex:1 1 calc(50% - 5px);width:auto;min-width:0;max-width:none;min-height:42px}
  .filters .f-row input[type=search],.filters .f-row input[type=text]{flex:1 1 100%;min-height:42px}
  .f-salary{flex:1 1 100%}
}
