/* Lien Fort — 白の近未来。白ベース＋ロゴの青と紺。日本語 Noto Sans JP（細め・字間広め）、英字 Oswald、計器っぽい小文字 DM Mono */
:root{
  --white:#ffffff;
  --paper:#f6f8fb;      /* ほんのり青い白 */
  --line:#e3e8f0;       /* 方眼・罫線 */
  --blue:#2a56a8;       /* ロゴ上半分 */
  --blue-pale:#e9eff9;
  --navy:#18202e;       /* ロゴ下半分・文字 */
  --ink-soft:#5d6778;
  --f-jp:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --f-en:"Oswald","Arial Narrow",sans-serif;
  --f-mono:"DM Mono",ui-monospace,"SFMono-Regular",monospace;
  --gut:clamp(16px,3.4vw,56px);
  --hd:84px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
body{background:var(--white);color:var(--navy);font-family:var(--f-jp);font-weight:300;line-height:1.9;letter-spacing:.08em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.hud{font-family:var(--f-mono);font-weight:400;font-size:11px;letter-spacing:.14em;color:var(--blue);text-transform:uppercase}
/* ---------- header ---------- */
.hd{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:20;height:var(--hd);display:flex;align-items:center;gap:clamp(20px,3vw,48px);padding-inline:var(--gut);background:rgba(255,255,255,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hd-logo{display:flex;align-items:center;gap:12px}
.hd-mark{width:36px;height:36px}
.hd-name{font-family:var(--f-en);font-weight:400;font-size:19px;letter-spacing:.34em;line-height:1;color:var(--navy)}
.hd-nav{margin-left:auto;display:flex;align-items:center;gap:clamp(18px,2.6vw,44px)}
.ni{position:relative}
.ni-top{display:grid;justify-items:center;line-height:1.2;position:relative;padding-block:6px}
.hd-nav b{font-family:var(--f-en);font-weight:400;font-size:15px;letter-spacing:.14em}
.hd-nav small{font-size:10px;color:var(--ink-soft);letter-spacing:.1em;margin-top:3px}
.ni-top::after{content:"";position:absolute;left:50%;bottom:-2px;width:4px;height:4px;background:var(--blue);transform:translateX(-50%) rotate(45deg) scale(0);transition:transform .25s}
.ni:hover .ni-top::after,.ni:focus-within .ni-top::after{transform:translateX(-50%) rotate(45deg) scale(1)}
.sp-entry{display:none!important}
/* ドロップダウン（PC: マウスを乗せる／キーボードで移動すると開く） */
.dd{position:absolute;top:100%;left:50%;min-width:280px;padding-top:22px;transform:translate(-50%,6px);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility .25s}
.ni:hover .dd,.ni:focus-within .dd{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dd ul{list-style:none;margin:0;padding:10px 0;background:var(--white);border:1px solid var(--line);border-top:2px solid var(--blue);box-shadow:0 18px 40px rgba(24,32,46,.1)}
.dd a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 14px;padding:12px 22px;font-size:13px;letter-spacing:.1em;white-space:nowrap;transition:background .2s,color .2s}
.dd a small{grid-column:2;margin:0;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em}
.dd a .hud{grid-row:span 2}
.dd a::after{content:"";grid-row:1/3;grid-column:3;width:6px;height:6px;border-top:1px solid;border-right:1px solid;transform:rotate(45deg);opacity:0;transition:opacity .2s,transform .2s}
.dd a:hover{background:var(--blue-pale);color:var(--blue)}
.dd a:hover::after{opacity:1;transform:translateX(3px) rotate(45deg)}
body:has(.has-dd:hover)::after{content:"";position:fixed;inset:0;z-index:15;background:rgba(24,32,46,.16);pointer-events:none}
.hd-entry{display:flex;align-items:center;gap:14px;height:46px;padding:0 22px;background:var(--navy);color:var(--white);font-family:var(--f-en);font-weight:400;letter-spacing:.24em;font-size:14px;transition:background .25s}
.hd-entry i{width:18px;height:1px;background:currentColor;position:relative}
.hd-entry i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid;border-right:1px solid;transform:rotate(45deg)}
.hd-entry:hover{background:var(--blue)}
.hd-menu{display:none}
@media (max-width:960px){
  :root{--hd:64px}
  .hd{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.97)}
  .hd>.hd-entry{display:none}
  .hd-mark{width:30px;height:30px}
  .hd-name{font-size:16px;letter-spacing:.28em}
  .hd-menu{display:grid;place-content:center;gap:8px;margin-left:auto;width:44px;height:44px;background:none;border:1px solid var(--line);cursor:pointer}
  .hd-menu span{width:20px;height:1px;background:var(--navy);transition:transform .25s}
  .hd-menu[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}
  .hd-menu[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
  /* スマホ: 画面全体のメニュー。下の階層は最初から並べて表示 */
  .hd-nav{position:fixed;top:calc(var(--hd) + env(safe-area-inset-top,0px));left:0;right:0;bottom:0;margin:0;flex-direction:column;align-items:stretch;gap:0;padding:12px var(--gut) 40px;background:var(--white);overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility .25s}
  .hd-nav.open{opacity:1;visibility:visible;transform:none}
  .ni{border-bottom:1px solid var(--line);padding-block:14px}
  .ni-top{justify-items:start;grid-template-columns:auto 1fr;align-items:baseline;column-gap:14px}
  .ni-top small{margin:0}
  .ni-top::after{display:none}
  .dd{position:static;min-width:0;padding-top:6px;transform:none;opacity:1;visibility:visible}
  .dd ul{border:0;box-shadow:none;padding:0;background:none;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
  .dd a{padding:8px 0;grid-template-columns:auto 1fr;font-size:13px;white-space:normal}
  .dd a::after{display:none}
  .dd a:hover{background:none}
  body:has(.has-dd:hover)::after{display:none}
  .sp-entry{display:flex!important;justify-content:center;margin-top:24px;height:54px}
  body.menu-open{overflow:hidden}
  body.menu-open .preview-bar{display:none}
}
/* ---------- first view ---------- */
.fv{position:relative;min-height:100svh;padding:calc(var(--hd) + clamp(28px,5vh,64px)) var(--gut) 0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr auto;background:var(--white);overflow:hidden;isolation:isolate}
/* 背景写真＋読みやすくする白いグラデーション */
.fv-bg{position:absolute;inset:0;z-index:0}
.fv-bg img{width:100%;height:100%;object-fit:cover;object-position:center bottom}
.fv-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.78) 34%,rgba(255,255,255,.18) 62%,rgba(255,255,255,0) 100%)}
.fv-copy{position:relative;z-index:2;align-self:center;display:grid;gap:clamp(18px,2.6vh,28px);padding-bottom:clamp(24px,4vh,48px);max-width:720px}
.fv-status{display:flex;align-items:center;gap:10px;margin:0;flex-wrap:wrap}
.fv-status em{font-style:normal;color:var(--ink-soft);margin-left:10px;padding-left:12px;border-left:1px solid var(--line)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 0 rgba(42,86,168,.5);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 8px rgba(42,86,168,0)}100%{box-shadow:0 0 0 0 rgba(42,86,168,0)}}
.fv-tag{margin:0;font-size:clamp(13px,1.1vw,16px);letter-spacing:.22em;color:var(--blue);font-weight:400}
.fv-title{margin:0;font-weight:300;font-size:clamp(30px,3.6vw,58px);line-height:1.5;letter-spacing:.1em}
.fv-title span{display:block;white-space:nowrap}
.fv-title strong{font-weight:500;color:var(--blue)}
.fv-meaning{margin:0;font-size:13px;color:var(--ink-soft);letter-spacing:.2em}
.fv-meaning b{font-family:var(--f-en);font-weight:400;color:var(--navy);letter-spacing:.16em}
.fv-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.btn{display:grid;gap:2px;min-width:200px;padding:16px 26px;font-family:var(--f-en);font-weight:400;font-size:17px;letter-spacing:.24em;line-height:1.2;position:relative;transition:background .25s,color .25s}
.btn small{font-family:var(--f-jp);font-weight:300;font-size:11px;letter-spacing:.14em}
.btn{padding-right:56px}
.btn::after{content:"";position:absolute;right:22px;top:50%;width:7px;height:7px;border-top:1px solid;border-right:1px solid;transform:translateY(-50%) rotate(45deg);transition:right .25s}
.btn:hover::after{right:16px}
.btn-navy{background:var(--navy);color:var(--white)}
.btn-navy:hover{background:var(--blue)}
.btn-line{border:1px solid var(--navy)}
.btn-line:hover{background:var(--navy);color:var(--white)}
.fv-cap{position:absolute;z-index:2;right:calc(var(--gut) + 14px);bottom:calc(var(--biz-h,84px) + 18px);margin:0;display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-end;color:var(--navy);background:rgba(255,255,255,.82);backdrop-filter:blur(6px);padding:6px 12px}
.corner{position:absolute;z-index:2;width:22px;height:22px;border-color:var(--blue);border-style:solid;border-width:0}
.corner.tl{top:calc(var(--hd) + 18px);left:calc(var(--gut) - 10px);border-top-width:1px;border-left-width:1px}
.corner.tr{top:calc(var(--hd) + 18px);right:calc(var(--gut) - 10px);border-top-width:1px;border-right-width:1px;border-color:var(--white)}
.corner.bl{bottom:calc(var(--biz-h,84px) + 10px);left:calc(var(--gut) - 10px);border-bottom-width:1px;border-left-width:1px}
.corner.br{bottom:calc(var(--biz-h,84px) + 10px);right:calc(var(--gut) - 10px);border-bottom-width:1px;border-right-width:1px;border-color:var(--white)}
.fv-cap span:first-child{color:var(--blue)}
.fv-biz{grid-column:1/-1;position:relative;z-index:2;list-style:none;margin:0 calc(var(--gut) * -1);padding:0 var(--gut);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);background:rgba(255,255,255,.9)}
.fv-biz li{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:baseline;padding:20px 18px 22px;border-left:1px solid var(--line);line-height:1.3}
.fv-biz li:first-child{border-left:0;padding-left:0}
.fv-biz .hud{grid-row:span 2}
.fv-biz b{font-family:var(--f-en);font-weight:400;font-size:15px;letter-spacing:.16em}
.fv-biz small{font-size:12px;color:var(--ink-soft);letter-spacing:.12em;margin-top:4px}
@media (max-width:960px){
  .fv{padding-top:calc(var(--hd) + 28px)}
  .fv-bg::after{background:linear-gradient(180deg,rgba(255,255,255,.82) 0%,rgba(255,255,255,.6) 42%,rgba(255,255,255,.12) 72%,rgba(255,255,255,.5) 100%)}
  .fv{min-height:100svh}
  .fv-cap{position:relative;right:auto;bottom:auto;justify-content:flex-start;gap:6px 14px;margin-bottom:18px;order:2;justify-self:start}
  .corner{display:none}
  .fv-copy{order:1;padding-bottom:28px}
  .fv-biz{order:3;grid-template-columns:repeat(2,minmax(0,1fr))}
  .fv-biz li{padding:16px 12px}
  .fv-biz small{letter-spacing:.02em}
  .fv-biz li:nth-child(odd){border-left:0;padding-left:0}
  .fv-biz li:nth-child(n+3){border-top:1px solid var(--line)}
  .fv-status em{margin-left:0;padding-left:0;border-left:0;width:100%}
}
@media (max-width:420px){
  .fv-title{font-size:27px;letter-spacing:.06em}
  .btn{min-width:0;flex:1}
  .fv-biz b{font-size:13px;letter-spacing:.1em}
}
/* ---------- 登場アニメーション（JSが .is-ready を付けたときだけ動く） ---------- */
.js .in{opacity:0;transform:translateY(18px)}
.js.is-ready .in{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--d,0) * 90ms)}
.js .fv-bg img{clip-path:inset(0 0 0 100%)}
/* ①写真がゆっくりズーム（is-ready 後に開始） */
.js.is-ready .fv-bg img{animation:kenburns 30s cubic-bezier(.45,0,.55,1) 1.2s infinite alternate both;transform-origin:60% 55%;will-change:transform}
.js.is-ready .fv-bg img{clip-path:inset(0);transition:clip-path 1.4s cubic-bezier(.7,0,.2,1) .1s}
/* ---------- opening ---------- */
.op{position:fixed;inset:0;z-index:100;background:var(--white);display:grid;place-content:center;justify-items:center;gap:22px;clip-path:inset(0)}
.op svg{width:clamp(96px,11vw,140px);height:auto;overflow:visible}
.op .t{fill:#365584;transform:translateY(-90px);opacity:0;animation:opTop .9s cubic-bezier(.7,0,.2,1) .15s forwards}
.op .b{fill:#1c2632;transform:translateY(90px);opacity:0;animation:opBottom .9s cubic-bezier(.7,0,.2,1) .15s forwards}
@keyframes opTop{to{transform:none;opacity:1}}
@keyframes opBottom{to{transform:none;opacity:1}}
.op .f{fill:#1b1d24}
.op-name{font-family:var(--f-en);font-weight:400;font-size:clamp(24px,2.6vw,34px);letter-spacing:.7em;margin-right:-.7em;color:var(--navy);opacity:0;animation:opName 1s cubic-bezier(.2,.7,.2,1) .85s forwards}
@keyframes opName{to{letter-spacing:.34em;margin-right:-.34em;opacity:1}}
.op-sys{display:flex;gap:18px;align-items:center;opacity:0;animation:fade .4s ease 1.05s forwards}
.op-bar{width:120px;height:1px;background:var(--line);position:relative;overflow:hidden}
.op-bar::after{content:"";position:absolute;inset:0;background:var(--blue);transform-origin:left;transform:scaleX(0);animation:bar 1s cubic-bezier(.6,0,.2,1) 1.1s forwards}
@keyframes bar{to{transform:scaleX(1)}}
@keyframes fade{to{opacity:1}}
.op.out{clip-path:inset(0 0 100% 0);transition:clip-path .8s cubic-bezier(.7,0,.2,1)}
/* ---------- 見本用の表示 ---------- */
.preview-bar{position:fixed;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:30;display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--line);padding:6px 6px 6px 12px;color:var(--ink-soft)}
.preview-bar button{font:inherit;letter-spacing:inherit;color:var(--white);background:var(--navy);border:0;padding:6px 10px;cursor:pointer}
@media (max-width:600px){.preview-bar{left:12px;justify-content:space-between;gap:6px;padding:6px}.preview-bar>span:first-child{display:none}.preview-bar button{padding:6px 8px}.preview-bar{flex-wrap:wrap;justify-content:flex-start}}
.preview-bar button{white-space:nowrap}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important}
}
/* ---------- 共通（2つ目以降のセクション） ---------- */
.wrap{max-width:1280px;margin-inline:auto;padding-inline:var(--gut)}
.sec{position:relative;padding-block:clamp(88px,11vw,160px)}
.sec-head{display:grid;gap:14px;margin-bottom:clamp(40px,5vw,72px)}
.sec-head h2{margin:0;display:grid;gap:10px;line-height:1}
.sec-head h2 b{font-family:var(--f-en);font-weight:400;font-size:clamp(52px,7.4vw,108px);letter-spacing:.04em;color:var(--navy)}
.sec-head h2 span{font-size:14px;font-weight:400;letter-spacing:.24em;color:var(--blue)}
.hud.light{color:rgba(255,255,255,.75)}
br.sp{display:none}
@media (max-width:640px){br.sp{display:inline}br.pc{display:none}}
.rv{transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.pre{opacity:.15;transform:translateY(26px)}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,110px);align-items:start}
.about-body{display:grid;gap:1.6em;font-size:15px;line-height:2.2}
.about-body p{margin:0}
.about-lead{font-size:clamp(20px,2.1vw,28px);line-height:1.8;font-weight:400;letter-spacing:.1em;color:var(--navy)}
.about-key{font-size:clamp(16px,1.5vw,19px);font-weight:400;color:var(--blue);padding-left:18px;border-left:1px solid var(--blue)}
@media (max-width:860px){.about-grid{grid-template-columns:1fr}}

/* ---------- service ---------- */
.service{background:var(--paper)}
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,5vw,72px) clamp(24px,4vw,56px)}
.svc{display:grid;gap:10px;align-content:start}
.svc-img{aspect-ratio:16/10;overflow:hidden;margin-bottom:14px;position:relative}
.ph{display:grid;place-items:center;background:linear-gradient(var(--line) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/28px 28px,var(--blue-pale);border:1px solid var(--line)}
.ph .hud{color:var(--ink-soft);background:var(--white);padding:4px 10px}
.svc h3{margin:0;display:grid;gap:6px;font-weight:400;font-size:clamp(18px,1.6vw,21px);letter-spacing:.12em}
.svc h3 b{font-family:var(--f-en);font-weight:400;font-size:clamp(26px,2.6vw,36px);letter-spacing:.08em;color:var(--navy);line-height:1}
.svc-desc{margin:0;color:var(--ink-soft);font-size:14px}
.tags{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tags li{border:1px solid var(--blue);padding:3px 10px;text-transform:none}
.svc h3 b,.svc .svc-img{transition:color .3s}
.svc:hover h3 b{color:var(--blue)}
@media (max-width:760px){.svc-grid{grid-template-columns:1fr}}

/* ---------- recruit ---------- */
.rc-intro{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-bottom:clamp(28px,4vw,48px)}
.rc-catch{margin:0;font-size:clamp(20px,2.3vw,30px);font-weight:400;letter-spacing:.1em}
.rc-keys{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.rc-keys li{font-size:13px;padding:6px 16px;border:1px solid var(--navy);letter-spacing:.14em}
.rc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.rc-card{position:relative;display:grid;align-items:end;min-height:clamp(340px,36vw,520px);overflow:hidden;color:var(--white);background:var(--navy)}
.rc-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.rc-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,32,46,0) 35%,rgba(24,32,46,.82) 100%)}
.rc-card:hover img{transform:scale(1.05)}
.rc-in{position:relative;z-index:1;padding:clamp(22px,3vw,40px);display:grid;gap:8px}
.rc-in .hud{color:rgba(255,255,255,.8)}
.rc-in h3{margin:0;display:grid;gap:8px;font-weight:400;font-size:15px;letter-spacing:.2em;line-height:1}
.rc-in h3 b{font-family:var(--f-en);font-weight:400;font-size:clamp(40px,4.6vw,68px);letter-spacing:.06em}
.rc-in p{margin:0;font-size:13px}
.rc-more{margin-top:10px;justify-self:start;font-family:var(--f-en);font-size:13px;letter-spacing:.24em;padding:10px 44px 10px 0;border-bottom:1px solid rgba(255,255,255,.6);position:relative}
.rc-more::after{content:"";position:absolute;right:4px;top:50%;width:7px;height:7px;border-top:1px solid;border-right:1px solid;transform:translateY(-50%) rotate(45deg);transition:right .25s}
.rc-card:hover .rc-more::after{right:0}
@media (max-width:760px){.rc-grid{grid-template-columns:1fr}}

/* ---------- voice ---------- */
.voice{background:var(--paper)}
.voice-lead{margin:-24px 0 clamp(32px,4vw,52px);color:var(--ink-soft);font-size:14px}
.voice-more{display:none;margin:clamp(32px,4vw,48px) 0 0;text-align:center}
main:has(#fv) .vc-extra{display:none}
main:has(#fv) .voice-more{display:block}
.voice-more .btn{display:inline-grid;text-align:left}
.voice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px);align-items:start}
.vc{background:var(--white);border-top:1px solid var(--blue);padding:clamp(24px,2.6vw,36px);display:grid;gap:14px}
.vc p{margin:0;font-size:14px;line-height:2;color:var(--ink-soft)}
.vc-who{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.vc-who b{font-family:var(--f-en);font-weight:400;font-size:40px;letter-spacing:.06em;color:var(--navy);line-height:1}
.vc h3{margin:0;font-size:17px;font-weight:500;letter-spacing:.08em;line-height:1.6;color:var(--navy)}
.vc h3 span{display:block;font-size:12px;font-weight:400;color:var(--blue);letter-spacing:.14em}
.vc summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:10px}
.vc summary::-webkit-details-marker{display:none}
.vc summary::after{content:"+";font-size:14px}
.vc details[open] summary::after{content:"−"}
.vc details p{margin-top:12px}
@media (max-width:960px){.voice-grid{grid-template-columns:1fr}}

/* ---------- contact ---------- */
.contact{background:var(--blue);color:var(--white);padding-block:clamp(80px,10vw,140px)}
.contact .sec-head{margin-bottom:0}
.contact .sec-head h2 b{color:var(--white)}
.contact .sec-head h2 span,.contact .hud{color:rgba(255,255,255,.8)}
.contact-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,110px);align-items:end}
.contact-body{display:grid;gap:26px}
.contact-body p{margin:0}
.contact-btns{display:flex;flex-wrap:wrap;gap:12px}
.btn-white{background:var(--white);color:var(--navy)}
.btn-white:hover{background:var(--navy);color:var(--white)}
.btn-outline{border:1px solid rgba(255,255,255,.8);color:var(--white)}
.btn-outline:hover{background:var(--white);color:var(--navy)}
.contact-tel{font-family:var(--f-en);font-size:clamp(26px,2.6vw,34px);letter-spacing:.1em;display:flex;align-items:center;gap:14px;user-select:all}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;align-items:start}}
@media (max-width:520px){.contact-btns .btn{flex:1 1 100%}.about-key{font-size:15px}.about-lead{font-size:18px}}
.btn small{white-space:nowrap}

/* ---------- footer ---------- */
.ft{background:var(--paper);padding-top:clamp(56px,7vw,88px);font-size:13px;color:var(--ink-soft)}
.ft-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px}
.ft-brand{display:grid;gap:14px}
.ft-brand p{margin:0}
.ft-logo{display:flex;align-items:center;gap:12px}
.ft-logo svg{width:34px;height:34px}
.ft-logo span{font-family:var(--f-en);font-size:18px;letter-spacing:.34em;color:var(--navy)}
.ft-sns{display:flex;gap:10px;margin:4px 0 0;padding:0;list-style:none}
.ft-sns a{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:#fff;transition:transform .3s,box-shadow .3s}
.ft-sns a:hover{transform:translateY(-3px);box-shadow:0 8px 18px rgba(24,32,46,.18)}
.ft-sns svg{width:20px;height:20px}
.ft-sns .is-ig{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}
.ft-sns .is-tt{background:#000}
.ft-sns .is-tt svg{filter:drop-shadow(1.2px 1.2px 0 #fe2c55) drop-shadow(-1.2px -1.2px 0 #25f4ee)}
.ft-sns .is-yt{background:#ff0000}
/* ヒーロー右上のSNS（すかし） */
.hero-sns{position:absolute;z-index:3;right:var(--gut);top:calc(var(--hd) + clamp(28px,5vh,64px));display:flex;gap:36px;margin:0;padding:0;list-style:none}
.bz-hero .hero-sns{top:clamp(24px,3vw,40px)}
.hero-sns a{display:grid;place-items:center;color:var(--navy);opacity:.4;transition:opacity .25s,color .25s}
.hero-sns a:hover{opacity:1;color:var(--blue)}
.hero-sns svg{width:30px;height:30px}
@media (max-width:960px){.hero-sns{gap:26px}.hero-sns svg{width:25px;height:25px}.fv .hero-sns{top:calc(var(--hd) + 26px)}.bz-hero .hero-sns{top:16px}}
.ft-nav{display:grid;grid-template-columns:repeat(3,auto);gap:18px 48px;align-content:start}
.ft-nav a{display:grid;font-family:var(--f-en);font-size:14px;letter-spacing:.16em;color:var(--navy);line-height:1.4}
.ft-nav small{font-family:var(--f-jp);font-size:10px;color:var(--ink-soft);letter-spacing:.1em}
.ft-copy{text-align:center;padding:48px 16px calc(28px + 60px);margin:0;color:var(--ink-soft)}
@media (max-width:760px){.ft-grid{grid-template-columns:1fr}.ft-nav{grid-template-columns:repeat(2,auto)}}

/* ---------- service: つながりの図（試作。ダメなら .eco ごと削除） ---------- */
.svc-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:clamp(24px,4vw,64px);align-items:center;margin-bottom:clamp(40px,5vw,72px)}
.svc-top .sec-head{margin-bottom:0}
.eco{margin:0}
.eco svg{width:100%;height:auto;display:block;overflow:visible}
.eco .ring-out{fill:none;stroke:var(--line);stroke-dasharray:2 7;transform-origin:240px 240px;animation:spin 60s linear infinite}
.eco .orbit{fill:none;stroke:var(--line)}
.eco .orbit-flow{fill:none;stroke:var(--blue);stroke-width:1.5;stroke-dasharray:46 1022;stroke-linecap:round;animation:orbit 9s linear infinite}
.eco .spoke{stroke:var(--line)}
.eco .flow{stroke:var(--blue);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:10 170;stroke-dashoffset:10;animation:flow 2.6s cubic-bezier(.5,0,.5,1) infinite;animation-delay:calc(var(--i) * .65s)}
.eco .core-ring{fill:none;stroke:var(--blue);stroke-opacity:.35}
.eco .core-bg{fill:var(--white)}
.eco .core-name{font-family:var(--f-en);font-size:11px;letter-spacing:.32em;fill:var(--navy);text-anchor:middle}
.eco .node rect{fill:var(--white);stroke:var(--blue);stroke-width:1.5}
.eco .node .ping{fill:var(--blue);opacity:0;transform-box:fill-box;transform-origin:center;animation:ping2 2.6s ease-out infinite;animation-delay:calc(var(--i) * .65s + 1.4s)}
.eco .n-en{font-family:var(--f-en);font-size:15px;letter-spacing:.12em;fill:var(--navy);text-anchor:middle}
.eco .n-jp{font-size:12px;letter-spacing:.12em;fill:var(--ink-soft);text-anchor:middle}
.eco .n-en,.eco .n-jp,.eco .core-name{paint-order:stroke;stroke:var(--paper);stroke-width:6px;stroke-linejoin:round}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes orbit{to{stroke-dashoffset:-1068}}
@keyframes flow{0%{stroke-dashoffset:10}70%,100%{stroke-dashoffset:-170}}
@keyframes ping2{0%{opacity:.35;transform:scale(.6)}100%{opacity:0;transform:scale(3.2)}}
@media (max-width:860px){
  .svc-top{grid-template-columns:1fr}
  .eco{max-width:440px;width:100%;justify-self:center}
}
@media (max-width:520px){.eco .n-jp{display:none}.eco .n-en{font-size:19px}}

/* ---------- 事業ページ（service/*.html） ---------- */
.sub{padding-top:var(--hd)}
.crumb{display:flex;gap:10px;color:var(--ink-soft);margin:0 0 clamp(36px,5vw,64px)}
.crumb a:hover{color:var(--blue)}
.bz-hero{padding-top:clamp(40px,6vw,88px);background:var(--white);position:relative;overflow:hidden}
.bz-hero .wrap{position:relative}
.bz-title{margin:0 0 clamp(40px,5vw,72px);display:grid;gap:12px;line-height:1}
.bz-title b{font-family:var(--f-en);font-weight:400;font-size:clamp(48px,8vw,124px);letter-spacing:.04em}
.bz-title small{font-size:clamp(15px,1.4vw,18px);letter-spacing:.24em;color:var(--blue);font-weight:400}
.bz-intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,5vw,88px);align-items:start}
.bz-catch{margin:0;font-size:clamp(24px,2.8vw,40px);line-height:1.6;letter-spacing:.14em;font-weight:400;color:var(--blue)}
.bz-lead{margin:0;font-size:15px;line-height:2.3}
.bz-visual{margin-top:clamp(48px,6vw,88px);aspect-ratio:16/6.5;max-width:100%}
@media (max-width:860px){.bz-intro{grid-template-columns:1fr}.bz-visual{aspect-ratio:16/10}}
@media (max-width:520px){.bz-catch{font-size:22px;letter-spacing:.1em}}

.bz-what{background:var(--paper)}
.bz-what-grid{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.bz-side{position:sticky;top:calc(var(--hd) + 40px);border-right:1px solid var(--line);padding-right:24px}
.bz-side ul{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:4px}
.bz-side a{display:flex;gap:14px;align-items:baseline;padding:10px 0;font-family:var(--f-en);font-size:15px;letter-spacing:.14em;color:var(--ink-soft);transition:color .2s}
.bz-side a:hover{color:var(--blue)}
.bz-items{display:grid;gap:clamp(48px,6vw,88px)}
.bz-item{display:grid;gap:16px;scroll-margin-top:calc(var(--hd) + 32px);padding-bottom:clamp(40px,5vw,72px);border-bottom:1px solid var(--line)}
.bz-item:last-child{border-bottom:0;padding-bottom:0}
.bz-item h3{margin:0;font-size:clamp(22px,2.4vw,32px);font-weight:400;letter-spacing:.12em;line-height:1.6}
.bz-item p:last-child{margin:0;font-size:15px;line-height:2.2;color:var(--ink-soft);max-width:40em}
.soon{display:inline-block;margin-left:10px;padding:2px 8px;border:1px solid var(--blue);vertical-align:2px}
@media (max-width:860px){
  .bz-what-grid{grid-template-columns:1fr}
  .bz-side{position:static;border-right:0;padding-right:0;border-bottom:1px solid var(--line);padding-bottom:16px}
  .bz-side ul{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:8px}
}

.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--navy)}
.flow li{position:relative;display:grid;gap:10px;align-content:start;padding:28px 24px 8px 0}
.flow li:not(:last-child)::after{content:"";position:absolute;right:14px;top:34px;width:8px;height:8px;border-top:1px solid var(--blue);border-right:1px solid var(--blue);transform:rotate(45deg)}
.flow b{font-size:18px;font-weight:500;letter-spacing:.1em}
.flow p{margin:0;font-size:13px;line-height:2;color:var(--ink-soft)}
@media (max-width:860px){.flow{grid-template-columns:1fr}.flow li{padding:22px 0;border-bottom:1px solid var(--line)}.flow li:not(:last-child)::after{right:4px;top:26px;transform:rotate(135deg)}}

.bz-others{padding-block:clamp(64px,8vw,104px);border-top:1px solid var(--line)}
.bz-o-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}
.bz-o{display:grid;gap:6px;padding:26px 28px;border:1px solid var(--line);position:relative;transition:border-color .25s,background .25s}
.bz-o b{font-family:var(--f-en);font-weight:400;font-size:clamp(22px,2vw,28px);letter-spacing:.08em}
.bz-o small{font-size:12px;color:var(--ink-soft);letter-spacing:.14em}
.bz-o::after{content:"";position:absolute;right:24px;top:50%;width:8px;height:8px;border-top:1px solid;border-right:1px solid;transform:translateY(-50%) rotate(45deg);transition:right .25s}
.bz-o:hover{border-color:var(--blue);background:var(--blue-pale)}
.bz-o:hover::after{right:18px}
@media (max-width:760px){.bz-o-grid{grid-template-columns:1fr}}

/* ---------- 採用ページ（recruit.html / recruit/*.html） ---------- */
.rc-msg-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,110px);align-items:start}
.rc-msg-body{display:grid;gap:1.5em;font-size:15px;line-height:2.3}
.rc-msg-body p{margin:0}
.rc-msg-catch{font-size:clamp(26px,3vw,42px)!important;line-height:1.5!important;letter-spacing:.14em;color:var(--blue);font-weight:400}
@media (max-width:860px){.rc-msg-grid{grid-template-columns:1fr}}
.rc-culture{background:var(--paper)}
.culture-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.cul{background:var(--white);border-top:1px solid var(--blue);padding:clamp(24px,2.6vw,36px);display:grid;gap:14px;align-content:start}
.cul h3{margin:0;display:grid;gap:8px;font-size:17px;font-weight:500;letter-spacing:.1em}
.cul h3 b{font-family:var(--f-en);font-weight:400;font-size:clamp(22px,2vw,28px);letter-spacing:.06em;color:var(--blue);line-height:1}
.cul p:last-child{margin:0;font-size:14px;line-height:2.1;color:var(--ink-soft)}
@media (max-width:960px){.culture-grid{grid-template-columns:1fr}}
.num-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.num{display:grid;grid-template-columns:auto 1fr;column-gap:24px;align-items:center;padding:clamp(28px,4vw,52px) clamp(0px,2vw,28px);border-bottom:1px solid var(--line)}
.num:nth-child(odd){border-right:1px solid var(--line)}
.num-ic{grid-row:1/4;width:clamp(48px,5vw,72px);height:auto;fill:none;stroke:var(--blue);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.num .hud{margin:0}
.num-v{margin:4px 0;display:flex;align-items:baseline;gap:4px;flex-wrap:wrap;line-height:1}
.num-v b{font-family:var(--f-en);font-weight:400;font-size:clamp(52px,6vw,88px);letter-spacing:.02em;color:var(--navy);font-variant-numeric:tabular-nums}
.num-v small{font-size:clamp(14px,1.3vw,17px);letter-spacing:.08em}
.num-t{margin:0;font-size:13px;color:var(--ink-soft)}
@media (max-width:760px){.num-grid{grid-template-columns:1fr}.num:nth-child(odd){border-right:0}}
.rc-entry{background:var(--paper)}
.req{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);margin:0;border-top:1px solid var(--navy)}
.req dt,.req dd{margin:0;padding:22px 8px;border-bottom:1px solid var(--line);font-size:15px;line-height:2}
.req dt{font-weight:500;letter-spacing:.12em}
.req dd b{display:inline-block;min-width:6.5em;font-weight:500;color:var(--blue)}
@media (max-width:640px){.req{grid-template-columns:1fr}.req dt{border-bottom:0;padding-bottom:0}.req dd{padding-top:6px}.req dd b{display:block}}
.rc-flow{background:var(--white)}
.apply{background:var(--blue-pale);color:var(--navy);padding-block:clamp(72px,9vw,120px)}
.apply .hud{color:var(--blue)}
.apply-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center}
.apply-catch{margin:12px 0;font-size:clamp(24px,3vw,40px);letter-spacing:.12em;line-height:1.5}
.apply-note{margin:0;font-size:14px;color:var(--ink-soft)}
.apply-btns{display:grid;gap:12px;min-width:min(340px,100%)}
.btn-line-app{display:flex;align-items:center;gap:16px;background:#06c755;color:var(--white);font-family:var(--f-jp);font-size:17px;letter-spacing:.1em}
.btn-line-app span{display:grid;gap:2px}
.btn-line-app{padding-right:64px}
.btn-line-app:hover{background:#05a948}
.btn-ghost{border:1px solid var(--navy);color:var(--navy);background:var(--white)}
.btn-ghost:hover{background:var(--navy);color:var(--white)}
@media (max-width:760px){.apply-grid{grid-template-columns:1fr}}
.num-pair{display:grid;gap:2px;margin:6px 0}
.num-pair .num-v{margin:0}
.num-pair{gap:10px}
.num-pair .num-v b{font-size:clamp(30px,3.4vw,52px)}
.num-plus{flex-basis:100%;padding-left:calc(4.6em + 8px);margin-top:2px;font-size:12px!important;color:var(--ink-soft)}
.num-tag{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--white);background:var(--blue);padding:3px 8px;margin-right:8px;align-self:center}
.num-note{font-size:11px;color:var(--ink-soft)}
@media (max-width:520px){.num-pair .num-v b{font-size:23px}.num-pair .num-v small{font-size:12px}.num-pair .num-v{gap:3px}.num-tag{margin-right:4px;padding:2px 6px}.num-plus{padding-left:0}}

/* ---------- 会社概要ページ（company.html） ---------- */
.co-visual{overflow:hidden}
.co-visual img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.co-philo{background:var(--paper)}
.philo-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:clamp(20px,4vw,64px);align-items:center}
.philo-word{display:grid;gap:10px;padding:clamp(28px,3vw,44px);background:var(--white);border-top:1px solid var(--blue)}
.philo-word b{font-family:var(--f-en);font-weight:400;font-size:clamp(56px,7vw,104px);letter-spacing:.06em;line-height:1;color:var(--navy)}
.philo-word span{font-size:18px;letter-spacing:.3em;color:var(--blue)}
.philo-word p{margin:6px 0 0;font-size:14px;line-height:2.1;color:var(--ink-soft)}
.philo-x{font-family:var(--f-en);font-weight:300;font-size:clamp(32px,4vw,56px);color:var(--blue)}
.philo-line{margin:clamp(40px,5vw,72px) 0 0;text-align:center;font-size:clamp(20px,2.6vw,34px);letter-spacing:.2em;color:var(--navy)}
@media (max-width:760px){.philo-grid{grid-template-columns:1fr}.philo-x{text-align:center}}
.co-sign{display:grid;justify-items:end;gap:6px;margin-top:20px!important}
.co-sign span{font-size:13px;color:var(--ink-soft)}
.co-sign b{font-size:24px;font-weight:400;letter-spacing:.3em}
.co-profile{background:var(--paper)}
.co-access-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,110px);align-items:start}
.co-access-body{display:grid;gap:clamp(40px,5vw,56px);justify-items:stretch}
.co-office{display:grid;gap:18px;justify-items:start}
.co-office + .co-office{padding-top:clamp(40px,5vw,56px);border-top:1px solid var(--line)}
.co-office-name{margin:0;display:flex;align-items:baseline;gap:12px;color:var(--blue)}
.co-office-name span{font-family:var(--f-jp);font-size:13px;letter-spacing:.14em;color:var(--navy)}
.ft-sub{font-size:12px}
.co-addr{margin:0;font-size:clamp(18px,1.8vw,24px);line-height:1.9;letter-spacing:.1em}
.co-geo{margin:0}
@media (max-width:860px){.co-access-grid{grid-template-columns:1fr}}

/* ---------- 協力会社募集ページ（partner.html） ---------- */
.pt-merit{background:var(--paper)}
.pt-fields{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0}
.pt-fields .bz-o{padding:24px 40px 24px 22px}
.pt-fields .bz-o b{font-size:clamp(18px,1.55vw,24px);white-space:nowrap}
.pt-fields .bz-o::after{right:18px}
.pt-wanted{margin-top:clamp(40px,5vw,64px);display:grid;gap:14px}
.pt-wanted .hud{margin:0}
.pt-wanted-t{margin:0;font-size:clamp(18px,1.8vw,22px);letter-spacing:.12em}
@media (max-width:1100px){.pt-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.pt-fields{grid-template-columns:1fr}}

/* ---------- お問い合わせ（contact.html）・プライバシーポリシー ---------- */
.ct{background:var(--paper)}
.ct-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,5vw,80px);align-items:start}
.ct-side{display:grid;gap:14px;position:sticky;top:calc(var(--hd) + 32px)}
.ct-box{background:var(--white);padding:22px 24px;border-top:1px solid var(--blue);display:grid;gap:8px}
.ct-box p{margin:0;font-size:14px}
.ct-box .hud{font-size:11px}
.ct-tel{font-family:var(--f-en);font-size:28px!important;letter-spacing:.08em;user-select:all}
.ct-box a{color:var(--blue)}
.ct-link{justify-self:start;font-size:13px;border-bottom:1px solid currentColor}
.ct-form{background:var(--white);padding:clamp(24px,4vw,56px);display:grid;gap:26px}
.f{display:grid;gap:8px;border:0;margin:0;padding:0;min-width:0}
.f label,.f legend{font-size:14px;font-weight:500;letter-spacing:.1em;padding:0}
.req-tag{display:inline-block;margin-left:10px;font-size:10px;font-weight:400;letter-spacing:.1em;color:var(--white);background:var(--blue);padding:1px 7px;vertical-align:2px}
.f input[type=text],.f input[type=email],.f input[type=tel],.f textarea{width:100%;font:inherit;font-size:15px;letter-spacing:.04em;padding:14px 16px;border:1px solid var(--line);background:var(--paper);color:var(--navy);border-radius:0;transition:border-color .2s,background .2s}
.f input:focus,.f textarea:focus{outline:none;border-color:var(--blue);background:var(--white)}
.f [aria-invalid="true"]{border-color:#c0392b}
.f textarea{min-height:200px;resize:vertical}
.f-radios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.f-radios label{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);font-weight:400;letter-spacing:.06em;cursor:pointer;transition:border-color .2s,background .2s}
.f-radios label:has(input:checked){border-color:var(--blue);background:var(--blue-pale)}
.f-radios input,.f-agree input{accent-color:var(--blue)}
.f-agree{display:flex!important;align-items:center;gap:10px;font-weight:400!important}
.f-agree a{color:var(--blue);border-bottom:1px solid currentColor}
.f-err{margin:0;font-size:12px;color:#c0392b}
.ct-submit{justify-self:start;min-width:240px;border:0;cursor:pointer;text-align:left;font-family:var(--f-en)}
.ct-note{margin:0;padding:14px 16px;background:var(--blue-pale);color:var(--blue);font-size:14px}
@media (max-width:860px){.ct-grid{grid-template-columns:1fr}.ct-side{position:static;order:2}}
@media (max-width:520px){.f-radios{grid-template-columns:1fr}.ct-submit{width:100%}}
.pv-hero{padding-bottom:clamp(24px,3vw,40px)}
.pv-body{max-width:860px;font-size:14px;line-height:2.1}
.pv-body h3{margin:2.4em 0 .6em;font-size:17px;font-weight:500;letter-spacing:.08em;padding-top:1.2em;border-top:1px solid var(--line)}
.pv-body h4{margin:1.2em 0 .2em;font-size:14px;font-weight:500;color:var(--blue)}
.pv-body p{margin:.6em 0}
.pv-body ul{margin:.4em 0;padding-left:1.4em}
.pv-body li{margin:.2em 0}
.pv-date{margin-top:3em!important;text-align:right;color:var(--ink-soft)}
.ft-copy a{color:inherit}

/* ---------- ABOUT の強調 ---------- */
.about-em{font-weight:500;color:var(--blue);background:linear-gradient(transparent 70%,var(--blue-pale) 70%)}
.about-shout{margin-top:.6em;padding:clamp(24px,3vw,40px) 0 0;border-top:1px solid var(--navy);display:grid;gap:6px}
.about-shout p{margin:0}
.about-shout-s{font-size:15px;letter-spacing:.2em;color:var(--ink-soft)}
.about-shout-l{font-size:clamp(34px,3.6vw,56px);white-space:nowrap;font-weight:500;letter-spacing:.12em;line-height:1.3;color:var(--navy)}
@media (max-width:640px){.about-shout-l{white-space:normal}}

/* ---------- 事業ページ: こんな方におすすめ・対応業種 ---------- */
.fy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.fy-card{border:1px solid var(--line);padding:clamp(24px,2.6vw,36px);display:grid;gap:14px;align-content:start;background:var(--white)}
.fy-card h3{margin:0;font-size:clamp(17px,1.5vw,20px);font-weight:500;line-height:1.7;letter-spacing:.06em;color:var(--blue)}
.fy-card p:last-child{margin:0;font-size:14px;line-height:2.1;color:var(--ink-soft)}
@media (max-width:960px){.fy-grid{grid-template-columns:1fr}}
.industry li{background:var(--white)}
@media (max-width:1100px){.culture-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.culture-grid{grid-template-columns:1fr}}
@media (max-width:1000px){.rc-grid{grid-template-columns:1fr}}
.rc-in h3 b{font-size:clamp(34px,3.4vw,56px)}

/* ---------- 協力会社: 営業体制・協業の形 ---------- */
.pt-num .num-v b:not([data-count]){font-size:clamp(40px,4.6vw,68px)}
.pt-models{background:var(--paper)}
.model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.model{background:var(--white);border-top:1px solid var(--blue);padding:clamp(24px,2.6vw,36px);display:grid;gap:14px;align-content:start}
.model h3{margin:0;display:grid;gap:8px;font-size:17px;font-weight:500;letter-spacing:.1em}
.model h3 b{font-family:var(--f-en);font-weight:400;font-size:clamp(24px,2.2vw,32px);letter-spacing:.06em;color:var(--blue);line-height:1}
.model-lead{margin:0;font-size:15px;line-height:1.9;color:var(--navy)}
.model dl{margin:6px 0 0;display:grid;gap:4px;border-top:1px solid var(--line);padding-top:14px}
.model dt{font-size:12px;letter-spacing:.14em;color:var(--blue);font-weight:500}
.model dd{margin:0 0 10px;font-size:14px;line-height:2;color:var(--ink-soft)}
@media (max-width:960px){.model-grid{grid-template-columns:1fr}}
.co-station{margin:0;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:15px;letter-spacing:.08em}
.co-station b{font-weight:500;color:var(--blue)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ct-note.is-error{background:#fbeaea;color:#c0392b}
.ct-submit:disabled{opacity:.5;cursor:wait}

/* ---------- 写真（事業・協力会社） ---------- */
.bz-visual{overflow:hidden}
.bz-visual img{width:100%;height:100%;object-fit:cover}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.svc:hover .svc-img img{transform:scale(1.04)}

/* =====================================================
   MOTION（動き）: 番号ごとに独立。外すときはブロックごと削除
   ===================================================== */
/* ① ドローン風: ゆっくり前進しながら、横に流れて少し旋回する */
/* 動き出す前から最初のコマと同じ大きさにしておく（読み込み時に「カクッ」と拡大するのを防ぐ） */
.fv-bg img{transform-origin:60% 55%}
.bz-hero-bg img{transform-origin:50% 40%}
.js .fv-bg img,.js .bz-hero-bg img{transform:scale(1.1) translate(2%,1.5%) rotate(-.5deg)}
@keyframes kenburns{0%{transform:scale(1.1) translate(2%,1.5%) rotate(-.5deg)}100%{transform:scale(1.2) translate(-3.5%,-2%) rotate(.6deg)}}
/* ③ 光の粒（canvas） */
.fv-dust{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}
/* ④ キャッチが1行ずつ下からせり上がる */
.js .fv-title .in{opacity:1;transform:translateY(60%);clip-path:inset(0 0 100% 0)}
.js.is-ready .fv-title .in{transform:none;clip-path:inset(0 0 -10% 0);transition:transform 1s cubic-bezier(.2,.8,.2,1),clip-path 1s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--d,0) * 140ms + .2s)}
/* ⑥ 大きな英語見出しが左から現れる */
.sec-head h2 b{clip-path:inset(0);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1)}
.rv.pre .sec-head h2 b,.sec-head.rv.pre h2 b{clip-path:inset(0 100% 0 0)}
/* ⑦ 写真が幕を開くように現れる */
.svc-img,.rc-card,.bz-visual{clip-path:inset(0);transition:clip-path 1.3s cubic-bezier(.7,0,.2,1)}
.svc.rv.pre .svc-img,.rc-card.rv.pre{clip-path:inset(0 0 0 100%)}
.js .bz-visual.in{opacity:1;transform:none;clip-path:inset(0 0 0 100%)}
.js.is-ready .bz-visual.in{clip-path:inset(0);transition:clip-path 1.4s cubic-bezier(.7,0,.2,1) .35s}
/* ⑧ 流れる文字の帯 */
.mq{overflow:hidden;padding-block:clamp(12px,1.6vw,20px);border-block:1px solid var(--line);background:var(--white)}
.mq-track{display:flex;align-items:center;gap:clamp(20px,3vw,48px);width:max-content;animation:mq 70s linear infinite}
.mq span{font-family:var(--f-en);font-weight:300;font-size:clamp(26px,3.4vw,52px);letter-spacing:.12em;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(42,86,168,.4);white-space:nowrap}
.mq i{font-style:normal;color:rgba(42,86,168,.35);font-size:clamp(10px,1vw,14px)}
@keyframes mq{to{transform:translateX(-50%)}}
/* ⑨ スクロールの進み具合 */
.scroll-hud{position:fixed;right:14px;top:50%;z-index:25;transform:translateY(-50%);writing-mode:vertical-rl;display:flex;align-items:center;gap:10px;color:var(--navy);mix-blend-mode:normal}
.scroll-hud i{width:1px;height:70px;background:var(--line);position:relative}
.scroll-hud b{position:absolute;inset:0;background:var(--blue);transform-origin:top;transform:scaleY(0)}
@media (max-width:1100px){.scroll-hud{display:none}}

/* ---------- 下層ページのヒーローを写真いっぱいにする版（.bz-hero.is-photo） ---------- */
.bz-hero.is-photo{min-height:min(860px,calc(100svh - var(--hd)));display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(48px,7vw,96px);isolation:isolate}
.bz-hero.is-photo>.wrap{width:100%;max-width:none;margin-inline:0;padding-inline:var(--gut)}
.bz-hero-bg{position:absolute;inset:0;z-index:-1;overflow:hidden}
.bz-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
.bz-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.88) 42%,rgba(255,255,255,.25) 68%,rgba(255,255,255,0) 100%)}
.js .bz-hero-bg img{clip-path:inset(0 0 0 100%)}
.js.is-ready .bz-hero-bg img{clip-path:inset(0);transition:clip-path 1.4s cubic-bezier(.7,0,.2,1) .1s;animation:kenburns 30s cubic-bezier(.45,0,.55,1) 1.2s infinite alternate both;transform-origin:50% 40%}
.bz-hero.is-photo .crumb{margin-bottom:clamp(24px,3vw,40px)}
.bz-hero.is-photo .bz-intro{grid-template-columns:1fr;max-width:540px;gap:24px}
@media (max-width:860px){
  .bz-hero.is-photo{min-height:0;padding-top:clamp(260px,72vw,400px)}
  .bz-hero-bg{bottom:auto;height:clamp(320px,92vw,460px)}
  .bz-hero-bg::after{background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 55%,rgba(255,255,255,.8) 82%,#fff 100%)}
}

/* 採用トップのポイント（旧: 楽しさ・成長…のボックス） */
.rc-points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 28px}
.rc-points li{display:block;padding-left:18px;position:relative;font-size:15px;letter-spacing:.08em;line-height:1.6}
.rc-points li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;background:var(--blue);transform:rotate(45deg)}
.rc-points b{font-weight:500;color:var(--blue)}
.rc-points small{font-size:11px;color:var(--ink-soft);letter-spacing:.04em;margin-left:2px}
@media (max-width:420px){.rc-points{grid-template-columns:1fr}}
.ct-line{justify-self:start;display:inline-flex;align-items:center;gap:10px;margin-top:4px;padding:10px 18px 10px 12px;background:#06c755;color:#fff!important;font-size:14px;font-weight:500;letter-spacing:.08em;transition:background .2s}
.ct-line:hover{background:#05a948}
.ct-line img{width:26px;height:26px}
