/* 中央開発 採用サイト v2（Hexa v1.1 実装・デザイン確認用） */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--ck-bg);color:var(--ck-fg);font-family:var(--ck-font-body);font-size:var(--ck-type-body-16);line-height:var(--ck-lh-body);letter-spacing:var(--ck-ls-body);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
h1,h2,h3,h4{margin:0;text-wrap:balance}
p,dl,dd{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--ck-focus);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.wrap{max-width:var(--ck-content);margin:0 auto;padding-inline:var(--ck-gutter)}
.wrap.wide{max-width:var(--ck-wide)}
.sec{padding-block:var(--ck-section-y)}
.deep{background:var(--ck-color-night);color:#fff}
.deep .ck-shead p,.deep .muted{color:var(--ck-fg-inverse-muted)}
.muted{color:var(--ck-fg-muted)}
.measure{max-width:var(--ck-measure)}

/* セグメント（ロゴの1本） */
.seg{display:inline-block;width:56px;height:12px;background:var(--ck-accent);clip-path:polygon(0 100%,21px 0,100% 0,calc(100% - 21px) 100%)}
.seg.sm{width:24px;height:10px;clip-path:polygon(0 100%,6px 0,100% 0,calc(100% - 6px) 100%)}
.deep .seg{background:var(--ck-accent-on-inverse)}

/* 写真プレースホルダー・トリミング */
.ph{background:#C9AFB8;color:#4a2f3f;display:grid;place-items:center;text-align:center;font-size:12px;line-height:1.6;padding:var(--ck-s3)}
.ph.dark{background:#3a2231;color:#d8ccd4}
.cut{clip-path:polygon(0 0,calc(100% - var(--ck-cut-lg)) 0,100% calc(var(--ck-cut-lg) * var(--ck-tan)),100% 100%,0 100%)}
.hexph{clip-path:var(--ck-hex);aspect-ratio:865/1000}

/* ヘッダー */
.hd{position:fixed;inset:0 0 auto;z-index:40;transition:background var(--ck-dur-base) var(--ck-ease),color var(--ck-dur-base) var(--ck-ease)}
.hd .in{max-width:var(--ck-wide);margin:0 auto;padding:0 var(--ck-gutter);height:72px;display:flex;align-items:center;gap:var(--ck-s6)}
.hd .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.hd .brand svg{width:26px;height:30px;color:#fff}
.hd .brand b{font-size:15px;font-weight:700;letter-spacing:.02em}
.hd nav{margin-left:auto;display:flex;gap:26px;align-items:center}
.hd nav a{font-size:13.5px;text-decoration:none;color:rgba(255,255,255,.88);font-weight:500}
.hd nav a:hover{color:#fff;text-decoration:underline;text-underline-offset:6px}
.hd.is-solid{background:color-mix(in srgb,var(--ck-bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--ck-border)}
.hd.is-solid .brand,.hd.is-solid .brand svg{color:var(--ck-fg)}
.hd.is-solid .brand svg{color:var(--ck-color-brand)}
.hd.is-solid nav a{color:var(--ck-fg-muted)}
.hd.is-solid nav a:hover{color:var(--ck-fg)}
.hd.on-light{background:var(--ck-bg);border-bottom:1px solid var(--ck-border)}
.hd.on-light .brand{color:var(--ck-fg)}.hd.on-light .brand svg{color:var(--ck-color-brand)}.hd.on-light nav a{color:var(--ck-fg-muted)}
@media (max-width:900px){.hd nav a:not(.ck-btn){display:none}}

/* ボタン */
.ck-btn{display:inline-flex;align-items:center;height:46px;font:inherit;font-weight:700;font-size:15px;padding:0 calc(var(--ck-cut) + 18px) 0 22px;text-decoration:none!important;cursor:pointer;border:0;color:#fff;background:var(--ck-color-brand);clip-path:polygon(0 0,100% 0,calc(100% - var(--ck-cut)) 100%,0 100%);transition:background var(--ck-dur-fast) var(--ck-ease)}
.ck-btn:hover{background:var(--ck-color-brand-deep)}
.ck-btn.line{background:var(--ck-fg);color:var(--ck-bg)}
.ck-btn.line:hover{background:var(--ck-color-plum)}
.ck-btn.white{background:#fff;color:var(--ck-color-brand-deep)}
.ck-btn.white:hover{background:#fbe6f1}
.ck-btn.sm{height:40px;font-size:14px;padding:0 calc(22px + 14px) 0 18px;clip-path:polygon(0 0,100% 0,calc(100% - 22px) 100%,0 100%)}
.ck-link{color:var(--ck-accent-link);text-decoration:underline;text-underline-offset:4px;font-weight:700}

/* セクション見出し */
.ck-shead{display:grid;gap:var(--ck-s4);margin-bottom:clamp(36px,5vw,56px)}
.ck-shead p{max-width:var(--ck-measure)}
.ck-shead h2{font-family:var(--ck-font-display-jp);font-weight:600;font-size:var(--ck-type-h1-40);line-height:var(--ck-lh-h1)}
.ck-shead p{color:var(--ck-fg-muted);font-size:var(--ck-type-lead-18);line-height:var(--ck-lh-lead)}

/* Hero */
.hero{position:relative;min-height:min(78svh,820px);display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--ck-s8);align-items:end;padding:calc(72px + var(--ck-s8)) var(--ck-gutter) var(--ck-s8);color:#fff;background:#3a2231;overflow:hidden}
.hero .bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,16,23,.86) 0%,rgba(28,16,23,.45) 40%,rgba(28,16,23,0) 68%),linear-gradient(160deg,#6a4258,#3a2231 55%,#1c1017)}
.hero .bg span{position:absolute;right:var(--ck-s5);bottom:var(--ck-s4);font-size:12px;color:rgba(255,255,255,.5)}
.hero .vert{position:relative;writing-mode:vertical-rl;font-family:var(--ck-font-display-jp);font-weight:600;font-size:clamp(30px,4.6vw,60px);line-height:1.5;letter-spacing:.1em;height:min(10em,60svh);align-self:start;margin-top:var(--ck-s6)}
.hero .side{position:relative;display:grid;gap:var(--ck-s4);max-width:44ch}
.hero .side p{color:#E4DBE1;font-size:clamp(15px,1.3vw,17px);line-height:1.95}
.hero .side .row{display:flex;gap:var(--ck-s3);flex-wrap:wrap;margin-top:var(--ck-s2)}
@media (max-width:700px){.hero{grid-template-columns:1fr;min-height:0;gap:var(--ck-s6)}.hero .vert{writing-mode:horizontal-tb;height:auto;font-size:32px;line-height:1.35;letter-spacing:.03em;margin-top:0}}

/* Message */
.msg{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
.msg h2{font-family:var(--ck-font-display-jp);font-weight:600;font-size:var(--ck-type-h2-32);line-height:1.5}
.msg .body{margin-top:var(--ck-s5);display:grid;gap:var(--ck-s4);color:var(--ck-fg-inverse-muted);font-size:16px;line-height:2.05;max-width:var(--ck-measure)}
.msg .sign{margin-top:var(--ck-s6);font-size:13px;color:var(--ck-fg-inverse-muted)}
.msg .sign b{display:block;color:#fff;font-size:16px;margin-top:2px}
.video{position:relative;aspect-ratio:16/9;background:#241019}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video .soon{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.7);font-size:13px;letter-spacing:.06em;text-align:center;line-height:1.8}
.cap{display:block;margin-top:var(--ck-s3);font-size:12.5px;color:var(--ck-fg-inverse-muted)}
@media (max-width:800px){.msg{grid-template-columns:1fr}}

/* Story（年表） */
.story{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,72px);align-items:start}
.ck-story{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ck-s6);border-top:2px solid var(--ck-border);padding-top:var(--ck-s5);position:relative}
.ck-story>div{position:relative;padding-top:var(--ck-s3)}
.ck-story>div::before{content:"";position:absolute;top:calc(-1 * var(--ck-s5) - 7px);left:0;width:24px;height:12px;background:var(--ck-accent);clip-path:polygon(0 100%,7px 0,100% 0,calc(100% - 7px) 100%)}
.ck-story b{display:block;font-family:var(--ck-font-display-jp);font-weight:600;font-size:19px;line-height:1.5}
.ck-story p{font-size:13.5px;color:var(--ck-fg-muted);line-height:1.85;margin-top:8px}
@media (max-width:800px){.story{grid-template-columns:1fr}}
@media (max-width:600px){.ck-story{grid-template-columns:1fr}}

/* Philosophy */
.phi{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}
.mission{font-family:var(--ck-font-display-jp);font-weight:600;font-size:clamp(26px,3.4vw,40px);line-height:1.5}
.values{display:grid;gap:var(--ck-s5);border-top:1px solid rgba(255,255,255,.18);padding-top:var(--ck-s5)}
.values>div{display:grid;grid-template-columns:24px 1fr;gap:var(--ck-s4);align-items:baseline}
.values b{display:block;font-family:var(--ck-font-display-jp);font-weight:600;font-size:20px}
.values p{font-size:14px;color:var(--ck-fg-inverse-muted);line-height:1.85;margin-top:4px}
.vision{margin-top:var(--ck-s6);border-top:1px solid rgba(255,255,255,.18);padding-top:var(--ck-s5)}
.vision h3{font-size:15px;font-weight:700;margin-bottom:var(--ck-s3)}
.vision li{font-size:14.5px;color:var(--ck-fg-inverse-muted);line-height:1.9}
.vision ul{margin:0;padding-left:1.2em}
@media (max-width:800px){.phi{grid-template-columns:1fr}}

/* Reason */
.reasons{display:grid;gap:clamp(56px,9vw,120px)}
.ck-reason{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,72px);align-items:center}
.ck-reason.rev .ph{order:2}
.ck-reason .ph{aspect-ratio:4/3}
.ck-reason .body{display:grid;gap:var(--ck-s4)}
.ck-reason h3{font-family:var(--ck-font-display-jp);font-weight:600;font-size:var(--ck-type-h2-32);line-height:1.45}
.ck-reason p{color:var(--ck-fg-muted);font-size:15px;line-height:2;max-width:44ch}
@media (max-width:760px){.ck-reason{grid-template-columns:1fr}.ck-reason.rev .ph{order:0}}

/* Growth */
.numline{display:flex;flex-wrap:wrap;gap:var(--ck-s5) var(--ck-s9);align-items:baseline;border-top:2px solid var(--ck-fg);border-bottom:1px solid var(--ck-border);padding:var(--ck-s5) 0;margin-bottom:var(--ck-s7)}
.numline div{display:grid;gap:4px}
.numline .n{font-family:var(--ck-font-display-en);font-weight:600;font-size:clamp(44px,5.4vw,72px);line-height:1;color:var(--ck-accent-text);font-variant-numeric:tabular-nums}
.numline .n em{font-style:normal;font-family:var(--ck-font-body);font-weight:700;font-size:.36em;color:var(--ck-fg);margin-left:.1em}
.numline small{font-size:13px;color:var(--ck-fg-muted)}
.chartwrap{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(24px,4vw,48px);align-items:center;background:var(--ck-bg-elev);border:1px solid var(--ck-border);padding:clamp(22px,3vw,36px)}
.chartwrap svg{width:100%;height:auto;display:block}
.layers{display:grid;gap:14px}
.ly{display:grid;grid-template-columns:12px 1fr;gap:12px;align-items:start;padding-bottom:14px;border-bottom:1px solid var(--ck-border)}
.ly:last-child{border-bottom:none;padding-bottom:0}
.ly .sw{width:12px;height:12px;margin-top:6px}
.ly b{font-size:14.5px;font-weight:700}
.ly p{font-size:12.5px;color:var(--ck-fg-muted);margin-top:3px;line-height:1.7}
.chart-cap{font-size:12px;color:var(--ck-fg-muted);margin-top:14px}
.area{margin-top:var(--ck-s6);background:var(--ck-bg-elev);border:1px solid var(--ck-border);padding:clamp(24px,3vw,34px)}
.area .hd2{display:flex;align-items:center;gap:14px;margin-bottom:var(--ck-s5)}
.area .hd2 h3{font-family:var(--ck-font-display-jp);font-weight:600;font-size:22px}
.area-maps{display:flex;align-items:flex-start;justify-content:center;gap:clamp(8px,2vw,30px)}
.mstage{flex:1;min-width:0;text-align:center}
.map{display:flex;justify-content:center;height:clamp(160px,20vw,240px)}
.map svg{height:100%;width:auto;overflow:visible}
.pf polygon,.pf path{fill:var(--ck-border-strong);stroke:var(--ck-bg-elev);stroke-width:1.3;vector-effect:non-scaling-stroke;transition:fill .5s}
.map.s1 .iw polygon,.map.s1 .iw path{fill:var(--ck-bg-elev);stroke:var(--ck-accent);stroke-width:2.6}
.map.s2 .iw polygon,.map.s2 .iw path{fill:var(--ck-accent)}
.map.s3 .pf polygon,.map.s3 .pf path{fill:var(--ck-accent)}
.map .now{fill:var(--ck-accent);stroke:var(--ck-bg-elev);stroke-width:2.5}
.map .pulse{fill:var(--ck-accent);opacity:.35}
.minfo .yr{font-family:var(--ck-font-display-en);font-weight:600;font-size:20px;color:var(--ck-accent-text);display:block;margin-top:14px}
.minfo h4{font-family:var(--ck-font-display-jp);font-weight:600;font-size:clamp(16px,2vw,22px);margin-top:2px}
.minfo p{font-size:12.5px;color:var(--ck-fg-muted);margin:5px auto 0;max-width:22ch}
.marrow{align-self:center;color:var(--ck-border-strong);font-size:clamp(22px,3vw,38px);flex:0 0 auto;padding-top:6%}
@media (max-width:820px){.chartwrap{grid-template-columns:1fr}}
@media (max-width:640px){.area-maps{flex-direction:column;align-items:center}.mstage{width:100%}.marrow{transform:rotate(90deg);padding:0}}

/* Culture（人を育てる） */
.facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--ck-s7) clamp(32px,5vw,72px);margin-top:var(--ck-s6)}
.facts h3{font-size:15px;font-weight:700;color:var(--ck-accent-on-inverse);margin-bottom:var(--ck-s4)}
.facts dl{border-top:1px solid rgba(255,255,255,.18)}
.facts dl>div{display:grid;grid-template-columns:24px 1fr;gap:var(--ck-s4);padding:var(--ck-s4) 0;border-bottom:1px solid rgba(255,255,255,.12);align-items:baseline}
.facts dt{font-family:var(--ck-font-display-jp);font-weight:600;font-size:19px;line-height:1.5;grid-column:2}
.facts dd{grid-column:2;font-size:14px;color:var(--ck-fg-inverse-muted);line-height:1.85;margin-top:4px}
.facts dl>div .seg{grid-column:1;grid-row:1;position:relative;top:4px}
@media (max-width:760px){.facts{grid-template-columns:1fr}}

/* Voice */
.ck-voice{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center;padding:var(--ck-s7) 0;border-top:1px solid var(--ck-border)}
.ck-voice:last-child{border-bottom:1px solid var(--ck-border)}
.ck-voice .hexph{width:220px}
.ck-voice blockquote{margin:0;font-family:var(--ck-font-display-jp);font-weight:600;font-size:clamp(20px,2.4vw,28px);line-height:1.6}
.ck-voice .who{margin-top:var(--ck-s4);font-size:13.5px;color:var(--ck-fg-muted)}
.ck-voice .who b{color:var(--ck-fg);margin-right:10px}
.ck-voice p{margin-top:var(--ck-s3);font-size:14.5px;color:var(--ck-fg-muted);line-height:1.9;max-width:52ch}
@media (max-width:600px){.ck-voice{grid-template-columns:1fr}.ck-voice .hexph{width:150px}}

/* 募集要項 分岐 */
.split{display:grid;grid-template-columns:1fr 1fr;background:var(--ck-color-plum)}
.panel{padding:clamp(40px,6vw,80px) var(--ck-gutter);color:#fff;display:grid;gap:var(--ck-s5);align-content:start}
.panel.a{background:var(--ck-color-brand);clip-path:polygon(0 0,100% 0,calc(100% - 72px) 100%,0 100%);margin-right:-72px;padding-right:calc(var(--ck-gutter) + 72px);position:relative;z-index:1}
.panel.b{padding-left:calc(var(--ck-gutter) + 40px)}
.panel h2{font-family:var(--ck-font-display-jp);font-weight:600;font-size:clamp(30px,3.6vw,44px);line-height:1.15}
.panel p{font-size:15px;color:rgba(255,255,255,.88);line-height:1.9;max-width:32ch}
.panel .ck-btn{justify-self:start}
.panel.b .ck-btn.white{color:var(--ck-color-plum)}
@media (max-width:700px){.split{grid-template-columns:1fr}.panel.a{clip-path:none;margin-right:0;padding-right:var(--ck-gutter)}.panel.b{padding-left:var(--ck-gutter)}}

/* フッター */
footer{background:var(--ck-color-night);color:var(--ck-fg-inverse-muted);padding:var(--ck-s8) 0 var(--ck-s6)}
footer .in{max-width:var(--ck-wide);margin:0 auto;padding-inline:var(--ck-gutter);display:grid;gap:var(--ck-s5)}
footer img{height:36px;width:auto}
footer .addr{font-size:13px;line-height:1.9}
footer .links{display:flex;flex-wrap:wrap;gap:var(--ck-s4) var(--ck-s6);font-size:13px}
footer .links a{color:#fff;text-decoration:none}
footer .links a:hover{text-decoration:underline;text-underline-offset:4px}
footer .copy{font-size:11.5px;color:var(--ck-fg-subtle)}
.proto{display:inline-block;font-size:11px;color:var(--ck-fg-inverse-muted);border:1px solid rgba(255,255,255,.25);padding:3px 10px}

/* ===== 募集要項ページ ===== */
.subhero{padding:calc(72px + var(--ck-s9)) 0 var(--ck-s8);border-bottom:1px solid var(--ck-border)}
.subhero .ck-shead{margin-bottom:0}
.subhero h1{font-family:var(--ck-font-display-jp);font-weight:600;font-size:var(--ck-type-disp-56);line-height:1.3}
.subhero p{color:var(--ck-fg-muted);font-size:var(--ck-type-lead-18);line-height:var(--ck-lh-lead)}
.jobs{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(32px,5vw,72px);border-top:2px solid var(--ck-fg)}
.jobs>div{display:grid;grid-template-columns:24px 1fr;gap:var(--ck-s4);padding:var(--ck-s5) 0;border-bottom:1px solid var(--ck-border);align-items:baseline}
.jobs dt{grid-column:2;font-family:var(--ck-font-display-jp);font-weight:600;font-size:20px;line-height:1.5}
.jobs dd{grid-column:2;font-size:14px;color:var(--ck-fg-muted);line-height:1.85;margin-top:4px}
.jobs .seg{grid-column:1;grid-row:1;position:relative;top:4px}
@media (max-width:700px){.jobs{grid-template-columns:1fr}}
.ck-reqs{border-top:2px solid var(--ck-fg)}
.ck-reqs>div{display:grid;grid-template-columns:200px 1fr;gap:var(--ck-s5);padding:var(--ck-s4) 4px;border-bottom:1px solid var(--ck-border)}
.ck-reqs dt{font-weight:700;font-size:15px}
.ck-reqs dd{font-size:15px;color:var(--ck-fg-muted);line-height:1.9}
.ck-reqs .todo{color:var(--ck-accent-text);font-weight:700}
@media (max-width:600px){.ck-reqs>div{grid-template-columns:1fr;gap:4px}}
.note{font-size:13px;color:var(--ck-fg-muted);margin-top:var(--ck-s4);max-width:var(--ck-measure)}
.pay{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px);border-top:2px solid var(--ck-fg);padding-top:var(--ck-s5)}
.pay h3{font-family:var(--ck-font-display-jp);font-weight:600;font-size:22px;line-height:1.5}
.pay p{font-size:14.5px;color:var(--ck-fg-muted);line-height:1.9;margin-top:var(--ck-s3)}
@media (max-width:760px){.pay{grid-template-columns:1fr}}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--ck-s5);border-top:2px solid var(--ck-border);padding-top:var(--ck-s5)}
.steps.four{grid-template-columns:repeat(4,1fr)}
.steps>div{position:relative;padding-top:var(--ck-s3)}
.steps>div::before{content:"";position:absolute;top:calc(-1 * var(--ck-s5) - 7px);left:0;width:24px;height:12px;background:var(--ck-accent);clip-path:polygon(0 100%,7px 0,100% 0,calc(100% - 7px) 100%)}
.steps b{display:block;font-family:var(--ck-font-display-jp);font-weight:600;font-size:18px}
.steps p{font-size:13.5px;color:var(--ck-fg-muted);line-height:1.8;margin-top:6px}
@media (max-width:800px){.steps,.steps.four{grid-template-columns:1fr 1fr}}
@media (max-width:500px){.steps,.steps.four{grid-template-columns:1fr}}
.ck-faq{border-top:1px solid var(--ck-border);max-width:var(--ck-measure)}
.ck-faq details{border-bottom:1px solid var(--ck-border)}
.ck-faq summary{list-style:none;cursor:pointer;padding:var(--ck-s4) 4px;font-weight:700;font-size:15.5px;display:flex;gap:var(--ck-s3);align-items:center}
.ck-faq summary::-webkit-details-marker{display:none}
.ck-faq summary::before{content:"";width:18px;height:8px;background:var(--ck-accent);clip-path:polygon(0 100%,5px 0,100% 0,calc(100% - 5px) 100%);flex:none}
.ck-faq summary .x{margin-left:auto;color:var(--ck-fg-subtle);transition:transform var(--ck-dur-fast) var(--ck-ease)}
.ck-faq details[open] summary .x{transform:rotate(45deg)}
.ck-faq .a{padding:0 4px var(--ck-s4) 30px;font-size:14.5px;color:var(--ck-fg-muted);line-height:1.9}
.entry-cta{text-align:left}
.entry-cta .row{display:flex;flex-wrap:wrap;gap:var(--ck-s4);align-items:center;margin-top:var(--ck-s6)}

/* 見出しの改行：単語の途中で折らない（読点・明示改行・wbr でだけ折る） */
h1,h2,h3,h4,blockquote,.ck-story b,.steps b,.jobs dt,.facts dt,.pay h3,.minfo h4{word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
.ck-shead h2,.ck-reason h3,.msg h2{max-width:28ch}

/* フローティングバナー（右端の縦タブ＝縦にしたセグメント。FVを過ぎたら出る） */
.rail{position:fixed;right:0;top:50%;z-index:45;display:flex;flex-direction:column;gap:6px;transform:translate(110%,-50%);transition:transform var(--ck-dur-base) var(--ck-ease)}
.rail.on{transform:translate(0,-50%)}
.rail a{writing-mode:vertical-rl;text-decoration:none;color:#fff;font-weight:700;font-size:14.5px;letter-spacing:.14em;padding:30px 15px 30px 16px;
  clip-path:polygon(0 27px,100% 0,100% 100%,0 calc(100% - 27px));transition:padding var(--ck-dur-fast) var(--ck-ease)}
.rail a:hover{padding-left:24px}
.rail a.s{background:var(--ck-color-brand)}
.rail a.c{background:var(--ck-color-plum)}
.rail a.e{background:var(--ck-color-brand)}
@media (max-width:640px){
  .rail{top:auto;bottom:0;left:0;right:0;flex-direction:row;gap:0;transform:translateY(110%)}
  .rail.on{transform:none}
  .rail a{writing-mode:horizontal-tb;flex:1;text-align:center;padding:16px 12px;clip-path:none;letter-spacing:.06em;font-size:14px}
  footer{padding-bottom:calc(var(--ck-s6) + 56px)}
}

/* スマホ：ヘッダーを折り返さない／年表・選考ステップは各項目の上に罫線と目印 */
@media (max-width:900px){
  .hd .in{gap:12px;height:64px}
  .hd .brand b{font-size:13.5px;white-space:nowrap}
  .hd nav .ck-btn.sm{white-space:nowrap;height:38px;font-size:13.5px;padding:0 calc(20px + 12px) 0 14px;clip-path:polygon(0 0,100% 0,calc(100% - 20px) 100%,0 100%)}
  .hero{padding-top:calc(64px + var(--ck-s7))}
}
@media (max-width:600px){
  .ck-story{border-top:none;padding-top:0;gap:var(--ck-s4)}
  .ck-story>div{border-top:2px solid var(--ck-border);padding-top:var(--ck-s5)}
  .ck-story>div::before{top:-7px}
}
@media (max-width:500px){
  .steps,.steps.four{border-top:none;padding-top:0;gap:var(--ck-s4)}
  .steps>div{border-top:2px solid var(--ck-border);padding-top:var(--ck-s5)}
  .steps>div::before{top:-7px}
}

/* 濃色地の上の副ボタンは白塗り・墨文字（墨塗りだと地に溶ける） */
.hero .ck-btn.line,.deep .ck-btn.line{background:#fff;color:var(--ck-color-ink)}
.hero .ck-btn.line:hover,.deep .ck-btn.line:hover{background:#F4EEF2}

/* FV縦組み：2列を明示（<br>）。句点だけが3列目に落ちないようにする */
.hero .vert{height:auto;overflow-wrap:normal;word-break:keep-all;font-size:clamp(30px,4.2vw,56px)}

/* 分岐パネル：中身を各パネルの中央に（縦横） */
.panel{text-align:center;justify-items:center;align-content:center;min-height:420px}
.panel p{margin-inline:auto}
.panel .ck-btn{justify-self:center}
.panel .seg{margin-inline:auto}
@media (max-width:700px){.panel{min-height:0}}

/* 右端タブ：同色の面の上でも輪郭が分かるよう、左辺に白の細線 */
.rail a{box-shadow:inset 2px 0 0 rgba(255,255,255,.7)}

/* ============ 流れ：帯を切らない（v2.1） ============ */
/* 余白のリズムを詰める。同じ地が続くときは重ね余白を消す */
.sec{padding-block:clamp(56px,7vw,104px)}
.sec.tight{padding-top:clamp(16px,3vw,40px)}
.ck-shead{margin-bottom:clamp(28px,4vw,44px)}
.reasons{gap:clamp(44px,7vw,96px)}
.numline{margin-bottom:var(--ck-s6)}
#growth{padding-top:clamp(24px,4vw,56px)}

/* 冒頭の夜地：FVからそのまま続く。下端は斜めに切って白地へ渡す */
.hero{background:var(--ck-color-night)}
.hero .bg{background:linear-gradient(90deg,rgba(28,16,23,.86) 0%,rgba(28,16,23,.45) 40%,rgba(28,16,23,0) 68%),linear-gradient(180deg,#5a3a4c 0%,#3a2231 55%,var(--ck-color-night) 100%)}
.sec.deep.opening{padding-top:clamp(24px,4vw,56px);padding-bottom:clamp(96px,12vw,180px);
  clip-path:polygon(0 0,100% 0,100% calc(100% - clamp(48px,7vw,110px)),0 100%)}
/* 動画カードは夜地から白地へ食い込む */
.sec.after-deep{padding-top:0}
.sec.after-deep .ck-shead{padding-top:clamp(40px,6vw,88px)}
.opening .msg > div:last-child{position:relative;z-index:2;margin-bottom:calc(-1 * clamp(96px,12vw,180px) + 24px)}
/* 終盤の夜地：上端を斜めに。直前の先輩セクションの写真が少し食い込む */
.sec.deep.closing{clip-path:polygon(0 clamp(48px,7vw,110px),100% 0,100% 100%,0 100%);padding-top:clamp(120px,15vw,220px);margin-top:calc(-1 * clamp(48px,7vw,110px))}
#voices{padding-bottom:clamp(96px,12vw,170px)}
.split{position:relative;z-index:1}

/* 箇条書きの「•」をやめ、セグメントの目印に */
.vision ul{list-style:none;padding:0;display:grid;gap:10px}
.vision li{position:relative;padding-left:26px}
.vision li::before{content:"";position:absolute;left:0;top:.7em;width:16px;height:7px;background:var(--ck-accent);clip-path:polygon(0 100%,5px 0,100% 0,calc(100% - 5px) 100%)}
/* 理念を白地に移したので文字色を戻す */
#philosophy .values{border-top-color:var(--ck-border)}
#philosophy .values p,#philosophy .vision li,#philosophy .muted{color:var(--ck-fg-muted)}
#philosophy .vision{border-top-color:var(--ck-border)}
#philosophy .vision h3{color:var(--ck-fg)}

/* 境目の斜めは疑似要素で描く（セクション自体は切らない＝カードが境目をまたげる） */
.sec.deep.opening{clip-path:none;position:relative;padding-bottom:clamp(40px,5vw,72px)}
.sec.deep.opening::after{content:"";position:absolute;left:0;right:0;top:100%;height:clamp(48px,7vw,110px);background:var(--ck-color-night);clip-path:polygon(0 0,100% 0,0 100%);pointer-events:none;z-index:0}
.opening .msg > div:last-child{position:relative;z-index:2;margin-bottom:calc(-1 * clamp(40px,6vw,96px))}
.sec.after-deep{padding-top:clamp(48px,7vw,110px)}
.sec.after-deep .ck-shead{padding-top:clamp(24px,4vw,56px)}
.sec.deep.closing{clip-path:none;position:relative;margin-top:clamp(48px,7vw,110px);padding-top:clamp(56px,7vw,104px)}
.sec.deep.closing::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:clamp(48px,7vw,110px);background:var(--ck-color-night);clip-path:polygon(100% 0,100% 100%,0 100%);pointer-events:none}
#voices{padding-bottom:clamp(40px,5vw,72px)}
@media (max-width:700px){.opening .msg > div:last-child{margin-bottom:calc(-1 * clamp(24px,6vw,48px))}}

/* ============ v2.2：参考（M&A総研 recruits）の作法 ============ */
/* 均一で控えめな余白 */
.sec{padding-block:clamp(64px,8vw,112px)}
.sec.tight{padding-top:clamp(32px,4vw,64px)}
/* 斜めの疑似要素はやめ、写真で繋ぐ */
.sec.deep.opening::after,.sec.deep.closing::before{display:none}
.sec.deep.opening{padding-bottom:clamp(64px,8vw,112px)}
.opening .msg > div:last-child{margin-bottom:0}
.sec.deep.closing{margin-top:0;padding-top:clamp(64px,8vw,112px)}
.sec.after-deep{padding-top:clamp(64px,8vw,112px)}
.sec.after-deep .ck-shead{padding-top:0}
#voices{padding-bottom:clamp(64px,8vw,112px)}
#growth{padding-top:clamp(64px,8vw,112px)}

/* 濃色セクション＝写真の上に暗幕（板にしない） */
.photo-sec{position:relative;isolation:isolate}
.photo-sec .photo-bg{position:absolute;inset:0;z-index:-1;overflow:hidden;
  background:radial-gradient(120% 80% at 80% 20%,#6a4258 0%,#3a2231 45%,#1c1017 100%)}
.photo-sec .photo-bg::before{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 90px),repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 70px);mix-blend-mode:screen}
.photo-sec .photo-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,16,23,.55),rgba(28,16,23,.86))}
.photo-sec .photo-bg span{position:absolute;right:var(--ck-s5);bottom:var(--ck-s4);z-index:1;font-size:12px;color:rgba(255,255,255,.55)}

/* 章の頭：英字の透かし＋中央揃えの和文見出し（参考ページの背骨） */
.ck-shead.c{justify-items:center;text-align:center;position:relative;padding-top:clamp(40px,5vw,72px);margin-left:auto;margin-right:auto}
.ck-shead.c .ghost{position:absolute;left:50%;top:0;transform:translateX(-50%);font-family:var(--ck-font-display-en);font-style:italic;font-weight:600;font-size:clamp(64px,10vw,150px);line-height:1;color:var(--ck-color-brand);opacity:.07;white-space:nowrap;pointer-events:none;user-select:none}
.deep .ck-shead.c .ghost{color:#fff;opacity:.08}
.ck-shead.c .seg{width:40px;height:10px;clip-path:polygon(0 100%,15px 0,100% 0,calc(100% - 15px) 100%)}
.ck-shead.c h2{position:relative}
.ck-shead.c p{text-align:center}

/* 写真の帯（章と章の橋） */
.band{position:relative;height:clamp(240px,34vw,460px);background:linear-gradient(120deg,#8a6a78,#5a3a4c 50%,#2c1522);display:grid;place-items:center;color:#fff;overflow:hidden}
.band::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 120px)}
.band .q{position:relative;font-family:var(--ck-font-display-jp);font-weight:600;font-size:clamp(22px,3vw,40px);line-height:1.5;text-align:center;text-shadow:0 2px 24px rgba(0,0,0,.4);padding:0 var(--ck-gutter)}
.band .lab{position:absolute;right:var(--ck-s5);bottom:var(--ck-s4);font-size:12px;color:rgba(255,255,255,.6)}

/* 写真コラージュ（社内旅行・研修・視察） */
.collage{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(110px,14vw,200px);gap:4px;background:var(--ck-color-night)}
.collage .ph{background:#4a2f3f;color:#e4dbe1;font-size:12px;position:relative}
.collage .ph:nth-child(3n){background:#5a3a4c}.collage .ph:nth-child(3n+1){background:#3f2635}
.collage .ph.w2{grid-column:span 2}.collage .ph.h2{grid-row:span 2}
.collage .ph i{position:absolute;left:10px;top:8px;font-style:normal;font-size:11px;font-weight:700;color:#fff;background:rgba(228,0,127,.9);padding:2px 8px}
@media (max-width:700px){.collage{grid-template-columns:repeat(3,1fr)}}

/* FV：斜めに切った写真パネルが右に重なる（参考のヒーロー） */
.hero{grid-template-columns:auto minmax(0,1fr) minmax(0,.9fr);min-height:min(82svh,860px)}
.hero .bg{background:linear-gradient(90deg,rgba(28,16,23,.92) 0%,rgba(28,16,23,.6) 45%,rgba(28,16,23,.25) 100%),radial-gradient(120% 90% at 85% 10%,#5a3a4c,#2c1522 60%,#1c1017)}
.hero .panels{position:relative;align-self:stretch;min-height:360px}
.hero .panels .ph{position:absolute;color:#e4dbe1}
.hero .panels .p1{left:0;top:6%;width:64%;height:62%;background:#7a5a6a;clip-path:polygon(24% 0,100% 0,76% 100%,0 100%)}
.hero .panels .p2{right:0;bottom:4%;width:56%;height:54%;background:#5a3a4c;clip-path:polygon(24% 0,100% 0,76% 100%,0 100%)}
@media (max-width:1000px){.hero{grid-template-columns:auto minmax(0,1fr)}.hero .panels{display:none}}

/* 魅力：斜めに切った写真＋大きな番号（参考の Merit） */
.ck-reason .ph{clip-path:polygon(14% 0,100% 0,86% 100%,0 100%)}
.ck-reason .no{font-family:var(--ck-font-display-en);font-weight:600;font-size:clamp(72px,9vw,128px);line-height:1;color:var(--ck-color-brand);opacity:.18;margin-bottom:-.35em}
.ck-reason .body{position:relative}

/* 理念のバリューを3列に */
.values.three{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--ck-s6);border-top:none;padding-top:0}
.values.three>div{grid-template-columns:1fr;gap:10px;border-top:2px solid var(--ck-border);padding-top:var(--ck-s4)}
.values.three b{font-size:20px}
.values.three p{color:var(--ck-fg-muted)}
@media (max-width:700px){.values.three{grid-template-columns:1fr}}
#philosophy .phi{grid-template-columns:1fr;justify-items:center;text-align:center}
#philosophy .mission{font-size:clamp(28px,3.8vw,44px)}
#philosophy .vision{text-align:left}

/* 魅力：写真をやや小さく、間隔を詰める */
.ck-reason{grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px)}
.ck-reason .ph{aspect-ratio:3/2}
.reasons{gap:clamp(32px,5vw,72px)}

/* FV→社長メッセージ：境目をグラデーションで溶かす（夜地から写真の明るさへ） */
.sec.deep.opening .photo-bg{background:linear-gradient(180deg,#1c1017 0,rgba(28,16,23,0) 360px),radial-gradient(120% 80% at 80% 30%,#6a4258 0%,#3a2231 45%,#1c1017 100%)}
.sec.deep.opening .photo-bg::before{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 360px);mask-image:linear-gradient(180deg,transparent 0,#000 360px)}
.hero .bg span{bottom:var(--ck-s6)}
/* コラージュ→人を育てる も同様に */
.sec.deep.closing .photo-bg{background:linear-gradient(180deg,#1c1017 0,rgba(28,16,23,0) 300px),radial-gradient(120% 80% at 20% 40%,#5a3a4c 0%,#3a2231 45%,#1c1017 100%)}

/* v2.3：セグメント（平行四辺形の目印）を全廃 */
.seg{display:none!important}
.ck-story>div::before,.steps>div::before,.ck-faq summary::before,.vision li::before{display:none}
.vision li{padding-left:0}
.jobs>div,.facts dl>div,.values>div,.values.three>div{grid-template-columns:1fr}
.jobs dt,.jobs dd,.facts dt,.facts dd{grid-column:1}
.ck-faq .a{padding-left:4px}
.ck-shead{gap:var(--ck-s3)}
.hero .side{gap:var(--ck-s4)}
.ck-story>div{padding-top:var(--ck-s4)}

/* ===== エントリーフォーム（v2） ===== */
.formsec{padding-block:clamp(40px,5vw,72px) clamp(64px,8vw,112px)}
.form{max-width:720px;margin:0 auto;display:grid;gap:var(--ck-s5)}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.fld{display:grid;gap:8px}
.fld .lab{display:flex;align-items:center;gap:10px;font-size:15px}
.fld .lab b{font-weight:700}
.badge{font-size:11px;font-weight:700;padding:2px 8px;line-height:1.6}
.badge.req{color:#fff;background:var(--ck-color-brand-deep)}
.badge.any{color:var(--ck-fg-muted);border:1px solid var(--ck-border-strong)}
.fld input,.fld select,.fld textarea{width:100%;font:inherit;font-size:16px;color:var(--ck-fg);background:var(--ck-bg-elev);border:1px solid var(--ck-border-strong);border-radius:var(--ck-radius-1);padding:13px 14px;min-height:50px}
.fld textarea{min-height:150px;resize:vertical;line-height:1.8}
.fld select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ck-fg-muted) 50%),linear-gradient(135deg,var(--ck-fg-muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--ck-focus);outline-offset:1px;border-color:var(--ck-accent)}
.fld .err{display:none;font-size:12.5px;color:var(--ck-color-brand-deep)}
.fld.invalid .err{display:block}
.fld.invalid input,.fld.invalid select,.fld.invalid textarea{border-color:var(--ck-color-brand-deep)}
.consent{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;padding:var(--ck-s4) 0;border-top:1px solid var(--ck-border);border-bottom:1px solid var(--ck-border);font-size:14px;line-height:1.8}
.consent input{width:20px;height:20px;margin-top:4px;accent-color:var(--ck-color-brand)}
.consent a{color:var(--ck-accent-link);text-decoration:underline;text-underline-offset:3px}
.consent.invalid{color:var(--ck-color-brand-deep)}
.form .submit{justify-self:start;height:52px;font:inherit;font-weight:700;font-size:16px;color:#fff;background:var(--ck-color-brand);border:0;cursor:pointer;padding:0 calc(var(--ck-cut) + 22px) 0 26px;clip-path:polygon(0 0,100% 0,calc(100% - var(--ck-cut)) 100%,0 100%);transition:background var(--ck-dur-fast) var(--ck-ease)}
.form .submit:hover{background:var(--ck-color-brand-deep)}
.form .submit[disabled]{opacity:.6;cursor:default}
.formerr{display:none;font-size:14px;color:var(--ck-color-brand-deep);font-weight:700}
.formerr.on,.formerr:not(:empty){display:block}
.recap,.formnote{font-size:12.5px;color:var(--ck-fg-muted);line-height:1.8}
.done{display:none;max-width:720px;margin:0 auto;text-align:center;padding:var(--ck-s8) 0}
.done.on{display:block}
.done .ck{width:64px;height:64px;margin:0 auto var(--ck-s5);display:grid;place-items:center;color:#fff;background:var(--ck-color-brand);clip-path:var(--ck-hex)}
.done h2{font-family:var(--ck-font-display-jp);font-weight:600;font-size:var(--ck-type-h2-32);line-height:1.4}
.done p{margin-top:var(--ck-s3);color:var(--ck-fg-muted)}

.done .back{margin-top:var(--ck-s5)}

.svgdefs{position:absolute;width:0;height:0}

/* 個人情報の取り扱い */
.policy{max-width:var(--ck-measure);margin:0 auto;display:grid;gap:var(--ck-s3)}
.policy h2{font-size:18px;font-weight:700;margin-top:var(--ck-s5)}
.policy p{color:var(--ck-fg-muted);line-height:1.95}
.policy .rev{margin-top:var(--ck-s6);font-size:13px;color:var(--ck-fg-subtle)}

/* ---- v2.4 FV video ---- */
.hero .bg .fv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%;z-index:0}
.hero .bg::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(28,16,23,.92) 0%,rgba(28,16,23,.62) 40%,rgba(28,16,23,.28) 72%,rgba(28,16,23,.45) 100%),linear-gradient(180deg,rgba(28,16,23,.35) 0%,rgba(28,16,23,0) 35%,rgba(28,16,23,.55) 100%)}
.hero .bg .credit{z-index:2;font-size:11px;color:rgba(255,255,255,.45);letter-spacing:.04em}
.hero .vert,.hero .side,.hero .panels{z-index:2}
@media (prefers-reduced-motion:reduce){.hero .bg .fv{display:none}.hero .bg{background-image:url("../video/fv-poster.jpg");background-size:cover;background-position:62% 50%}}
@media (max-width:700px){.hero{grid-template-columns:1fr !important}.hero .bg .fv{object-position:50% 50%}}
/* 見出し級テキストの改行：単語途中・2〜3文字だけの折り返しを防ぐ */
.mission{word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
#philosophy .mission{word-break:keep-all}
@media (max-width:700px){#philosophy .mission{font-size:26px;line-height:1.5}}
br.sp{display:none}
@media (max-width:700px){br.sp{display:inline}.ck-shead h2{font-size:28px}.ck-reason h3{font-size:26px}.band .q{font-size:22px;word-break:keep-all}}
@media (max-width:700px){.ck-reason{grid-template-columns:1fr}.ck-reason .body{min-width:0}}
