/* HANDSWORKS — style.css
   白 / 黒 / #EEE、1px罫線、小さな英字UI、カード・角丸・影・グラデーション装飾なし。
   例外：写真上の文字（ヘッダー・クレジット）の可読性のための、ごく控えめな暗いグラデーション。
   フォント：下記 --jp / --en は「指定フォントが端末にあれば使う」指定です。Webフォントは未導入（README 参照）。 */

:root{
  --ink:#111; --bk:#000; --wh:#fff; --gy:#eee; --muted:#6b6b6b;
  --rule:rgba(0,0,0,.18);
  /* FONT SWAP POINT: 正式なWebフォントを導入したら、@font-face を追加してここの先頭に名前を置く */
  --jp:"A1ゴシック","A1 Gothic","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  --en:"Helvetica Now","Helvetica Now Display","Neue Haas Grotesk Text Pro","Neue Haas Grotesk Display Pro",Helvetica,Arial,sans-serif;
  --hd:76px; --pad:7%; --hdpad:4%;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--wh);color:var(--ink);font:400 15px/1.9 var(--jp);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
img{max-width:100%}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:.2em}
button,input,textarea{font:inherit;color:inherit}
h1,h2,h3,p,ul,dl,dd,figure{margin:0;padding:0}
ul{list-style:none}
[id]{scroll-margin-top:calc(var(--hd) - 1px)}
:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.skip{position:absolute;left:8px;top:-60px;background:var(--wh);color:var(--ink);padding:8px 14px;z-index:100;font:13px var(--en)}
.skip:focus{top:8px}
.en{font-family:var(--en)}

/* ---------- Header ---------- */
.hd{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;height:var(--hd);padding:0 var(--hdpad);padding-left:max(var(--hdpad),env(safe-area-inset-left));padding-right:max(var(--hdpad),env(safe-area-inset-right));background:var(--wh);color:var(--ink);border-bottom:1px solid var(--rule)}
.logo{display:block;flex:0 0 auto;line-height:0}
.logo:hover{text-decoration:none}
.logo__mark{display:block;width:clamp(120px,12vw,168px);aspect-ratio:1011/179;background:currentColor;
  -webkit-mask:url(/assets/img/logo.png) center/contain no-repeat;mask:url(/assets/img/logo.png) center/contain no-repeat}
.nav{display:flex;gap:clamp(18px,2.4vw,32px);font:400 12px/1 var(--en);letter-spacing:.08em}
.nav a{padding:10px 0}

/* TOP: 写真の上に重ねる透明ヘッダー（白文字）。画像列を過ぎたら白地・黒文字に切り替え */
.is-top .hd{position:absolute;left:0;right:0;top:0}
.js .is-top .hd{position:fixed}
.is-top .hd.is-photo{background:transparent;color:var(--wh);border-bottom-color:transparent}
.is-top .hd.is-photo::before{content:"";position:absolute;left:0;right:0;top:0;height:calc(var(--hd) + 24px);background:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,0));z-index:-1;pointer-events:none}
.is-top .hd.is-photo .nav,.is-top .hd.is-photo .logo__mark{filter:drop-shadow(0 0 10px rgba(0,0,0,.35))}

/* ---------- 画像列（FV + プロダクト8枚） ---------- */
.stack{line-height:0}
.vis{position:relative;display:block;line-height:0}
.vis__img{display:block}
.vis__img:hover{text-decoration:none}
.vis img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
/* FV：最初の画面いっぱいに写真を見せる。縦に長い画面でも横は半分以上残す（中央のHANDSWORKSの文字が欠けない範囲） */
.vis--fv img{height:100vh;height:min(100svh,112vw);aspect-ratio:auto;object-position:50% 50%}
.vis::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(to top,rgba(0,0,0,.42),rgba(0,0,0,0));pointer-events:none}
.vis--plain::after{display:none}
.vis__credit{position:absolute;z-index:1;right:32px;bottom:28px;max-width:min(560px,72%);text-align:right;color:var(--wh);font:400 12px/1.55 var(--en);letter-spacing:.01em;text-shadow:0 0 8px rgba(0,0,0,.45)}
.vis__credit:hover{text-decoration:none}
.cr{display:block;overflow-wrap:anywhere}
.cr--name{font-weight:500}

/* ---------- Sections ---------- */
.sec{padding:96px var(--pad);border-top:1px solid var(--rule)}
.stack + .sec{border-top:0}
.split{display:grid;grid-template-columns:28% 1fr;column-gap:7%}
h1,h2{font:500 39px/1.2 var(--en);letter-spacing:-.005em}
.split__h h2,.split__h h1{padding-top:.1em}
.lead{font-size:16px;line-height:2;word-break:auto-phrase;text-wrap:pretty}
.nw{white-space:nowrap}
.sec .lead + *{margin-top:36px}
.tl{display:inline-block;font:400 15px/1.4 var(--en);letter-spacing:.04em;padding:6px 0;border-bottom:1px solid currentColor}
.tl:hover{text-decoration:none;opacity:.6}
.tl--btn{background:none;border:0;border-bottom:1px solid currentColor;border-radius:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.tl--btn[disabled]{opacity:.4;cursor:not-allowed}
.tl--small{font-size:12px}

.biz{border-bottom:1px solid var(--rule)}
.biz li{display:grid;grid-template-columns:44% 1fr;gap:24px;padding:24px 0;border-top:1px solid var(--rule)}
.biz h3{font:500 20px/1.4 var(--en)}
.biz p{font-size:14px}

.co{width:100%;border-collapse:collapse;font-size:14px}
.co th,.co td{text-align:left;vertical-align:top;padding:15px 0;border-bottom:1px solid var(--rule)}
.co tr:first-child th,.co tr:first-child td{border-top:1px solid var(--rule)}
.co th{width:28%;font-weight:400;color:var(--muted)}
.co td{overflow-wrap:anywhere}

/* ---------- Form ---------- */
.cf,.gate{max-width:560px}
.field{margin-bottom:26px}
.field label{display:block;font:400 13px/1.4 var(--en);letter-spacing:.04em}
.req{font:400 11px var(--jp);color:var(--muted);margin-left:.6em}
input[type=text],input[type=email],input[type=password],textarea{display:block;width:100%;margin-top:8px;padding:12px 2px;font-size:16px;line-height:1.6;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;-webkit-appearance:none;appearance:none}
textarea{min-height:150px;resize:vertical}
input:focus-visible,textarea:focus-visible{outline:0;background:var(--gy)}
input[aria-invalid=true],textarea[aria-invalid=true]{border-bottom-width:2px}
input:disabled{opacity:.5}
.err{min-height:0;font-size:12px;line-height:1.7;margin-top:6px;color:#a3141a}
.err:empty{display:none}
.note{font-size:12px;color:var(--muted);margin-bottom:22px}
.status{margin-top:20px;font-size:13px;min-height:1.9em}
.status[data-state=ok]{color:var(--ink)}
.status[data-state=ng]{color:#a3141a}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- サブページ ---------- */
.pg{padding:88px var(--pad) 96px}
.pg h1{margin-bottom:28px}
.pg .lead{margin-bottom:36px}
.pg--gate{min-height:calc(100vh - var(--hd));min-height:calc(100svh - var(--hd));align-items:start}
.pg--gate h1{margin:0}
.back{margin-top:44px;display:flex;gap:36px;flex-wrap:wrap;font:400 13px/1.6 var(--en);letter-spacing:.04em}
.back--top{margin:0 0 28px}
.pg__head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:48px}
.pg__head h1{margin:0}
.pjs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 40px}
.pj__img{display:block;line-height:0;background:var(--gy)}
.pj__img:hover{text-decoration:none;opacity:.9}
.pj img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.pj__t{font:500 20px/1.4 var(--en);margin-top:16px}
.pj__m{font:400 12px/1.6 var(--en);color:var(--muted);margin-top:4px}
.pj__m span + span::before{content:" / "}
.pj__c{font:400 12px/1.7 var(--en);color:var(--muted);margin-top:6px}
.pj__d{font-size:14px;margin-top:10px}

.pg--detail{padding-bottom:40px}
.pg--detail h1{margin-bottom:0}
.pg--detail2{padding-top:44px;padding-bottom:96px}
.vis--plain img{aspect-ratio:16/9}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;margin-bottom:36px;border-top:1px solid var(--rule);padding-top:20px}
.facts dt{font:400 11px/1.6 var(--en);color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.facts dd{font-size:14px}
.cl{font:400 13px/1.8 var(--en);max-width:640px}
.dt__blk{margin-top:44px;max-width:720px}
.dt__blk h2{font:500 20px/1.4 var(--en);margin-bottom:12px}
.gal{display:grid;gap:16px;margin-top:44px}
.gal img{display:block;width:100%;height:auto}

/* ---------- Footer ---------- */
.ft{background:var(--bk);color:var(--wh)}
.ft__in{display:grid;grid-template-columns:1fr auto;gap:28px;padding:56px var(--pad);font-size:12px;line-height:1.9}
.ft__brand{display:inline-block;font:500 22px/1.3 var(--en);letter-spacing:.04em;margin-bottom:14px}
.ft a:hover{opacity:.7}
.ft__links{display:flex;gap:20px;margin-top:10px}
.ft__links:empty{display:none}
.ft__copy{align-self:end;font:400 11px var(--en)}

/* ---------- Tablet / SP ---------- */
@media (max-width:900px){
  .split{grid-template-columns:1fr;row-gap:28px}
  .sec{padding:72px var(--pad)}
  .pg{padding:64px var(--pad) 80px}
}
@media (max-width:700px){
  :root{--hd:60px;--pad:24px;--hdpad:16px}
  body{font-size:14px}
  h1,h2{font-size:30px}
  .nav{gap:clamp(8px,2.8vw,14px);font-size:10px;letter-spacing:.03em}
  .logo__mark{width:clamp(88px,26vw,110px)}
  .vis img{aspect-ratio:1229/1536}
  .vis--fv img{height:auto;aspect-ratio:1229/1536;object-position:50% 50%}
  .vis--plain img{aspect-ratio:1229/1536}
  .vis__credit{right:16px;bottom:18px;max-width:calc(100% - 32px);font-size:10px;line-height:1.5}
  .lead{font-size:15px}
  .biz li{grid-template-columns:1fr;gap:6px;padding:20px 0}
  .co th{width:26%;font-size:12px}
  .co td{font-size:13px}
  .pjs{grid-template-columns:1fr;gap:48px}
  .pj img{aspect-ratio:1229/1536}
  .pg__head{flex-wrap:wrap;margin-bottom:36px}
  .ft__in{grid-template-columns:1fr;padding:44px var(--pad)}
  .pg--detail2{padding-top:32px}
}
@media (max-width:360px){
  :root{--hdpad:12px}
  .nav{font-size:9.5px}
}
@media (min-width:1500px){
  .pjs{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media print{.hd{position:static!important}.vis::after{display:none}}
