/* Ozawa Original - Shared Layout CSS
 * front-page.php のインライン<style>を全コピー + ドロップダウン制御を追補。
 * page.php / index.php / 404.php 等のフォールバックテンプレで使用。
 * 他ページでは body inline <style> が同等の規則を持つので競合せず動作。
 */

:root{
  --bg:#f4f2ec; --bg2:#ecebe4; --bg3:#e6e4dc;
  --paper:#fbfaf6;
  --ink:#0c0d0f; --ink2:#1f2024; --gray:#65656b; --gray2:#a4a4a8;
  --line:#0c0d0f; --line-soft:#d8d6cf;
  --blue:oklch(0.36 0.16 256); --blue-light:oklch(0.52 0.18 256);
  --red:oklch(0.55 0.22 28);
  --sans:'Helvetica Neue','Hiragino Kaku Gothic ProN','Yu Gothic',Helvetica,Arial,sans-serif;
  --jp:'Hiragino Kaku Gothic ProN','Yu Gothic','Noto Sans JP',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --serif:'Newsreader','Cormorant Garamond','EB Garamond',Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.4}
body{width:100%;max-width:100%;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.mono{font-family:var(--mono);font-feature-settings:'tnum';letter-spacing:.02em}
.jp{font-family:var(--jp)}
.uc{text-transform:uppercase;letter-spacing:.08em}

/* placeholder photo */
.ph{position:relative;background:#1a1a1f;overflow:hidden;display:flex;align-items:flex-end;padding:14px;color:#cdd5e0}
.ph::before{content:"";position:absolute;inset:0;background-image:
  linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px);
  background-size:32px 32px}
.ph::after{content:"";position:absolute;inset:0;background:
  radial-gradient(120% 80% at 30% 10%, rgba(40,70,140,.30), transparent 60%),
  radial-gradient(60% 60% at 80% 90%, rgba(20,40,80,.45), transparent 60%);mix-blend-mode:screen}
.ph.l{background:#e6e4dc;color:#5a5a5e}
.ph.l::before{background-image:linear-gradient(rgba(0,0,0,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.05) 1px,transparent 1px);background-size:24px 24px}
.ph.l::after{background:radial-gradient(120% 80% at 40% 20%,rgba(60,90,150,.10),transparent 60%);mix-blend-mode:multiply}
.ph .meta{position:relative;z-index:1;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.ph .meta b{font-weight:500}
.crops{position:absolute;inset:0;pointer-events:none}
.crops i{position:absolute;width:14px;height:14px;border:1px solid rgba(255,255,255,.4)}
.ph.l .crops i{border-color:rgba(0,0,0,.25)}
.crops i:nth-child(1){top:8px;left:8px;border-right:0;border-bottom:0}
.crops i:nth-child(2){top:8px;right:8px;border-left:0;border-bottom:0}
.crops i:nth-child(3){bottom:8px;left:8px;border-right:0;border-top:0}
.crops i:nth-child(4){bottom:8px;right:8px;border-left:0;border-top:0}

/* ─────────────── NAV ─────────────── */
.banner{height:32px;background:var(--ink);color:var(--bg);display:flex;align-items:center;padding:0 32px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;justify-content:space-between}
.banner .l{display:flex;gap:20px;align-items:center}
.banner .r{display:flex;gap:20px;color:var(--gray2)}
.banner .blue{color:#9bb2ff}

.nav{background:var(--bg);border-bottom:1px solid var(--ink);position:sticky;top:0;z-index:10;height:80px;display:flex;align-items:center;padding:0 32px;gap:40px}
.nav .logo{display:flex;align-items:center}
.nav .logo img{height:34px;width:auto;display:block}
.nav .links{display:flex;gap:28px;flex:1;justify-content:center}
.nav .links a{font-family:var(--jp);font-size:15px;letter-spacing:0.02em;color:var(--ink);position:relative;padding:8px 0;font-weight:500}
.nav .links a.active::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue)}
.nav .right{display:flex;align-items:center;gap:18px}
.nav .tel{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.2}
.nav .tel small{font-family:var(--mono);font-size:9px;color:var(--gray);letter-spacing:.18em;text-transform:uppercase}
.nav .tel b{font-family:var(--sans);font-size:20px;font-weight:600;letter-spacing:-0.01em}
.nav .cta{background:var(--ink);color:var(--bg);font-family:var(--jp);font-size:13px;padding:14px 20px;display:inline-flex;align-items:center;gap:10px;font-weight:600;letter-spacing:0.02em}
.nav .cta i{font-style:normal;color:#9bb2ff}

/* ─────────────── HERO ─────────────── */
.hero{position:relative;padding:48px 32px 0;background:var(--bg);overflow:hidden}
.hero .grid{display:grid;grid-template-columns:1.05fr 1fr;gap:32px;align-items:start}
.hero .left{position:relative;padding-top:0}
.hero .issuetag{display:inline-flex;align-items:center;gap:14px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin-bottom:32px}
.hero .issuetag b{font-weight:500}
.hero .issuetag .sq{width:8px;height:8px;background:var(--blue)}
.hero .issuetag span{color:var(--gray)}
.hero h1{font-size:208px;font-weight:900;letter-spacing:-0.06em;line-height:0.84;color:var(--ink);font-family:var(--sans)}
.hero h1 .strike{position:relative;display:inline-block}
.hero h1 .blue{color:var(--blue);font-style:italic;font-weight:700}
.hero h1 .out{-webkit-text-stroke:2px var(--ink);color:transparent;font-weight:700}
.hero .underrule{height:8px;background:var(--ink);margin:32px 0 24px}
.hero .lede{display:grid;grid-template-columns:1fr 1.4fr;gap:32px;align-items:start}
.hero .lede .num{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);line-height:1.7}
.hero .lede .num b{display:block;color:var(--ink);font-weight:500;font-size:11px}
.hero .lede p{font-family:var(--jp);font-size:18px;line-height:1.7;color:var(--ink);font-weight:400;letter-spacing:0.01em}
.hero .lede p b{font-weight:700;background:linear-gradient(transparent 65%,rgba(60,100,200,.18) 65%)}
.hero .actions{margin-top:48px;display:flex;gap:16px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:12px;height:60px;padding:0 28px;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:0;cursor:pointer;transition:.2s;background:transparent;border:1.5px solid var(--ink);color:var(--ink)}
.btn .ar{font-size:16px}
.btn.primary{background:var(--ink);color:var(--bg)}
.btn.primary .ar{color:#9bb2ff}
.btn:hover{transform:translateY(-2px)}
.hero .right{position:relative}
.hero .feature{position:relative;height:760px;background:#0e0f12;overflow:hidden}
.hero .feature::before{content:"";position:absolute;inset:0;background-image:
  linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px}
.hero .feature::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 40% 30%,rgba(60,90,180,.32),transparent 60%),radial-gradient(60% 60% at 80% 90%,rgba(30,50,120,.50),transparent 60%);mix-blend-mode:screen}
.hero .feature .crops i{border-color:rgba(255,255,255,.4)}
.hero .feature .label{position:absolute;top:18px;left:18px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#bcc4d1}
.hero .feature .label-r{position:absolute;top:18px;right:18px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#bcc4d1;text-align:right;line-height:1.6}
.hero .feature .label-b{position:absolute;bottom:18px;left:18px;right:18px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#9aa3b4;display:flex;justify-content:space-between}
.hero .feature .pull{position:absolute;left:32px;right:32px;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:64px;font-weight:700;letter-spacing:-0.04em;color:#fff;line-height:0.92}
.hero .feature .pull em{font-style:italic;font-weight:300;color:#9bb2ff}
.hero .stickers{position:absolute;left:-12px;top:32px;width:0}
.hero .stickers .sticker{padding:8px 12px;background:var(--blue);color:#fff;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;width:max-content;margin-bottom:6px;transform:rotate(-2deg)}
.hero .stickers .sticker.b{background:var(--ink)}
.hero .marquee{margin-top:48px;background:var(--ink);color:var(--bg);padding:18px 32px;display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;gap:32px;overflow:hidden;white-space:nowrap}
.hero .marquee b{color:#9bb2ff;font-weight:500}

/* ─────────────── MASTHEAD STRIP (numbers as ribbon) ─────────────── */
.mast{background:var(--bg);padding:80px 32px 0;border-top:1px solid var(--ink)}
.mast .row{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:32px;padding:32px 0;border-bottom:1px solid var(--line-soft)}
.mast .label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray)}
.mast .h{display:flex;flex-direction:column;justify-content:space-between}
.mast .h .stamp{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--gray);text-transform:uppercase}
.mast .h h3{font-family:var(--sans);font-size:46px;font-weight:700;letter-spacing:-0.03em;line-height:1;margin-top:16px}
.mast .h h3 .ja{display:block;font-family:var(--jp);font-size:14px;color:var(--gray);margin-top:8px;font-weight:400;letter-spacing:0}
.mast .cell{padding:0 16px;border-left:1px solid var(--line-soft)}
.mast .cell .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--gray);text-transform:uppercase;margin-bottom:14px}
.mast .cell .v{font-size:78px;font-weight:700;letter-spacing:-0.05em;line-height:0.9;font-family:var(--sans)}
.mast .cell .v sup{font-size:0.3em;font-weight:500;color:var(--blue);vertical-align:0.8em;margin-left:4px}
.mast .cell .ja{font-family:var(--jp);font-size:12px;color:var(--gray);margin-top:10px}

/* ─────────────── CAPABILITIES (3 large editorial) ─────────────── */
.caps{padding:120px 32px 100px;background:var(--bg);border-top:1px solid var(--ink)}
.caps .head{display:grid;grid-template-columns:1fr 2fr;gap:32px;margin-bottom:80px}
.caps .head .num{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray)}
.caps .head h2{font-size:96px;font-weight:700;letter-spacing:-0.04em;line-height:0.92}
.caps .head h2 em{font-style:italic;font-weight:300;color:var(--blue)}
.caps .head .ja{display:block;font-family:var(--jp);font-size:18px;color:var(--gray);font-weight:400;letter-spacing:0;margin-top:16px}

.cap-row{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.cap-card{display:flex;flex-direction:column;gap:24px;border-top:2px solid var(--ink);padding-top:32px}
.cap-card .stamp{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.cap-card .stamp .badge{padding:3px 9px;background:var(--blue);color:#fff;letter-spacing:.14em}
.cap-card h3{font-size:42px;font-weight:700;letter-spacing:-0.03em;line-height:1;font-family:var(--sans)}
.cap-card h3 .ja{display:block;font-family:var(--jp);font-size:16px;color:var(--gray);margin-top:8px;font-weight:400;letter-spacing:0}
.cap-card .img{height:280px;position:relative;background:#1a1a1f}
.cap-card .desc{font-family:var(--jp);font-size:14px;line-height:1.85;color:var(--ink2);font-weight:400}
.cap-card .specs{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;border-top:1px solid var(--line-soft);padding-top:16px}
.cap-card .specs div{padding:8px 0;border-bottom:1px solid var(--line-soft);font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;display:flex;justify-content:space-between;color:var(--ink)}
.cap-card .specs div b{color:var(--gray);font-weight:400}
.cap-card .more{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;padding-top:8px}
.cap-card .more .ar{font-size:18px;color:var(--blue)}

/* ─────────────── PULL QUOTE / DIFFERENTIATOR ─────────────── */
.pullq{padding:120px 32px;background:var(--ink);color:var(--bg);position:relative;overflow:hidden}
.pullq::before{content:"❝";position:absolute;left:32px;top:0;font-size:280px;line-height:0.9;font-family:Georgia,serif;color:var(--blue);opacity:.4}
.pullq .label{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#9bb2ff;margin-bottom:32px}
.pullq h2{font-size:96px;font-weight:700;letter-spacing:-0.04em;line-height:0.96;font-family:var(--sans);padding-left:120px;max-width:1100px}
.pullq h2 em{font-style:italic;font-weight:300;color:#9bb2ff}
.pullq .src{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray2);margin-top:48px;padding-left:120px;display:flex;gap:24px;align-items:center}
.pullq .src::before{content:"";width:48px;height:1px;background:var(--gray2);display:inline-block}

/* ─────────────── LONG/LARGE FEATURE (editorial layout) ─────────────── */
.feat{padding:120px 32px;background:var(--bg);border-top:1px solid var(--ink)}
.feat .head{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:64px;align-items:end}
.feat .head .stamp{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray)}
.feat .head h2{font-size:108px;font-weight:700;letter-spacing:-0.05em;line-height:0.88;font-family:var(--sans)}
.feat .head h2 .ja{display:block;font-family:var(--jp);font-size:18px;color:var(--gray);font-weight:400;letter-spacing:0;margin-top:16px}
.feat .grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:stretch}
.feat .left{position:relative;background:#0a1224;overflow:hidden;height:600px;border:1px solid #1a2a4a}
.feat .left::before{content:"";position:absolute;inset:0;background-image:
  linear-gradient(rgba(155,178,255,.10) 1px,transparent 1px),
  linear-gradient(90deg,rgba(155,178,255,.10) 1px,transparent 1px);background-size:60px 60px;background-position:30px 30px}
.feat .left::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 50% 50%,rgba(40,80,180,.10),transparent 70%);pointer-events:none}
.feat .left .dwg{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.feat .left .topmeta{position:absolute;top:20px;left:24px;right:24px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#9bb2ff;display:flex;justify-content:space-between;z-index:2}
.feat .left .botmeta{position:absolute;bottom:20px;left:24px;right:24px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#7d92c8;display:flex;justify-content:space-between;z-index:2}
.feat .right{display:flex;flex-direction:column;gap:32px}
.feat .right .desc{font-family:var(--jp);font-size:15px;line-height:1.85;color:var(--ink2);font-weight:400}
.feat .right .stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 40px;border-top:1px solid var(--line-soft);padding-top:32px}
.feat .right .stat-grid div{padding:0;border:0}
.feat .right .stat-grid div:nth-child(even),.feat .right .stat-grid div:nth-child(-n+2){border:0}
.feat .right .stat-grid .k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);margin-bottom:12px}
.feat .right .stat-grid .v{font-size:44px;font-weight:700;letter-spacing:-0.02em;line-height:1;font-family:var(--sans);display:flex;align-items:baseline;gap:6px}
.feat .right .stat-grid .v .u{font-size:13px;font-weight:400;color:var(--gray);margin-left:2px}
.feat .right .stat-grid .ja{font-family:var(--jp);font-size:11px;color:var(--gray);margin-top:8px}
.feat .right .actions{display:flex;gap:12px;margin-top:auto}

/* ─────────────── WORKS — editorial grid ─────────────── */
.works{background:var(--bg);padding:120px 32px;border-top:1px solid var(--ink)}
.works .head{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:64px;align-items:end}
.works .head .stamp{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray)}
.works .head h2{font-size:96px;font-weight:700;letter-spacing:-0.04em;line-height:0.92;font-family:var(--sans)}
.works .head h2 .ja{display:block;font-family:var(--jp);font-size:18px;color:var(--gray);font-weight:400;letter-spacing:0;margin-top:14px}
.works .head .meta{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);text-align:right;line-height:1.8}
.works .layout{display:grid;grid-template-columns:1.5fr 1fr 1fr;grid-template-rows:repeat(2,260px);gap:24px}
.work{display:flex;flex-direction:column;gap:12px;cursor:pointer}
.work .img{flex:1;background:#0e0f12;position:relative;overflow:hidden}
.work .img::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:24px 24px}
.work .img::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 50% 50%,rgba(40,70,140,.20),transparent 60%);mix-blend-mode:screen}
.work .img .lbl{position:absolute;left:12px;top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#aab1bb}
.work .img .lbl-r{position:absolute;right:12px;top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#aab1bb}
.work .meta-row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray)}
.work h5{font-family:var(--jp);font-size:15px;font-weight:600;line-height:1.4;letter-spacing:0;color:var(--ink)}
.work .tags{display:flex;flex-wrap:wrap;gap:6px}
.work .tag{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:3px 7px;background:transparent;border:1px solid var(--ink);color:var(--ink)}
.work .tag.b{background:var(--blue);border-color:var(--blue);color:#fff}
.work.big{grid-row:span 2;grid-column:span 1}
.work.big h5{font-size:24px;font-weight:700;letter-spacing:-0.02em}
.works .foot{margin-top:48px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line-soft);padding-top:24px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray)}
.works .foot a{color:var(--ink);font-weight:600}

/* ─────────────── INDUSTRIES & MATERIALS ─────────────── */
.sec{background:var(--bg);padding:120px 32px;border-top:1px solid var(--ink)}
.sec .head{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:64px;align-items:end}
.sec .head .stamp{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray)}
.sec .head h2{font-size:96px;font-weight:700;letter-spacing:-0.04em;line-height:0.92;font-family:var(--sans)}
.sec .head h2 em{font-style:italic;font-weight:300;color:var(--blue)}
.sec .head h2 .ja{display:block;font-family:var(--jp);font-size:18px;color:var(--gray);font-weight:400;letter-spacing:0;margin-top:14px}
.sec .grid{display:grid;grid-template-columns:1.05fr 1fr;gap:48px}
.industries{border-top:2px solid var(--ink)}
.industries h3{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--ink);display:flex;justify-content:space-between}
.industries ul{list-style:none}
.industries li{display:grid;grid-template-columns:36px 1fr 1fr 24px;gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line-soft);font-family:var(--jp);font-size:16px;font-weight:500}
.industries .n{font-family:var(--mono);font-size:11px;color:var(--gray);font-weight:400}
.industries .ex{font-family:var(--jp);font-size:12px;color:var(--gray);font-weight:400}
.industries .c{font-family:var(--mono);font-size:11px;color:var(--blue);text-align:right;letter-spacing:.1em;font-weight:500}

.materials{border-top:2px solid var(--ink)}
.materials h3{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);padding:14px 0;border-bottom:1px solid var(--ink);display:flex;justify-content:space-between}
.materials .mats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft)}
.mat{background:var(--bg);padding:18px;min-height:140px;display:flex;flex-direction:column;gap:6px;position:relative}
.mat.h{background:var(--ink);color:#fff}
.mat.h .sym{color:#9bb2ff}
.mat .sym{font-family:var(--mono);font-size:36px;font-weight:600;letter-spacing:-0.03em;line-height:1;color:var(--ink)}
.mat .name{font-family:var(--jp);font-size:14px;font-weight:600;color:inherit}
.mat .name small{display:block;font-family:var(--mono);font-size:9px;color:var(--gray);letter-spacing:.1em;text-transform:uppercase;margin-top:2px;font-weight:400}
.mat.h .name small{color:#9bb2ff}
.mat .ct{margin-top:auto;font-family:var(--mono);font-size:10px;color:var(--gray);letter-spacing:.06em;display:flex;justify-content:space-between}
.mat.h .ct{color:#9bb2ff}
.mat .ct b{color:var(--ink);font-weight:500}
.mat.h .ct b{color:#fff}

/* ─────────────── EQUIPMENT — magazine list ─────────────── */
.equip{background:var(--bg);padding:120px 32px;border-top:1px solid var(--ink)}
.equip .head{display:grid;grid-template-columns:1fr;gap:24px;margin-bottom:64px;align-items:start;max-width:1600px;margin-left:auto;margin-right:auto}
.equip .head .stamp{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray)}
.equip .head h2{font-size:96px;font-weight:700;letter-spacing:-0.04em;line-height:0.92;font-family:var(--sans)}
.equip .head h2 .ja{display:block;font-family:var(--jp);font-size:18px;color:var(--gray);font-weight:400;letter-spacing:0;margin-top:14px}
.equip .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.eq{display:flex;flex-direction:column;gap:16px;border-top:2px solid var(--ink);padding-top:24px}
.eq .head{display:flex;justify-content:space-between;align-items:flex-start;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);margin:0 !important;display:flex !important;grid-template-columns:none !important}
.eq .head .brand{color:var(--ink);font-weight:500}
.eq .img{height:200px;background:#0e0f12;position:relative;overflow:hidden}
.eq .img::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:24px 24px}
.eq .img::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 50%,rgba(40,70,140,.20),transparent 60%);mix-blend-mode:screen}
.eq .name{font-size:28px;font-weight:700;letter-spacing:-0.02em;font-family:var(--sans);line-height:1.05}
.eq .name small{display:block;font-family:var(--mono);font-size:11px;color:var(--gray);letter-spacing:.1em;text-transform:uppercase;font-weight:400;margin-top:6px}
.eq .specs{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--gray);line-height:1.9;padding-top:8px;border-top:1px solid var(--line-soft);text-transform:uppercase}
.eq .specs b{color:var(--ink);font-weight:500}

/* ─────────────── MESSAGE ─────────────── */
.msg{background:var(--bg);padding:120px 32px;border-top:1px solid var(--ink)}
.msg .grid{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.msg .photo{height:620px;background:#0e0f12;position:relative}
.msg .photo .crops i{border-color:rgba(255,255,255,.4)}
.msg .photo::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:32px 32px}
.msg .photo::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 50% at 60% 40%,rgba(40,70,140,.22),transparent 60%);mix-blend-mode:screen}
.msg .photo .lbl{position:absolute;left:18px;top:18px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:#aab1bb;text-transform:uppercase}
.msg .photo .lbl-b{position:absolute;left:18px;bottom:18px;right:18px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:#aab1bb;text-transform:uppercase;display:flex;justify-content:space-between}
.msg .text .stamp{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);margin-bottom:32px}
.msg .text h2{font-size:52px;font-weight:700;letter-spacing:-0.03em;line-height:1.1;font-family:var(--jp)}
.msg .text h2 em{font-style:normal;color:var(--blue);font-weight:700}
.msg .text .body{margin-top:32px;font-family:var(--jp);font-size:16px;line-height:1.95;color:var(--ink2);font-weight:400}
.msg .text .sign{margin-top:48px;display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid var(--line-soft);padding-top:24px}
.msg .text .sign .who{font-family:var(--jp);font-size:18px;font-weight:600}
.msg .text .sign .who small{display:block;font-family:var(--mono);font-size:10px;color:var(--gray);letter-spacing:.14em;text-transform:uppercase;margin-top:6px;font-weight:400}
.msg .text .sign a{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;font-weight:500}
.msg .text .sign a .ar{color:var(--blue)}

/* ─────────────── DISPATCH (news + partners) ─────────────── */
.dispatch{background:var(--bg);padding:96px 32px;border-top:1px solid var(--ink)}
.dispatch .grid{display:grid;grid-template-columns:1.5fr 1fr;gap:64px}
.dispatch h3{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);padding:14px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);display:flex;justify-content:space-between;margin-bottom:0}
.dispatch h3 small{color:var(--gray);font-weight:400}
.news{list-style:none}
.news li{display:grid;grid-template-columns:100px 110px 1fr 24px;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line-soft)}
.news .d{font-family:var(--mono);font-size:12px;color:var(--gray);letter-spacing:.06em}
.news .c{font-family:var(--mono);font-size:10px;color:var(--ink);border:1px solid var(--ink);padding:3px 8px;text-align:center;letter-spacing:.14em;text-transform:uppercase}
.news .c.b{background:var(--blue);border-color:var(--blue);color:#fff}
.news .t{font-family:var(--jp);font-size:16px;font-weight:600;color:var(--ink)}
.news .a{font-family:var(--mono);color:var(--gray)}
.partners ul{list-style:none}
.partners li{font-family:var(--sans);font-size:24px;font-weight:700;letter-spacing:-0.01em;padding:16px 0;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:baseline}
.partners li small{font-family:var(--mono);font-size:10px;color:var(--gray);letter-spacing:.14em;text-transform:uppercase;font-weight:400}

/* ─────────────── CTA ─────────────── */
.cta{padding:140px 32px;background:var(--ink);color:var(--bg);position:relative;overflow:hidden;border-top:1px solid var(--ink)}
.cta::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:64px 64px}
.cta::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 70% 50%,rgba(60,90,200,.30),transparent 70%)}
.cta .wrap{position:relative;z-index:1}
.cta .stamp{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#9bb2ff;margin-bottom:32px}
.cta h2{font-size:200px;font-weight:900;letter-spacing:-0.055em;line-height:0.86;font-family:var(--sans)}
.cta h2 em{font-style:italic;font-weight:300;color:#9bb2ff}
.cta .lede{display:grid;grid-template-columns:2fr 1fr;gap:48px;margin-top:64px;align-items:end}
.cta .lede p{font-family:var(--jp);font-size:20px;line-height:1.7;color:var(--bg);max-width:680px;font-weight:300}
.cta .lede .telblock{text-align:right}
.cta .lede .telblock .l{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#9bb2ff}
.cta .lede .telblock .n{font-size:50px;font-weight:700;letter-spacing:-0.02em;font-family:var(--sans);margin-top:8px}
.cta .lede .telblock .h{font-family:var(--mono);font-size:11px;color:var(--gray2);margin-top:6px;letter-spacing:.06em;text-transform:uppercase}
.cta .actions{margin-top:64px;display:flex;gap:16px}
.cta .actions .btn{height:72px;padding:0 32px;font-size:14px;border-color:var(--bg);color:var(--bg)}
.cta .actions .btn.primary{background:var(--bg);color:var(--ink)}
.cta .actions .btn.primary .ar{color:var(--blue)}

/* ─────────────── FOOTER ─────────────── */
.foot{background:var(--ink);color:var(--gray2);padding:64px 32px 32px;border-top:1px solid #2a2c30}
.foot .top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px;padding-bottom:48px;border-bottom:1px solid #2a2c30}
.foot .brand .name{font-family:var(--jp);font-size:28px;font-weight:700;color:var(--bg)}
.foot .brand .name small{display:block;font-family:var(--mono);font-size:11px;color:var(--gray2);letter-spacing:.14em;text-transform:uppercase;font-weight:400;margin-top:6px}
.foot .brand .addr{margin-top:24px;font-family:var(--jp);font-size:13px;line-height:1.8;color:var(--bg)}
.foot .brand .meta{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--gray2);margin-top:18px;text-transform:uppercase;line-height:1.8}
.foot .col h6{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:#9bb2ff;text-transform:uppercase;margin-bottom:20px}
.foot .col a{display:flex;justify-content:space-between;font-family:var(--jp);font-size:14px;padding:8px 0;color:var(--bg)}
.foot .col a small{font-family:var(--mono);color:var(--gray2);font-size:10px;letter-spacing:.1em}
.foot .bottom{margin-top:24px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#6c6f74}

/* ─────────────── PHOTO INSERTION ─────────────── */
[data-photo]{background-image:var(--photo)!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;background-color:#1a1a1f}
[data-photo]::before{opacity:.12!important}
[data-photo]::after{opacity:.35!important;mix-blend-mode:overlay!important}
[data-photo] .crops i{border-color:rgba(255,255,255,.55)!important}
[data-photo].light{background-color:#e6e4dc!important}
[data-photo].light::before{opacity:.08!important}
[data-photo].light::after{display:none!important}
[data-photo].contain{background-size:contain!important;background-color:#0a1224!important}
[data-photo].contain::before,[data-photo].contain::after{display:none!important}

/* ─────────────── JP-PRIMARY TYPOGRAPHY OVERRIDE ─────────────── */
.hero h1{font-family:var(--jp);font-size:96px;letter-spacing:-0.01em;line-height:1.2;font-weight:900;color:var(--ink)}
.hero h1 .blue{color:var(--blue);font-style:normal;font-weight:700}
.hero h1 .out{-webkit-text-stroke:2px var(--ink);color:transparent;font-weight:700;font-style:normal}
.hero .lede p{font-family:var(--jp);font-size:17px;line-height:1.75}
.mast .h h3{font-family:var(--jp);font-size:38px;font-weight:700;letter-spacing:-0.01em;line-height:1.2}
.mast .h h3 .ja{font-family:var(--mono);font-size:11px;color:var(--gray);margin-top:14px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;display:block}
.caps .head h2{font-family:var(--jp);font-size:72px;font-weight:700;letter-spacing:-0.005em;line-height:1.3}
.caps .head h2 em{font-style:normal;color:var(--blue);font-weight:700}
.caps .head .ja{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);font-weight:500;margin-top:16px;display:block}
.cap-card h3{font-family:var(--jp);font-size:30px;font-weight:700;letter-spacing:-0.005em;line-height:1.3}
.cap-card h3 .ja{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);margin-top:8px;font-weight:500}
.pullq h2{font-family:var(--jp);font-size:80px;font-weight:700;letter-spacing:-0.005em;line-height:1.35}
.pullq h2 em{font-style:normal;color:#9bb2ff;font-weight:700}
.feat .head h2{font-family:var(--jp);font-size:80px;font-weight:700;letter-spacing:-0.005em;line-height:1.3}
.feat .head h2 .ja{font-family:var(--mono);font-size:11px;color:var(--gray);font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin-top:16px;display:block}
.works .head h2{font-family:var(--jp);font-size:72px;font-weight:700;letter-spacing:-0.005em;line-height:1.3}
.works .head h2 em{font-style:normal;color:var(--blue);font-weight:700}
.works .head h2 .ja{font-family:var(--mono);font-size:11px;color:var(--gray);font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin-top:14px;display:block}
.sec .head h2{font-family:var(--jp);font-size:72px;font-weight:700;letter-spacing:-0.005em;line-height:1.3}
.sec .head h2 em{font-style:normal;color:var(--blue);font-weight:700}
.sec .head h2 .ja{font-family:var(--mono);font-size:11px;color:var(--gray);font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin-top:14px;display:block}
.equip .head h2{font-family:var(--jp);font-size:72px;font-weight:700;letter-spacing:-0.005em;line-height:1.3}
.equip .head h2 em{font-style:normal;color:var(--blue);font-weight:700}
.equip .head h2 .ja{font-family:var(--mono);font-size:11px;color:var(--gray);font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin-top:14px;display:block}
.msg .text h2 em{font-style:normal;color:var(--blue);font-weight:700}
.cta h2{font-family:var(--jp);font-size:112px;font-weight:900;letter-spacing:-0.01em;line-height:1.2}
.cta h2 em{font-style:normal;color:#9bb2ff;font-weight:700}

/* ─────────────── REVISED SIZES + JP REFINEMENTS (2026.05) ─────────────── */
.hero{padding-top:40px}
.hero h1{font-size:76px;line-height:1.25;font-weight:900}
.hero .feature{height:680px}
.hero .feature .pull{font-size:48px;line-height:1.05;letter-spacing:-0.02em}
.hero .feature .pull em{color:#9bb2ff;font-style:normal;font-weight:300}
.hero .lede p{font-size:16px;line-height:1.85}
.hero .lede .num{font-family:var(--jp);font-size:12px;line-height:1.9;letter-spacing:0.06em;color:var(--gray);text-transform:none}
.hero .lede .num b{font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.18em;color:var(--ink);text-transform:uppercase}
.hero .issuetag{margin-bottom:24px}
.hero .marquee{padding:16px 32px;font-size:12px}
.mast{padding-top:64px}
.mast .h h3{font-size:30px;line-height:1.3}
.mast .h h3 .ja{font-family:var(--jp);font-size:12px;color:var(--gray);letter-spacing:0;text-transform:none;font-weight:400;margin-top:10px}
.mast .cell .v{font-size:60px}
.mast .cell .ja{font-size:13px}
.caps{padding:96px 32px 80px}
.caps .head h2{font-size:56px;line-height:1.3;font-weight:700}
.caps .head .ja{font-family:var(--jp);font-size:14px;color:var(--gray);letter-spacing:0;text-transform:none;font-weight:400;margin-top:10px}
.caps .head{margin-bottom:56px}
.cap-card h3{font-size:26px;line-height:1.4}
.cap-card h3 .ja{font-size:12px;letter-spacing:0;text-transform:none;font-family:var(--jp);margin-top:6px}
.cap-card .img{height:240px}
.pullq{padding:96px 32px}
.pullq h2{font-size:60px;line-height:1.4;padding-left:96px;max-width:1000px}
.pullq::before{font-size:200px}
.pullq .src{padding-left:96px;margin-top:32px}
.feat{padding:96px 32px}
.feat .head{margin-bottom:48px}
.feat .head h2{font-size:60px;line-height:1.3}
.feat .head h2 .ja{font-family:var(--jp);font-size:14px;color:var(--gray);letter-spacing:0;text-transform:none;font-weight:400;margin-top:12px}
.feat .left{height:520px}
.feat .right .stat-grid .v{font-size:38px}
.works{padding:96px 32px}
.works .head{margin-bottom:48px}
.works .head h2{font-size:56px;line-height:1.3}
.works .head h2 .ja{font-family:var(--jp);font-size:14px;color:var(--gray);letter-spacing:0;text-transform:none;font-weight:400;margin-top:10px}
.works .head .meta{font-family:var(--jp);font-size:12px;letter-spacing:0;text-transform:none;color:var(--gray);line-height:1.8;font-weight:400}
.works .foot{font-family:var(--jp);font-size:13px;letter-spacing:0;text-transform:none;font-weight:500}
.work .meta-row{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none;font-weight:500}
.work .img .lbl,.work .img .lbl-r{font-size:9px;letter-spacing:.1em}
.work .tag{font-family:var(--jp);font-size:10px;letter-spacing:0.04em;text-transform:none;padding:3px 8px;font-weight:500}
.work .tag.b{font-weight:500}
.work.big h5{font-size:22px}
.sec{padding:96px 32px}
.sec .head{margin-bottom:48px}
.sec .head h2{font-size:56px;line-height:1.3}
.sec .head h2 .ja{font-family:var(--jp);font-size:14px;color:var(--gray);letter-spacing:0;text-transform:none;font-weight:400;margin-top:10px}
.industries h3,.materials h3{font-family:var(--jp);font-size:13px;letter-spacing:.04em;text-transform:none;font-weight:600}
.industries li{font-size:15px}
.industries .n{font-size:11px}
.industries .c{font-family:var(--mono);font-size:13px;font-weight:600}
.mat .ct{font-family:var(--jp);font-size:10px;letter-spacing:.04em;text-transform:none}
.mat .name small{font-family:var(--jp);font-size:10px;letter-spacing:.04em;text-transform:none}
.equip{padding:96px 32px}
.equip .head{margin-bottom:48px}
.equip .head h2{font-size:56px;line-height:1.3}
.equip .head h2 .ja{font-family:var(--jp);font-size:14px;color:var(--gray);letter-spacing:0;text-transform:none;font-weight:400;margin-top:10px}
.eq .name{font-size:24px}
.eq .name small{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none;margin-top:6px}
.eq .head{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none;font-weight:500}
.eq .specs{font-family:var(--jp);font-size:12px;letter-spacing:0;text-transform:none;line-height:2}
.msg{padding:96px 32px}
.msg .text h2{font-size:38px;line-height:1.5}
.msg .text .body{font-size:15px;line-height:1.95}
.msg .text .sign .who{font-size:16px}
.msg .text .sign .who small{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none;margin-top:4px;font-weight:400}
.msg .text .sign a{font-family:var(--jp);font-size:13px;letter-spacing:0;text-transform:none;font-weight:600}
.dispatch h3{font-family:var(--jp);font-size:13px;letter-spacing:.04em;text-transform:none;font-weight:600}
.dispatch h3 small{font-family:var(--jp);letter-spacing:0;text-transform:none;font-weight:400}
.news .c{font-family:var(--jp);font-size:10px;letter-spacing:.04em;text-transform:none;font-weight:500;padding:4px 10px}
.news .t{font-size:15px;font-weight:500}
.partners li{font-family:var(--sans);font-size:20px;font-weight:700;letter-spacing:0}
.partners li small{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none;color:var(--gray);font-weight:400}
.cta{padding:120px 32px}
.cta h2{font-size:80px;line-height:1.3}
.cta .stamp{margin-bottom:24px}
.cta .lede{margin-top:48px}
.cta .lede p{font-size:17px;line-height:1.85;font-weight:400}
.cta .lede .telblock .l{font-family:var(--jp);font-size:11px;letter-spacing:.06em;text-transform:none;font-weight:500}
.cta .lede .telblock .n{font-size:42px}
.cta .lede .telblock .h{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none}
.cta .actions{margin-top:48px}
.cta .actions .btn{font-family:var(--jp);height:64px;font-size:14px;letter-spacing:0;font-weight:600}
.btn{font-family:var(--jp);font-size:14px;letter-spacing:0.02em;font-weight:600;height:56px}

/* footer */
.foot{padding:56px 32px 28px}
.foot .brand .logomark{display:block;margin-bottom:20px}
.foot .brand .logomark img{height:34px;width:auto;display:block;filter:invert(1) brightness(1.6) contrast(1.05)}
.foot .brand .addr{margin-top:0;font-size:13px}
.foot .brand .meta{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none}
.foot .col h6{font-family:var(--jp);font-size:13px;letter-spacing:.04em;text-transform:none;font-weight:600;color:#fff;margin-bottom:16px;border-bottom:1px solid #2a2c30;padding-bottom:10px}
.foot .col a{font-size:13px;padding:7px 0;justify-content:flex-start}
.foot .col a small{margin-left:auto;font-family:var(--mono)}
.foot .bottom{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none;font-weight:400}
.foot .bottom a{color:#fff}

/* nav small refinements */
.nav .cta{letter-spacing:0.04em;font-weight:600}
.banner{display:none}

/* drop the heavy underrule */
.hero .underrule{height:4px;background:var(--ink);margin:24px 0 20px}

/* mast h heading - simpler */
.mast .h h3 br{display:none}

/* sticker repositioning to avoid overlap */
.hero .stickers .sticker{font-size:10px;letter-spacing:.08em}


/* ─────────────── WRAP / NOWRAP FIXES (post-review) ─────────────── */
.cap-card .stamp{flex-wrap:nowrap;gap:12px;align-items:center}
.cap-card .stamp span{white-space:nowrap}
.cap-card .stamp .badge{flex:none}
.hero .feature .label,
.hero .feature .label-r{white-space:nowrap}
.hero .feature .label-b{font-size:9px;letter-spacing:.1em}
.nav .tel small{white-space:nowrap}
.equip .eq .head span{white-space:nowrap}
.eq .head{flex-wrap:nowrap;gap:8px}
.dispatch h3,.industries h3,.materials h3{flex-wrap:nowrap}
.work .meta-row span{white-space:nowrap}
.news li .c,.news li .d{white-space:nowrap}
/* lede num refinement */
.hero .lede .num{font-family:var(--jp);font-size:12px;line-height:1.95;color:var(--gray);letter-spacing:.02em;text-transform:none;border-left:2px solid var(--ink);padding-left:14px}
.hero .lede .num b{display:block;font-family:var(--jp);font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--ink);text-transform:none;margin-bottom:6px}


/* ─────────────── ROUND 9 — TRUE RESPONSIVE OVERHAUL ─────────────── */
img,svg,video{max-width:100%;height:auto}

/* tablet breakpoint */
@media (max-width: 1100px){
  .nav{padding:0 20px !important;gap:16px !important;height:auto !important;min-height:72px;flex-wrap:wrap}
  .nav .logo img{height:30px !important}
  .nav .links{display:none !important}
  .nav .tel{display:none}
  .nav .cta{padding:12px 18px !important;font-size:13px !important;margin-left:auto}

  .hero .hero-inner{padding:40px 24px 56px;max-width:100%}
  .hero h1{font-size:clamp(40px, 7vw, 64px) !important}
  .hero .lede-p{font-size:15px;line-height:1.8}
  .hero .pull-corner{display:none !important}

  .feat .grid,.feat .head,
  .works .head,.sec .head,.equip .head,
  .msg .grid,.cta .grid,.dispatch .grid{grid-template-columns:1fr !important;gap:32px !important}
  .feat .head h2,.works .head h2,.sec .head h2,.equip .head h2,.cap-card h3,.mast .h h3{font-size:clamp(36px, 5vw, 56px) !important;line-height:1.25 !important}
  .feat .left,.feat .right{width:100%}
  .feat .left{height:380px !important}
  .feat .right .stat-grid{grid-template-columns:repeat(2, 1fr) !important}
  .feat .right .stat-grid .v{font-size:32px !important}

  .works .layout{grid-template-columns:1fr 1fr !important;grid-template-rows:auto !important;gap:20px !important}
  .work{height:auto}
  .work .img{min-height:240px}
  .work.big{grid-column:1 / -1 !important;grid-row:auto !important}
  .work.big .img{min-height:340px}

  .sec .grid{grid-template-columns:1fr !important;gap:48px !important}
  .industries ul,.materials .mats{width:100%}
  .mats{grid-template-columns:repeat(2,1fr) !important}

  .equip .grid{grid-template-columns:1fr 1fr !important;gap:20px !important}

  .msg{padding:64px 24px !important}
  .msg .text h2{font-size:32px !important}
  .msg .photo{aspect-ratio:4/3;width:100%}

  .cta{padding:80px 24px !important}
  .cta h2{font-size:clamp(40px, 7vw, 64px) !important}
  .cta .lede{flex-direction:column;align-items:flex-start;gap:32px}
  .cta .lede .telblock .n{font-size:34px !important}
  .cta .actions{flex-direction:column;align-items:stretch}
  .cta .actions .btn{width:100%;justify-content:center}

  section,.equip,.feat,.works,.sec,.msg,.dispatch{padding-left:24px !important;padding-right:24px !important}

  .foot .top{grid-template-columns:1fr 1fr !important;gap:32px !important}
  .foot .brand{grid-column:1 / -1}

  .triptych{padding:64px 24px !important}
  .triptych .grid{grid-template-columns:repeat(3,1fr) !important;gap:16px}
  .t-card .img{aspect-ratio:auto;height:180px}
  .t-card h3{font-size:32px;margin:8px 18px 10px}
  .t-card p{font-size:13px;margin:0 18px 22px;line-height:1.75}
  .t-card .meta{padding:16px 18px 0;font-size:12px}
}

/* small phone */
@media (max-width: 720px){
  .hero .feature{height:auto;min-height:600px;align-items:flex-end}
  .hero h1{font-size:40px !important;line-height:1.25 !important}
  .hero .actions{flex-direction:column;align-items:stretch}
  .hero .actions .btn{width:100%;justify-content:center}

  .works .layout{grid-template-columns:1fr !important}
  .work .img{min-height:200px}
  .work.big .img{min-height:260px}

  .equip .grid{grid-template-columns:1fr !important}
  .mats{grid-template-columns:1fr !important}
  .feat .right .stat-grid{grid-template-columns:1fr !important}

  .triptych .grid{grid-template-columns:1fr !important}
  .t-card .img{height:220px}

  .news li{grid-template-columns:1fr !important;gap:6px !important}

  .foot .top{grid-template-columns:1fr !important}
}

/* ─────────────── ROUND 8 — WORKS HEIGHT BUMP ─────────────── */
.works .layout{grid-template-rows:repeat(2, 440px) !important;gap:28px !important}
.work .img{min-height:280px}
.work.big .img{min-height:640px}

/* ─────────────── ROUND 7 — CV PROMINENCE + EQUIP CTA + STRIPPED PHOTO META ─────────────── */
/* Nav — お問い合わせ as visible CV link, お見積り as blue solid */
.nav .links > a[href="#"]:last-of-type{
  background:transparent;
  color:var(--ink);
  border:1.5px solid var(--ink);
  padding:8px 16px;
  font-weight:700;
  border-radius:0;
  transition:.18s;
}
.nav .links > a[href="#"]:last-of-type:hover{background:var(--ink);color:var(--bg)}
.nav .links > a[href="#"]:last-of-type::after{display:none !important}
.nav .cta{
  background:var(--blue) !important;
  color:#fff !important;
  font-weight:700 !important;
  padding:16px 24px !important;
  font-size:14px !important;
  letter-spacing:.02em;
  border:none;
  box-shadow:0 4px 0 var(--ink);
  transform:translateY(-2px);
}
.nav .cta i{color:#fff !important;font-weight:700}
.nav .cta:hover{background:var(--ink) !important;transform:translateY(0);box-shadow:0 0 0 var(--ink)}
.nav{height:88px !important}
.nav .logo img{height:38px !important}
.nav .tel b{font-size:24px}

/* Equipment CTA strip — prominent */
.equip-cta{
  margin-top:48px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
}
.equip-cta span{
  font-family:var(--jp);
  font-size:15px;
  letter-spacing:.02em;
  color:rgba(255,255,255,.78);
  font-weight:500;
}
.equip-cta .btn.primary{
  background:var(--ink);
  color:#fff;
  border:none;
  font-family:var(--jp);
  font-weight:700;
  font-size:15px;
  letter-spacing:.02em;
  height:56px;
  padding:0 28px;
}
.equip-cta .btn.primary .ar{color:#9bb2ff;font-weight:700}
.equip-cta .btn.primary:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}
.equip-cta .btn.primary:hover .ar{color:#fff}

/* Hide leftover equipment image meta/crops in case any remain */
.equip .eq .img .crops,
.equip .eq .img .meta{display:none !important}
.equip .eq .img{aspect-ratio:4/3;background-size:cover;background-position:center;background-image:var(--photo);overflow:hidden}

/* ─────────────── ROUND 6 — TRIPTYCH (削る・組む・直す) ─────────────── */
.triptych{padding:120px 32px;background:var(--bg);border-bottom:1px solid var(--ink)}
.triptych .head{display:grid;grid-template-columns:1fr;gap:24px;align-items:start;margin-bottom:64px;max-width:1600px;margin-left:auto;margin-right:auto}
.triptych .head .label{font-family:var(--jp);font-size:14px;letter-spacing:.04em;color:var(--blue);font-weight:600;grid-column:1/-1}
.triptych .head h2{font-family:var(--jp);font-size:clamp(56px, 6vw, 88px);font-weight:900;letter-spacing:-0.01em;line-height:1.15;color:var(--ink);margin:0}
.triptych .head h2 em{font-style:normal;color:var(--blue);font-weight:900}
.triptych .head .sub{font-family:var(--jp);font-size:18px;line-height:1.85;color:var(--gray);font-weight:400;max-width:680px;margin:0}
.triptych .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1600px;margin:0 auto}
.t-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e6e5df}
.t-card .img{aspect-ratio:4/3;background-size:cover;background-position:center;background-color:#0e0f12;position:relative}
.t-card .img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(15,15,18,.35) 100%)}
.t-card .meta{display:flex;align-items:center;gap:14px;padding:24px 28px 0;font-family:var(--jp);font-size:13px;letter-spacing:.02em;font-weight:600}
.t-card .meta .n{font-family:var(--mono);color:var(--blue);font-size:12px;font-weight:600;letter-spacing:.08em}
.t-card .meta .cat{color:var(--gray);font-weight:500}
.t-card h3{font-family:var(--jp);font-size:46px;font-weight:900;letter-spacing:-0.01em;line-height:1.1;margin:14px 28px 16px;color:var(--ink)}
.t-card p{font-family:var(--jp);font-size:15px;line-height:1.85;color:var(--ink);margin:0 28px 32px;font-weight:400}
@media (max-width: 1100px){
  .triptych{padding:80px 32px}
  .triptych .head{grid-template-columns:1fr;gap:20px;margin-bottom:48px}
  .triptych .head .sub{justify-self:start}
  /* tablet: stay 3-up but constrain image height */
  .triptych .grid{grid-template-columns:repeat(3,1fr);gap:16px}
  .t-card .img{aspect-ratio:auto;height:200px}
  .t-card h3{font-size:36px;margin:10px 22px 12px}
  .t-card p{font-size:14px;margin:0 22px 24px}
  .t-card .meta{padding:20px 22px 0}
}
@media (max-width: 720px){
  .triptych .grid{grid-template-columns:1fr}
  .t-card .img{height:240px}
}

/* ─────────────── ROUND 5 — IMAGE-DOMINANT HERO + DARK MAT CONTRAST FIX ─────────────── */
/* New hero: full-bleed image with overlay text */
.hero{padding:0 !important;border-bottom:1px solid var(--ink)}
.hero .feature{
  position:relative;
  height:min(820px, 92vh);
  background:#0e0f12;
  background-image:var(--photo);
  background-size:cover;
  background-position:center;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
}
.hero .feature::before,
.hero .feature::after{display:none !important}
.hero .feature .overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(15,15,18,0) 0%, rgba(15,15,18,0) 30%, rgba(15,15,18,.55) 70%, rgba(15,15,18,.88) 100%),
    linear-gradient(90deg, rgba(15,15,18,.55) 0%, rgba(15,15,18,.15) 55%, rgba(15,15,18,0) 100%);
  z-index:1;
}
.hero .hero-inner{
  position:relative;z-index:2;
  padding:56px 56px 64px;
  max-width:980px;
  color:#fff;
}
.hero .issuetag{
  color:#fff;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
  padding:8px 14px;
  margin-bottom:32px;
  border:1px solid rgba(255,255,255,.18);
}
.hero .issuetag b{color:#fff}
.hero .issuetag span{color:rgba(255,255,255,.7)}
.hero .issuetag .sq{background:#9bb2ff}
.hero h1{
  font-family:var(--jp);
  font-size:clamp(54px, 6.4vw, 96px);
  line-height:1.2;
  letter-spacing:-0.01em;
  font-weight:900;
  color:#fff;
  margin:0 0 28px;
}
.hero h1 .blue{color:#9bb2ff;font-style:normal;font-weight:700}
.hero h1 .out{
  -webkit-text-stroke:2px #fff;
  color:transparent;
  font-weight:700;
}
.hero .lede-p{
  font-family:var(--jp);
  font-size:17px;
  line-height:1.9;
  color:rgba(255,255,255,.92);
  margin:0 0 36px;
  max-width:720px;
}
.hero .lede-p b{
  font-weight:700;
  color:#fff;
  background:linear-gradient(transparent 65%, rgba(155,178,255,.35) 65%);
  padding:0 2px;
}
.hero .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:0}
.hero .actions .btn.primary{
  background:#fff;color:var(--ink);border-color:#fff;
}
.hero .actions .btn.primary:hover{background:#9bb2ff;color:#fff;border-color:#9bb2ff}
.hero .actions .btn.primary .ar{color:var(--blue)}
.hero .actions .btn.ghost{
  background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);
}
.hero .actions .btn.ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.hero .pull-corner{
  position:absolute;
  right:48px;bottom:48px;
  z-index:2;
  font-family:var(--sans);
  font-size:32px;
  font-weight:300;
  letter-spacing:-0.01em;
  color:rgba(255,255,255,.88);
  text-align:right;
  border-right:2px solid #9bb2ff;
  padding-right:18px;
  line-height:1.3;
}
.hero .pull-corner em{
  font-style:normal;
  font-weight:700;
  color:#fff;
  font-size:48px;
}
@media (max-width: 1100px){
  .hero .pull-corner{display:none}
  .hero .hero-inner{padding:48px 32px 48px}
}

/* hide all the OLD hero CSS still bleeding through */
.hero .grid,.hero .left,.hero .right,.hero .underrule,.hero .lede,.hero .lede .num,.hero .stickers,.hero .feature .pull,.hero .feature .label,.hero .feature .label-r,.hero .feature .label-b,.hero .feature .crops{display:none !important}

/* Dark material cards — fix contrast */
.mat.h .name{color:#fff !important}
.mat.h .name small{color:rgba(255,255,255,.7) !important;font-weight:500}
.mat.h .ct span{color:#9bb2ff !important;font-weight:600}
.mat.h .ct b{color:#fff !important;font-weight:700}
.mat.h .sym{color:#9bb2ff !important}

/* ─────────────── ROUND 4 — BUMP SMALL TEXT (2026.05.24) ─────────────── */
/* unify all stamp / overline labels */
.hero .issuetag,
.feat .head .stamp,
.works .head .stamp,
.sec .head .stamp,
.equip .head .stamp,
.msg .text .stamp,
.cta .stamp{
  font-family:var(--jp);
  font-size:14px;
  letter-spacing:.04em;
  text-transform:none;
  font-weight:600;
  color:var(--ink);
}
.equip .head .stamp,
.feat .head .stamp,
.works .head .stamp,
.sec .head .stamp,
.msg .text .stamp{color:var(--blue)}
.cta .stamp{color:#9bb2ff;letter-spacing:.06em}
.hero .issuetag{gap:12px}
.hero .issuetag b{font-family:var(--jp);font-weight:600;font-size:14px;letter-spacing:.02em;text-transform:none}
.hero .issuetag span{font-family:var(--jp);font-size:13px;color:var(--gray);text-transform:none;letter-spacing:0}

/* section subtitle (.ja under h2) */
.mast .h h3 .ja,
.feat .head h2 .ja,
.works .head h2 .ja,
.sec .head h2 .ja,
.equip .head h2 .ja,
.cap-card h3 .ja{
  font-family:var(--jp);
  font-size:17px;
  line-height:1.6;
  color:var(--gray);
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
  margin-top:14px;
}

/* hero left lede sidebar */
.hero .lede .num{font-size:14px;line-height:1.95;letter-spacing:.02em;padding-left:16px}
.hero .lede .num b{font-family:var(--jp);font-size:13px;font-weight:600;letter-spacing:.04em;margin-bottom:8px}
.hero .lede p{font-size:17px;line-height:1.9}

/* hero feature pull text */
.hero .feature .pull{font-size:56px}

/* equipment cards — bigger spec lines */
.eq .head{font-family:var(--jp);font-size:13px;letter-spacing:.04em;text-transform:none;font-weight:600}
.eq .head .brand{font-family:var(--sans);font-size:18px;font-weight:700;letter-spacing:0}
.eq .name{font-size:26px}
.eq .name small{font-family:var(--jp);font-size:13px;letter-spacing:.02em;text-transform:none;margin-top:8px;color:var(--gray);font-weight:500;display:block}
.eq .specs{font-family:var(--jp);font-size:14px;letter-spacing:0;text-transform:none;line-height:2;color:var(--ink)}
.eq .specs b{font-family:var(--jp);font-weight:600;color:var(--ink)}
.eq .meta{font-family:var(--jp);font-size:12px;letter-spacing:.02em;text-transform:none}

/* equipment footer */
.equip .foot{font-family:var(--jp);font-size:14px;letter-spacing:0;text-transform:none}

/* message body & sign */
.msg .text h2{font-size:42px;line-height:1.55}
.msg .text .body{font-size:16px;line-height:2}
.msg .text .sign{display:flex;align-items:center;gap:24px;margin-top:32px}
.msg .text .sign .who{font-size:18px;font-weight:700}
.msg .text .sign .who small{font-family:var(--jp);font-size:13px;letter-spacing:.02em;text-transform:none;margin-top:6px;color:var(--gray);font-weight:500;display:block}
.msg .text .sign a{font-family:var(--jp);font-size:15px;letter-spacing:.02em;text-transform:none;font-weight:600}

/* dispatch / news */
.dispatch h3{font-family:var(--jp);font-size:18px;letter-spacing:.02em;text-transform:none;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:14px;margin-bottom:24px}
.dispatch h3 small{font-family:var(--jp);font-size:13px;letter-spacing:.02em;text-transform:none;font-weight:500;color:var(--gray);margin-left:auto}
.news li{padding:18px 0;border-bottom:1px solid #e0dfd9;display:grid;grid-template-columns:90px 110px 1fr auto;gap:20px;align-items:center}
.news li .d{font-family:var(--mono);font-size:13px;color:var(--gray)}
.news li .c{font-family:var(--jp);font-size:12px;letter-spacing:.02em;text-transform:none;font-weight:600;padding:5px 12px}
.news li .t{font-size:16px;font-weight:500;line-height:1.5}

/* works header meta */
.works .head .meta{font-size:15px;line-height:1.8;max-width:none}

/* works card text */
.work .meta-row{font-family:var(--jp);font-size:13px;letter-spacing:0;text-transform:none;font-weight:600;padding:14px 0 10px;border-bottom:1px solid #e6e5df}
.work h5{font-size:17px;line-height:1.6;font-weight:600;margin:14px 0 12px}
.work.big h5{font-size:24px;line-height:1.5}
.work .tag{font-family:var(--jp);font-size:12px;letter-spacing:0.02em;text-transform:none;padding:5px 11px;font-weight:500}
.work .img .lbl,.work .img .lbl-r{font-family:var(--mono);font-size:11px;letter-spacing:.06em}

/* industries list */
.industries h3,.materials h3{font-family:var(--jp);font-size:16px;letter-spacing:.02em;text-transform:none;font-weight:700;padding-bottom:16px;border-bottom:1px solid var(--ink);margin-bottom:8px;display:flex;justify-content:space-between}
.industries h3 span:last-child,.materials h3 span:last-child{font-family:var(--jp);font-weight:500;font-size:14px}
.industries li{font-size:17px;padding:18px 0}
.industries .n{font-family:var(--mono);font-size:13px;color:var(--gray);min-width:32px}
.industries .ex{font-family:var(--jp);font-size:14px;color:var(--gray);font-weight:400}
.industries .c{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--ink)}

/* materials grid */
.mat .sym{font-size:22px;font-weight:700;letter-spacing:0;font-family:var(--sans)}
.mat .name{font-size:16px;font-weight:600}
.mat .name small{font-family:var(--jp);font-size:12px;letter-spacing:0;text-transform:none;color:var(--gray);font-weight:400;display:block;margin-top:4px}
.mat .ct{font-family:var(--jp);font-size:12px;letter-spacing:.02em;text-transform:none;line-height:1.5}
.mat .ct span{display:block;color:var(--gray)}
.mat .ct b{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--ink)}
.mat.h .ct span{color:var(--blue);font-weight:600}

/* stat-grid bump */
.feat .right .stat-grid .k{font-size:15px}
.feat .right .stat-grid .ja{font-size:14px;margin-top:8px}
.feat .right .stat-grid .u{font-size:15px}

/* CTA copy */
.cta .lede p{font-size:18px;line-height:1.9}
.cta .lede .telblock .l{font-family:var(--jp);font-size:13px;letter-spacing:.04em;text-transform:none;font-weight:600}
.cta .lede .telblock .n{font-size:48px}
.cta .lede .telblock .h{font-family:var(--jp);font-size:13px;letter-spacing:.02em;text-transform:none;color:rgba(255,255,255,0.65)}
.cta .actions .btn{font-family:var(--jp);height:68px;font-size:16px;letter-spacing:.02em;font-weight:600}

/* generic .btn */
.btn{font-family:var(--jp);font-size:15px;letter-spacing:.02em;font-weight:600;height:60px;padding:0 28px}

/* nav */
.nav .links a{font-size:15px;letter-spacing:.02em;font-weight:600}
.nav .tel small{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none;color:var(--gray);font-weight:500}
.nav .tel b{font-size:22px}
.nav .cta{font-family:var(--jp);font-size:14px;letter-spacing:.02em;font-weight:600;padding:16px 22px}

/* footer */
.foot .col h6{font-family:var(--jp);font-size:15px;letter-spacing:.02em;text-transform:none;font-weight:700;color:#fff;margin-bottom:18px;border-bottom:1px solid #2a2c30;padding-bottom:12px}
.foot .col a{font-family:var(--jp);font-size:14px;padding:8px 0;font-weight:500}
.foot .col a small{margin-left:auto;font-family:var(--mono);color:var(--gray)}
.foot .brand .addr{font-size:14px;line-height:1.85}
.foot .bottom{font-family:var(--jp);font-size:12px;letter-spacing:.02em;text-transform:none;font-weight:400}
.foot .bottom a{font-family:var(--jp);font-weight:500}

/* ─────────────── ROUND 3 ADJUSTMENTS (post-comments) ─────────────── */
/* enlarge previously-small text */
.feat .right .stat-grid .k{font-family:var(--jp);font-size:14px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--ink)}
.feat .right .stat-grid .u{font-size:14px;font-family:var(--mono);font-weight:500;color:var(--gray);margin-left:8px}
.feat .right .stat-grid .ja{font-size:13px;color:var(--gray);margin-top:6px}
.feat .right .stat-grid .v{font-size:42px;line-height:1.1;letter-spacing:-0.02em}
.feat .right .stat-grid > div{padding:18px 0}

/* dispatch — now single column, expand news */
.dispatch .grid{grid-template-columns:1fr !important;gap:0 !important}
.dispatch .news{max-width:none}
.dispatch .news li .t{font-size:16px}

/* hero feature without inner labels — keep .pull bottom-right but cleaner */
.hero .feature .pull{right:32px;bottom:32px;left:auto;font-size:54px;text-align:right;background:rgba(15,15,16,0.55);padding:24px 28px;backdrop-filter:blur(4px)}
.hero .feature .pull em{color:#9bb2ff;font-style:normal;font-weight:300}

/* footer brand vertical rhythm tightened */
.foot .brand .addr{margin-top:0}

/* works header: simpler now */
.works .head .meta{font-family:var(--jp);font-size:13px;letter-spacing:0;text-transform:none;color:var(--gray);line-height:1.7;font-weight:500;max-width:280px}
.works .head h2{margin-top:0}

/* feat header without stamp — keep just the h2 column */
.feat .head{grid-template-columns:1fr !important}

/* hero sticker tone */
.hero .stickers .sticker{font-family:var(--jp);font-size:11px;letter-spacing:.04em;text-transform:none;font-weight:500}

/* ─────────────── ROUND 10 — FINAL FIXES (overflow + CTA buttons) ─────────────── */
/* Works overflow: don't let img exceed card */
.work{overflow:hidden}
.work .img{min-height:0 !important;flex:1 1 auto}
.work.big .img{min-height:0 !important}
@media (min-width: 1101px){
  .work .img{min-height:240px !important}
}

/* CTA buttons stay horizontal */
@media (max-width: 1100px){
  .cta .actions{flex-direction:row !important;flex-wrap:wrap;gap:12px}
  .cta .actions .btn{width:auto !important;flex:1 1 220px;min-width:0;justify-content:center}
}
@media (max-width: 480px){
  .cta .actions .btn{flex:1 1 100%}
}

/* ─────────────── ROUND 11 — WORKS CARD GROUPING + ROW FIX ─────────────── */
/* Make each work card a visually grouped block: white card, padding, image+text bound together */
.work{
  background:#fff;
  border:1px solid #e6e5df;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:0;
  transition:border-color .2s, transform .2s;
}
.work:hover{border-color:var(--ink);transform:translateY(-2px)}
.work .img{margin:0;border-bottom:1px solid #e6e5df}
.work .meta-row{padding:18px 20px 10px;border-bottom:0}
.work h5{padding:0 20px;margin:6px 0 14px}
.work .tags{padding:0 20px 20px;display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}

/* Fix grid rows so all cards render their images on tablet/2-col */
@media (max-width: 1100px){
  .works .layout{
    grid-template-columns:1fr 1fr !important;
    grid-template-rows:none !important;
    grid-auto-rows:1fr !important;
    gap:20px !important;
  }
  .work{min-height:420px}
  .work .img{min-height:220px !important;height:220px}
  .work.big{grid-column:1 / -1 !important;min-height:auto}
  .work.big .img{height:320px;min-height:320px !important}
}

/* Desktop: keep big card on left full-height, 4 smalls 2x2 right */
@media (min-width: 1101px){
  .works .layout{
    grid-template-columns:1.5fr 1fr 1fr !important;
    grid-template-rows:repeat(2, 1fr) !important;
    grid-auto-rows:1fr !important;
    min-height:880px;
  }
  .work .img{min-height:0 !important;height:auto !important}
  .work.big{grid-row:1 / span 2 !important;grid-column:1 !important}
}

/* Small phone */
@media (max-width: 720px){
  .works .layout{grid-template-columns:1fr !important;grid-auto-rows:auto !important}
  .work{min-height:auto}
  .work .img{height:240px;min-height:240px !important}
  .work.big .img{height:280px;min-height:280px !important}
}

/* ─────────────── ROUND 12 — JP CLEAN WRAPPING (no awkward mid-clause breaks) ─────────────── */
.triptych .head .sub span,
.hero .lede-p > span,
.t-card p span,
.work h5 span{display:inline-block}
.triptych .head .sub{text-wrap:pretty;word-break:auto-phrase;line-break:strict}
.triptych .head h2,
.feat .head h2,
.works .head h2,
.sec .head h2,
.equip .head h2,
.msg .text h2,
.cta h2{text-wrap:pretty;line-break:strict;word-break:auto-phrase}
.t-card p,.work h5,.cap-card p.desc,.feat .right p.desc,
.cta .lede p,.msg .text .body{line-break:strict;word-break:auto-phrase;text-wrap:pretty}

/* ─────────────── ROUND 13 — MODERN FOOTER ─────────────── */
.foot{
  background:#0c0c0e;
  color:rgba(255,255,255,.7);
  padding:0;
  border-top:none;
  position:relative;
  overflow:hidden;
  font-family:var(--jp);
}

/* — CTA strip — */
.foot .foot-cta{
  background:linear-gradient(135deg, #1a3a8a 0%, #2a5fc8 100%);
  position:relative;
  overflow:hidden;
}
.foot .foot-cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 80% 50%, rgba(255,255,255,.08), transparent 60%);
  pointer-events:none;
}
.foot-cta-inner{
  max-width:1440px;
  margin:0 auto;
  padding:64px 56px;
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:48px;
  align-items:center;
  position:relative;
}
.foot-cta-lead .kicker{
  font-family:var(--mono);
  font-size:11px;
  font-weight:600;
  letter-spacing:.24em;
  color:rgba(255,255,255,.6);
  margin-bottom:18px;
}
.foot-cta-lead h3{
  font-family:var(--jp);
  font-size:clamp(28px, 3.6vw, 44px);
  font-weight:800;
  line-height:1.4;
  color:#fff;
  margin:0;
  letter-spacing:-0.005em;
}
.foot-cta-actions{
  display:flex;
  flex-direction:column;
  gap:20px;
  align-items:flex-end;
}
.foot-cta-btn{
  display:inline-flex;
  align-items:center;
  gap:14px;
  background:#fff;
  color:#1a3a8a;
  font-family:var(--jp);
  font-weight:700;
  font-size:17px;
  padding:22px 38px;
  letter-spacing:.02em;
  border:none;
  transition:.2s;
  width:100%;
  justify-content:center;
}
.foot-cta-btn .ar{color:#1a3a8a;font-weight:700;font-size:18px}
.foot-cta-btn:hover{background:#0c0c0e;color:#fff;transform:translateY(-2px)}
.foot-cta-btn:hover .ar{color:#fff}
.foot-cta-tel{
  display:flex;
  flex-direction:column;
  gap:2px;
  align-items:flex-end;
  text-align:right;
  color:#fff;
  padding-right:4px;
  width:100%;
  align-items:center;
}
.foot-cta-tel .l{
  font-family:var(--jp);
  font-size:11px;
  font-weight:600;
  letter-spacing:.16em;
  color:rgba(255,255,255,.6);
  text-transform:none;
}
.foot-cta-tel .n{
  font-family:var(--sans);
  font-size:34px;
  font-weight:300;
  letter-spacing:-0.01em;
  color:#fff;
  line-height:1.1;
}
.foot-cta-tel .h{
  font-family:var(--jp);
  font-size:12px;
  color:rgba(255,255,255,.55);
}

/* — Body grid — */
.foot-body{
  position:relative;
  background:#0c0c0e;
  padding:96px 0 64px;
  overflow:hidden;
}
.foot-wordmark{
  position:absolute;
  left:-2vw;
  bottom:-3vw;
  font-family:var(--sans);
  font-size:clamp(180px, 22vw, 360px);
  font-weight:900;
  letter-spacing:-0.04em;
  line-height:.85;
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.04);
  pointer-events:none;
  user-select:none;
  white-space:nowrap;
  z-index:0;
}
.foot-grid{
  max-width:1440px;
  margin:0 auto;
  padding:0 56px;
  display:grid;
  grid-template-columns:1.4fr 2fr;
  gap:80px;
  position:relative;
  z-index:1;
}

.foot .brand{position:relative}
.foot .brand .logomark{display:block;margin-bottom:32px}
.foot .brand .logomark img{height:42px;width:auto;filter:invert(1) brightness(1.4)}
.foot .brand .tagline{
  font-family:var(--jp);
  font-size:22px;
  font-weight:700;
  line-height:1.5;
  color:#fff;
  margin:0 0 32px;
  letter-spacing:-0.01em;
}
.foot .brand .addr{
  font-family:var(--jp);
  font-size:13px;
  line-height:1.9;
  color:rgba(255,255,255,.55);
  font-style:normal;
  letter-spacing:.02em;
}
.foot .brand .addr span{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.18em;
  color:rgba(255,255,255,.4);
  font-weight:600;
}

/* — Columns — */
.foot .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.foot .col h6{
  font-family:var(--mono);
  font-size:10px;
  font-weight:600;
  letter-spacing:.22em;
  color:#9bb2ff;
  margin:0 0 24px;
  padding:0;
  border:none;
  text-transform:uppercase;
}
.foot .col ul{list-style:none;padding:0;margin:0}
.foot .col li{padding:0}
.foot .col a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:var(--jp);
  font-size:14px;
  font-weight:500;
  color:rgba(255,255,255,.82);
  padding:9px 0;
  letter-spacing:.01em;
  text-transform:none;
  transition:color .15s, padding-left .15s;
  position:relative;
}
.foot .col a:hover{color:#fff;padding-left:14px}
.foot .col a:hover::before{
  content:"";
  position:absolute;
  left:0;top:50%;
  width:8px;height:1px;
  background:#9bb2ff;
  transform:translateY(-50%);
}
.foot .col a .ext{
  font-family:var(--mono);
  font-size:11px;
  color:rgba(255,255,255,.4);
  margin-left:4px;
}

/* — Base bar — */
.foot-base{
  position:relative;
  z-index:1;
  max-width:1440px;
  margin:0 auto;
  padding:24px 56px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.08em;
  color:rgba(255,255,255,.4);
  margin-top:64px;
}
.foot-base .totop{
  font-family:var(--jp);
  font-size:12px;
  font-weight:600;
  letter-spacing:.06em;
  color:rgba(255,255,255,.7);
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 16px;
  border:1px solid rgba(255,255,255,.15);
  transition:.18s;
}
.foot-base .totop:hover{background:#fff;color:#0c0c0e;border-color:#fff}
.foot-base .totop .ar{font-size:13px}

/* — Tablet — */
@media (max-width: 1100px){
  .foot-cta-inner{grid-template-columns:1fr;gap:32px;padding:48px 24px}
  .foot-cta-actions{align-items:stretch;width:100%}
  .foot-cta-tel{align-items:flex-start}
  .foot-grid{grid-template-columns:1fr;gap:56px;padding:0 24px}
  .foot-body{padding:64px 0 48px}
  .foot .cols{grid-template-columns:repeat(3,1fr);gap:24px}
  .foot-base{padding:20px 24px;margin-top:48px;flex-direction:column;align-items:flex-start;gap:14px}
  .foot-wordmark{font-size:42vw}
}
@media (max-width: 720px){
  .foot .cols{grid-template-columns:1fr 1fr;gap:32px}
  .foot-cta-tel .n{font-size:28px}
  .foot-cta-lead h3{font-size:26px}
  .foot .brand .tagline{font-size:18px}
}
@media (max-width: 480px){
  .foot .cols{grid-template-columns:1fr}
}

/* ─────────────── ROUND 14 — REMOVE GRAY MATS CARD + REFINE FOOTER ─────────────── */
.mats{background:transparent !important;padding:0 !important;border:none !important}

/* Footer modern refinements (after removing foot-cta) */
.foot-body{padding-top:120px !important;padding-bottom:80px !important}
.foot-wordmark{
  font-size:clamp(220px, 26vw, 420px) !important;
  -webkit-text-stroke:1px rgba(255,255,255,.05) !important;
  bottom:-6vw !important;
  left:-3vw !important;
}
.foot-base{margin-top:80px !important;padding:28px 56px !important}

/* ─────────────── ROUND 15 — NAV HAMBURGER + NEWS CARDS + FOOTER FIXES ─────────────── */
/* Hamburger button (hidden on desktop) */
.nav-toggle{
  display:none;
  width:48px;height:48px;
  background:transparent;border:1.5px solid var(--ink);
  cursor:pointer;
  padding:0;
  position:relative;
  align-items:center;justify-content:center;
  flex-direction:column;
  gap:5px;
}
.nav-toggle span{
  display:block;
  width:22px;height:2px;
  background:var(--ink);
  transition:.2s;
}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Tablet nav */
@media (max-width: 1100px){
  .nav{
    padding:0 20px !important;
    height:72px !important;
    min-height:72px !important;
    flex-wrap:nowrap !important;
    gap:12px !important;
    position:relative;
  }
  .nav .logo{flex:0 0 auto}
  .nav .logo img{height:30px !important}
  .nav .links{
    display:none !important;
    position:absolute;
    top:100%;left:0;right:0;
    background:var(--bg);
    flex-direction:column;
    padding:24px 20px;
    border-bottom:1px solid var(--ink);
    z-index:50;
    gap:0;
    box-shadow:0 12px 24px rgba(0,0,0,.08);
  }
  .nav.open .links{display:flex !important}
  .nav.open .links a{
    display:block;
    padding:14px 0;
    font-size:16px;
    border-bottom:1px solid #e6e5df;
    width:100%;
    border-radius:0;
    background:transparent !important;
    color:var(--ink) !important;
    border-left:none !important;
    border-right:none !important;
    border-top:none !important;
  }
  .nav.open .links a:last-child{border-bottom:none}
  .nav.open .links a[href="#"]:last-child{border:none !important;padding:14px 0 !important}
  .nav .right{flex:0 0 auto;gap:8px !important;margin-left:auto}
  .nav .cta{
    padding:12px 18px !important;
    font-size:13px !important;
    margin-left:0 !important;
    flex-shrink:0;
  }
  .nav-toggle{display:flex !important;flex-shrink:0}
}
@media (max-width: 480px){
  .nav .cta{padding:10px 14px !important;font-size:12px !important}
  .nav .cta i{display:none}
  .nav .logo img{height:26px !important}
}

/* ─────────────── NEWS CARDS ─────────────── */
.dispatch{padding:96px 32px;background:var(--bg);border-bottom:1px solid var(--ink)}
.dispatch-wrap{max-width:1600px;margin:0 auto}
.news-head{
  display:flex;justify-content:space-between;align-items:end;
  margin-bottom:40px;
  border-bottom:1px solid var(--ink);
  padding-bottom:20px;
}
.news-head h3{
  font-family:var(--jp);
  font-size:28px;
  font-weight:900;
  letter-spacing:-0.01em;
  color:var(--ink);
  margin:0;
  display:flex;align-items:baseline;gap:16px;
  border:none;padding:0;
}
.news-head h3 small{
  font-family:var(--jp);
  font-size:13px;
  color:var(--gray);
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
}
.news-all{
  font-family:var(--jp);
  font-size:14px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--ink);
  display:inline-flex;align-items:center;gap:10px;
}
.news-all .ar{color:var(--blue);font-weight:700}
.news-all:hover{color:var(--blue)}

.news-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.news-card{
  display:flex;flex-direction:column;
  background:#fff;
  border:1px solid #e6e5df;
  transition:.2s;
  color:var(--ink);
  overflow:hidden;
}
.news-card:hover{border-color:var(--ink);transform:translateY(-2px)}
.news-card .thumb{
  aspect-ratio:16/10;
  background-size:cover;
  background-position:center;
  background-color:#0e0f12;
  border-bottom:1px solid #e6e5df;
}
.news-card .news-meta{
  display:flex;align-items:center;gap:12px;
  padding:20px 22px 0;
}
.news-card .news-meta .d{
  font-family:var(--mono);
  font-size:12px;
  color:var(--gray);
  letter-spacing:.04em;
  font-weight:500;
}
.news-card .news-meta .c{
  font-family:var(--jp);
  font-size:11px;
  letter-spacing:.02em;
  font-weight:600;
  padding:4px 10px;
  background:#f4f2ec;
  color:var(--ink);
}
.news-card .news-meta .c.b{background:var(--blue);color:#fff}
.news-card h4{
  font-family:var(--jp);
  font-size:16px;
  line-height:1.65;
  font-weight:600;
  color:var(--ink);
  margin:14px 22px 18px;
  flex:1;
}
.news-card .news-arr{
  font-family:var(--jp);
  font-size:12px;
  font-weight:600;
  color:var(--blue);
  letter-spacing:.02em;
  padding:0 22px 22px;
  display:inline-flex;align-items:center;gap:6px;
  margin-top:auto;
}
.news-card .news-arr i{font-style:normal;font-weight:700}

@media (max-width: 1100px){
  .news-grid{grid-template-columns:repeat(2,1fr);gap:18px}
  .news-card:nth-child(3){grid-column:1 / -1}
  .news-head h3{font-size:24px}
}
@media (max-width: 720px){
  .news-grid{grid-template-columns:1fr;gap:14px}
  .news-card:nth-child(3){grid-column:auto}
  .news-card .thumb{aspect-ratio:16/9}
}

/* ─────────────── CTA / FOOTER BOUNDARY ─────────────── */
.cta{border-bottom:none !important}
.cta::after{
  /* keep existing radial glow */
}
/* Add a clear accent divider between CTA and footer */
.cta + .foot::before{
  content:"";
  display:block;
  height:6px;
  background:linear-gradient(90deg, var(--blue) 0%, var(--blue) 30%, transparent 30%, transparent 35%, rgba(255,255,255,.18) 35%, rgba(255,255,255,.18) 38%, transparent 38%);
}
.foot{
  background:#0a0a0c !important;
  border-top:1px solid rgba(255,255,255,.08);
  position:relative;
}

/* ─────────────── FOOTER WORDMARK FIX ─────────────── */
.foot-body{
  padding-top:96px !important;
  padding-bottom:120px !important;
  position:relative;
  overflow:hidden;
}
.foot-wordmark{
  font-size:clamp(180px, 22vw, 360px) !important;
  -webkit-text-stroke:1px rgba(255,255,255,.09) !important;
  color:transparent !important;
  font-weight:900;
  letter-spacing:-0.04em;
  bottom:24px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  white-space:nowrap;
  pointer-events:none;
  line-height:.85;
}
.foot-base{
  margin-top:64px !important;
  padding:24px 56px !important;
  border-top:1px solid rgba(255,255,255,.1);
  position:relative;z-index:2;
}
.foot-grid{position:relative;z-index:2}

/* bump footer text visibility */
.foot{color:rgba(255,255,255,.78) !important}
.foot .brand .addr,.foot .brand .tagline{color:rgba(255,255,255,.78)}
.foot .col h6{color:#fff !important}
.foot .col a,.foot .col li a{color:rgba(255,255,255,.78) !important;transition:.18s}
.foot .col a:hover{color:#9bb2ff !important}
.foot-base,.foot-base *{color:rgba(255,255,255,.6)}
.foot-base a{color:rgba(255,255,255,.8)}

@media (max-width: 1100px){
  .foot-body{padding-top:72px !important;padding-bottom:88px !important}
  .foot-wordmark{font-size:clamp(120px, 28vw, 260px) !important;bottom:18px !important}
  .foot-base{padding:20px 24px !important;margin-top:48px !important}
}

/* Hide blue お問い合わせ CTA on desktop (duplicated by the nav link) */
@media (min-width: 1101px){
  .nav .cta{display:none !important}
}

/* ─────────────── ROUND 16 — ELEGANT CTA/FOOTER DIVIDER ─────────────── */
/* remove the old 6px striped bar */
.cta + .foot::before{display:none !important;content:none !important}
.cta{border-bottom:none !important}

.foot-divider{
  background:#0a0a0c;
  padding:72px clamp(24px, 6vw, 96px);
  display:flex;
  align-items:center;
  gap:28px;
  border-top:1px solid rgba(255,255,255,.06);
}
.foot-divider .rule{
  flex:1;
  height:1px;
  background:linear-gradient(to right, transparent 0%, rgba(255,255,255,.18) 22%, rgba(255,255,255,.18) 78%, transparent 100%);
}
.foot-divider .mark{
  width:10px;height:10px;
  background:var(--blue);
  transform:rotate(45deg);
  box-shadow:0 0 0 5px rgba(155,178,255,.12), 0 0 24px rgba(155,178,255,.35);
  flex-shrink:0;
}
.foot{border-top:none !important}
@media (max-width: 720px){
  .foot-divider{padding:48px 24px;gap:18px}
}

/* ─────────────── ROUND 17 — DESKTOP NAV REFINE + MODERN HAMBURGER OVERLAY ─────────────── */
/* Hide TEL block entirely (mobile CTA on tap-to-call is enough) */
.nav .tel{display:none !important}

/* Desktop: right-align menu, premium hover treatment */
@media (min-width: 1101px){
  .nav{gap:48px !important}
  .nav .links{flex:1 1 auto;justify-content:flex-end !important;gap:40px !important}
  .nav .links a{
    font-family:var(--jp);
    font-size:14px;
    letter-spacing:.06em;
    font-weight:500;
    color:var(--ink);
    position:relative;
    padding:10px 0;
    transition:color .2s;
  }
  .nav .links a::after{
    content:"";
    position:absolute;
    left:0;right:100%;
    bottom:2px;
    height:1px;
    background:var(--ink);
    transition:right .35s cubic-bezier(.65,.05,.36,1);
    background:var(--blue);
  }
  .nav .links a:hover,
  .nav .links a.active{color:var(--blue)}
  .nav .links a:hover::after,
  .nav .links a.active::after{right:0}
  .nav .right{margin-left:0 !important}
}

/* Hamburger overlay: full-screen, dark, large editorial typography */
@media (max-width: 1100px){
  .nav .links{
    /* base state hidden */
    position:fixed !important;
    top:0;left:0;right:0;bottom:0;
    background:#0a0a0c !important;
    color:#fff !important;
    padding:96px 32px 56px !important;
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    z-index:55 !important;
    overflow-y:auto !important;
    border:none !important;
    box-shadow:none !important;
    opacity:0;
    visibility:hidden;
    transform:translateY(-12px);
    transition:opacity .28s ease, transform .28s ease, visibility 0s linear .28s;
    counter-reset:navitem;
  }
  .nav.open .links{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(0) !important;
    transition:opacity .28s ease, transform .28s ease;
  }
  .nav.open .links a{
    font-family:var(--jp) !important;
    font-size:clamp(26px, 5.4vw, 36px) !important;
    font-weight:800 !important;
    letter-spacing:-0.01em !important;
    color:#fff !important;
    padding:22px 0 !important;
    border:none !important;
    border-bottom:1px solid rgba(255,255,255,.08) !important;
    display:flex !important;
    align-items:baseline !important;
    gap:24px !important;
    background:transparent !important;
    width:100%;
    transition:color .2s, padding .2s;
  }
  .nav.open .links a::before{
    content:counter(navitem, decimal-leading-zero);
    counter-increment:navitem;
    font-family:var(--mono);
    font-size:12px;
    color:rgba(155,178,255,.7);
    letter-spacing:.1em;
    font-weight:500;
    min-width:36px;
    flex-shrink:0;
    align-self:center;
  }
  .nav.open .links a::after{
    content:"→";
    margin-left:auto;
    font-family:var(--mono);
    font-size:18px;
    color:rgba(255,255,255,.35);
    align-self:center;
    transition:.2s;
    display:inline !important;
    position:static !important;
    height:auto !important;
    background:transparent !important;
  }
  .nav.open .links a:hover,
  .nav.open .links a.active{color:#9bb2ff !important;padding-left:8px !important}
  .nav.open .links a:hover::after,
  .nav.open .links a.active::after{color:#9bb2ff;transform:translateX(4px)}

  /* contact band inside overlay */
  .nav.open .links::after{
    content:"〒270-1614 千葉県印西市瀬戸2171 ─ TEL 0476-98-0519";
    display:block;
    margin-top:auto;
    padding-top:48px;
    font-family:var(--jp);
    font-size:12px;
    letter-spacing:.04em;
    color:rgba(255,255,255,.5);
    font-weight:500;
  }

  /* hamburger button needs to sit ABOVE the overlay */
  .nav-toggle{position:relative;z-index:60}
  .nav.open .nav-toggle{border-color:#fff;background:transparent}
  .nav.open .nav-toggle span{background:#fff}

  /* When open, lock body scroll */
  .nav.open ~ *{pointer-events:none}
}
body:has(.nav.open){overflow:hidden}

/* ─────────────── ROUND 18 — PREMIUM HAMBURGER OVERLAY ─────────────── */
/* Hide overlay extras on desktop */
.nav .links .overlay-head,
.nav .links .overlay-foot{display:none}

@media (max-width: 1100px){
  /* Reset counter increment exclusion */
  .nav.open .links{padding:32px 32px 40px !important;display:flex !important;flex-direction:column !important}

  /* Overlay header with logo */
  .nav.open .links .overlay-head{
    display:flex !important;
    flex-direction:column;
    gap:24px;
    padding:8px 0 40px;
    border-bottom:1px solid rgba(255,255,255,.08);
    margin-bottom:32px;
  }
  .nav.open .links .overlay-logo{
    height:44px;
    width:auto;
    display:block;
  }
  .nav.open .links .overlay-tag{
    font-family:var(--jp);
    font-size:28px;
    font-weight:800;
    letter-spacing:-0.01em;
    line-height:1.3;
    color:#fff;
    margin:0;
  }
  .nav.open .links .overlay-tag br{display:block}

  /* No counter or arrow on header/footer wrappers */
  .nav.open .links .overlay-head::before,
  .nav.open .links .overlay-head::after,
  .nav.open .links .overlay-foot::before,
  .nav.open .links .overlay-foot::after{content:none !important;display:none !important}

  /* Premium menu item refinement */
  .nav.open .links > a{
    font-size:clamp(24px, 5vw, 32px) !important;
    padding:20px 0 !important;
  }

  /* Footer block inside overlay */
  .nav.open .links .overlay-foot{
    display:flex !important;
    flex-direction:column;
    gap:24px;
    margin-top:auto;
    padding-top:40px;
  }
  .nav.open .links .overlay-cta{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    background:var(--blue);
    color:#fff !important;
    font-family:var(--jp);
    font-size:18px;
    font-weight:700;
    letter-spacing:.02em;
    padding:22px 28px;
    border:none !important;
    transition:.2s;
    width:100%;
  }
  .nav.open .links .overlay-cta:hover{background:#fff;color:var(--blue) !important}
  .nav.open .links .overlay-cta::before,
  .nav.open .links .overlay-cta::after{content:none !important;display:none !important;counter-increment:none !important}
  .nav.open .links .overlay-cta span{
    font-family:var(--mono);
    font-size:20px;
    font-weight:700;
  }

  .nav.open .links .overlay-info{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding-top:8px;
  }
  .nav.open .links .overlay-info .addr{
    font-family:var(--jp);
    font-size:13px;
    color:rgba(255,255,255,.55);
    letter-spacing:.02em;
    font-weight:500;
  }
  .nav.open .links .overlay-info .tel{
    font-family:var(--jp);
    font-size:13px;
    color:rgba(255,255,255,.7);
    letter-spacing:.02em;
    font-weight:500;
    display:inline-flex;
    align-items:baseline;
    gap:6px;
    padding:0 !important;
    border:none !important;
  }
  .nav.open .links .overlay-info .tel b{
    font-family:var(--sans);
    font-size:22px;
    font-weight:700;
    color:#fff;
    letter-spacing:-0.01em;
  }
  .nav.open .links .overlay-info .tel span{
    font-size:12px;
    color:rgba(255,255,255,.45);
  }
  .nav.open .links .overlay-info .tel::before,
  .nav.open .links .overlay-info .tel::after{content:none !important;display:none !important;counter-increment:none !important}

  /* Override the old auto-content address line — replaced by overlay-foot */
  .nav.open .links::after{content:none !important;display:none !important}

  /* Subtle gradient backdrop for premium feel */
  .nav.open .links{
    background:
      radial-gradient(80% 50% at 100% 0%, rgba(155,178,255,.10) 0%, transparent 60%),
      radial-gradient(60% 40% at 0% 100%, rgba(155,178,255,.06) 0%, transparent 60%),
      #0a0a0c !important;
  }
}
@media (max-width: 480px){
  .nav.open .links{padding:24px 20px 32px !important}
  .nav.open .links .overlay-tag{font-size:24px}
  .nav.open .links .overlay-cta{font-size:16px;padding:18px 22px}
  .nav.open .links .overlay-cta span{font-size:18px}
}

/* ─────────────── ROUND 19 — DESKTOP お問い合わせ PROMINENCE ─────────────── */
@media (min-width: 1101px){
  .nav .links a[data-comment-anchor="fdfa938f3c-a"]{
    background:var(--blue);
    color:#fff !important;
    padding:12px 22px !important;
    font-weight:700 !important;
    letter-spacing:.04em !important;
    margin-left:8px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    transition:.2s;
    border:1.5px solid var(--blue);
  }
  .nav .links a[data-comment-anchor="fdfa938f3c-a"]::before{
    content:"";
    display:inline-block;
    width:6px;height:6px;
    background:#fff;
    transform:rotate(45deg);
    margin-right:4px;
  }
  .nav .links a[data-comment-anchor="fdfa938f3c-a"]::after{
    content:"→" !important;
    position:static !important;
    right:auto !important;
    height:auto !important;
    background:transparent !important;
    color:#fff !important;
    font-family:var(--mono);
    font-size:14px;
    font-weight:700;
    display:inline !important;
    transition:transform .2s;
  }
  .nav .links a[data-comment-anchor="fdfa938f3c-a"]:hover{
    background:var(--ink);
    border-color:var(--ink);
    color:#fff !important;
  }
  .nav .links a[data-comment-anchor="fdfa938f3c-a"]:hover::after{
    transform:translate(2px,-2px);
  }
}

/* ─────────────── ROUND 20 — OVERLAY POLISH (logo visible, TEL horizontal) ─────────────── */
@media (max-width: 1100px){
  /* Logo on dark bg — invert dark-on-cream original to white */
  .nav.open .links .overlay-logo{
    filter:invert(1) brightness(1.6) contrast(1.05);
    height:36px !important;
  }

  /* TEL row: force horizontal layout, override the big !important on .links a */
  .nav.open .links .overlay-info .tel{
    display:flex !important;
    flex-direction:row !important;
    align-items:baseline !important;
    flex-wrap:wrap !important;
    gap:10px !important;
    font-size:14px !important;
    padding:0 !important;
    border:none !important;
    background:transparent !important;
    line-height:1.4 !important;
    width:auto !important;
  }
  .nav.open .links .overlay-info .tel .lbl{
    font-family:var(--jp);
    font-size:11px !important;
    letter-spacing:.08em;
    font-weight:600;
    color:rgba(255,255,255,.55);
    padding:3px 8px;
    border:1px solid rgba(255,255,255,.18);
  }
  .nav.open .links .overlay-info .tel b{
    font-family:var(--sans) !important;
    font-size:24px !important;
    font-weight:700 !important;
    letter-spacing:-0.01em !important;
    color:#fff !important;
    line-height:1 !important;
  }
  .nav.open .links .overlay-info .tel .hrs{
    font-family:var(--jp);
    font-size:12px !important;
    color:rgba(255,255,255,.45) !important;
    font-weight:500 !important;
    margin-left:4px;
  }
  /* belt-and-braces: block residual ::before/::after on tel */
  .nav.open .links .overlay-info .tel::before,
  .nav.open .links .overlay-info .tel::after{content:none !important;display:none !important}
}

/* ─────────────── ROUND 21 — OVERLAY TOP PADDING + LOGO VISIBILITY ─────────────── */
@media (max-width: 1100px){
  /* Push content well below the X close button (nav is 72px tall) */
  .nav.open .links{padding:96px 32px 48px !important}
  .nav.open .links .overlay-head{
    padding:0 0 32px !important;
    margin-bottom:24px !important;
  }

  /* Logo: stronger filter + force visible */
  .nav.open .links .overlay-logo{
    filter:invert(1) brightness(1.9) contrast(1.05) !important;
    height:36px !important;
    width:auto !important;
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
  }
}
@media (max-width: 480px){
  .nav.open .links{padding:88px 20px 40px !important}
  .nav.open .links .overlay-logo{height:30px !important}
}

/* ─────────────── ROUND 22 — OVERLAY HEAD FLEX SHRINK FIX ─────────────── */
@media (max-width: 1100px){
  /* prevent flex from collapsing the head; ensure it's always at top */
  .nav.open .links{justify-content:flex-start !important}
  .nav.open .links > *{flex-shrink:0 !important}
  .nav.open .links .overlay-head{
    order:-1 !important;
    flex-shrink:0 !important;
  }
}

/* ─────────────── ROUND 23 — OVERLAY LOGO ASPECT FIX ─────────────── */
@media (max-width: 1100px){
  .nav.open .links .overlay-logo{
    align-self:flex-start !important;
    width:auto !important;
    max-width:200px !important;
  }
  /* same protection for the tagline so it stays left-aligned */
  .nav.open .links .overlay-tag{align-self:flex-start !important}
}

/* ─────────────── ROUND 24 — DROPDOWN NAV + ACCORDION HAMBURGER + FOOTER 4COL ─────────────── */
/* ========== DESKTOP ========== */
@media (min-width: 1101px){
  .nav .links{position:relative;gap:32px !important}
  .nav .links .nav-item{position:relative;display:flex;align-items:center}
  .nav .links .nav-item .nav-toplink{
    font-family:var(--jp);
    font-size:14px;
    letter-spacing:.06em;
    font-weight:500;
    color:var(--ink);
    padding:10px 0;
    display:inline-flex;align-items:center;gap:6px;
    cursor:pointer;
    position:relative;
  }
  .nav .links .nav-item .nav-toplink .caret{
    font-size:9px;
    color:var(--gray);
    transition:transform .2s;
  }
  .nav .links .nav-item:hover .nav-toplink .caret,
  .nav .links .nav-item:focus-within .nav-toplink .caret{
    transform:rotate(-180deg);
    color:var(--blue);
  }
  .nav .links .nav-item .nav-toplink::after{
    content:"";
    position:absolute;
    left:0;right:100%;
    bottom:2px;
    height:1px;
    background:var(--blue);
    transition:right .35s cubic-bezier(.65,.05,.36,1);
  }
  .nav .links .nav-item:hover .nav-toplink,
  .nav .links .nav-item:focus-within .nav-toplink{color:var(--blue)}
  .nav .links .nav-item:hover .nav-toplink::after,
  .nav .links .nav-item:focus-within .nav-toplink::after{right:14px}

  /* dropdown */
  .nav .links .nav-sub{
    position:absolute;
    top:100%;
    left:50%;
    transform:translateX(-50%) translateY(-4px);
    min-width:220px;
    background:var(--bg);
    border:1px solid var(--ink);
    padding:8px 0;
    display:flex;
    flex-direction:column;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
    z-index:25;
    box-shadow:0 16px 32px rgba(0,0,0,.08);
  }
  .nav .links .nav-item:hover .nav-sub,
  .nav .links .nav-item:focus-within .nav-sub{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(-50%) translateY(0);
    transition:opacity .2s ease, transform .2s ease;
  }
  .nav .links .nav-sub a{
    font-family:var(--jp);
    font-size:14px;
    letter-spacing:.02em;
    font-weight:500;
    color:var(--ink);
    padding:12px 24px;
    white-space:nowrap;
    transition:.15s;
    text-align:left;
    position:relative;
  }
  .nav .links .nav-sub a::after{display:none !important}
  .nav .links .nav-sub a:hover{background:#f4f2ec;color:var(--blue);padding-left:30px}
}

/* ========== TABLET / MOBILE OVERLAY ========== */
@media (max-width: 1100px){
  .nav.open .links .caret{display:none !important}
  .nav.open .links{counter-reset:navitem !important}

  /* counter: top-level items + has-sub parents */
  .nav.open .links > a,
  .nav.open .links > .nav-item > .nav-toplink{counter-increment:navitem}
  .nav.open .links > a::before,
  .nav.open .links > .nav-item > .nav-toplink::before{
    content:counter(navitem, decimal-leading-zero);
    counter-increment:navitem;
    font-family:var(--mono);
    font-size:12px;
    color:rgba(155,178,255,.7);
    letter-spacing:.1em;
    font-weight:500;
    min-width:36px;
    flex-shrink:0;
    align-self:center;
  }
  /* don't double-count */
  .nav.open .links > a::before,
  .nav.open .links > .nav-item > .nav-toplink::before{counter-increment:none}

  /* .nav-item container in overlay */
  .nav.open .links .nav-item{
    display:flex !important;
    flex-direction:column !important;
    border-bottom:1px solid rgba(255,255,255,.08);
    padding:0 !important;
    background:transparent !important;
    align-items:stretch !important;
  }
  .nav.open .links .nav-item .nav-toplink{
    font-family:var(--jp) !important;
    font-size:clamp(24px, 5vw, 32px) !important;
    font-weight:800 !important;
    letter-spacing:-0.01em !important;
    color:#fff !important;
    padding:22px 0 6px !important;
    border:none !important;
    display:flex !important;
    align-items:baseline !important;
    gap:24px !important;
    background:transparent !important;
  }
  .nav.open .links .nav-item .nav-toplink::after{
    content:"" !important;
    display:none !important;
  }

  /* sub items inside overlay */
  .nav.open .links .nav-sub{
    display:flex !important;
    flex-direction:column;
    padding:4px 0 18px 60px;
    gap:0;
    position:static !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;
    min-width:0;
  }
  .nav.open .links .nav-sub a{
    font-family:var(--jp) !important;
    font-size:16px !important;
    font-weight:500 !important;
    color:rgba(255,255,255,.7) !important;
    padding:10px 0 !important;
    border:none !important;
    background:transparent !important;
    letter-spacing:.02em !important;
    display:flex !important;
    align-items:center;
    gap:14px;
  }
  .nav.open .links .nav-sub a::before{
    content:"" !important;
    display:inline-block !important;
    width:16px;
    height:1px;
    background:rgba(155,178,255,.5);
    flex-shrink:0;
    min-width:0 !important;
    counter-increment:none !important;
    margin:0 !important;
    align-self:center !important;
  }
  .nav.open .links .nav-sub a::after{
    content:"" !important;
    display:none !important;
  }
  .nav.open .links .nav-sub a:hover{
    color:#9bb2ff !important;
    padding-left:6px !important;
  }
}

/* ========== FOOTER 4-COL ========== */
.foot-grid .cols{grid-template-columns:repeat(4, 1fr) !important;gap:28px !important}
@media (max-width: 1100px){
  .foot-grid .cols{grid-template-columns:repeat(2, 1fr) !important;gap:32px 24px !important}
}
@media (max-width: 480px){
  .foot-grid .cols{grid-template-columns:1fr !important}
}

/* ─────────────── ROUND 29 — IMAGE-DRIVEN INDUSTRIES + WHY US ─────────────── */

/* INDUSTRIES: image-led grid */
.indus{
  background:var(--bg);
  padding:140px 32px;
  border-top:1px solid var(--ink);
}
.indus-wrap{max-width:1600px;margin:0 auto}
.indus-head{margin-bottom:72px;max-width:900px}
.indus-h2{
  font-family:var(--jp);
  font-size:clamp(48px,5.5vw,84px);
  font-weight:900;letter-spacing:-0.015em;line-height:1.15;
  color:var(--ink);
  text-wrap:pretty;word-break:auto-phrase;
}
.indus-h2 em{font-style:normal;color:var(--blue);font-weight:900}
.indus-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:32px 24px;
}
.indus-card{
  display:flex;flex-direction:column;
}
.indus-img{
  aspect-ratio:4/3;
  background-size:cover;background-position:center;background-color:#0e0f12;
  position:relative;
  border:1px solid var(--line-soft);
  overflow:hidden;
}
.indus-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(15,15,18,.15) 0%,rgba(15,15,18,.55) 100%);
}
.indus-tag{
  position:absolute;left:14px;top:14px;
  font-family:var(--mono);font-size:11px;
  color:#fff;background:rgba(0,0,0,.55);
  padding:4px 10px;
  letter-spacing:.14em;
  z-index:1;
  font-weight:500;
}
.indus-meta{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-top:18px;
  border-bottom:1px solid var(--line-soft);
  padding-bottom:10px;
}
.indus-meta h3{
  font-family:var(--jp);font-size:20px;font-weight:700;
  letter-spacing:-0.005em;color:var(--ink);
  margin:0;line-height:1.3;
}
.indus-meta .c{
  font-family:var(--mono);font-size:11px;
  color:var(--blue);font-weight:600;
  letter-spacing:.1em;
}
.indus-card p{
  margin-top:10px;
  font-family:var(--jp);font-size:13px;
  line-height:1.7;color:var(--gray);
  font-weight:400;
}
@media (max-width:1280px){
  .indus-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .indus{padding:96px 24px}
  .indus-grid{grid-template-columns:repeat(2,1fr);gap:24px 16px}
  .indus-h2{font-size:clamp(36px,5vw,56px)}
  .indus-meta h3{font-size:17px}
}
@media (max-width:520px){
  .indus-grid{grid-template-columns:1fr}
}

/* WHY US: add image header to each card */
.why-card .why-img{
  aspect-ratio:4/3;
  background-size:cover;background-position:center;background-color:#0e0f12;
  margin:-36px -28px 28px;
  border-bottom:1px solid var(--line-soft);
  position:relative;
}
.why-card .why-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(15,15,18,.15) 100%);
}
.why-card .why-n{
  margin-bottom:18px;
}
@media (max-width:1280px){
  .why-card .why-img{margin:-32px -24px 24px;aspect-ratio:16/9}
}
@media (max-width:720px){
  .why-card .why-img{margin:0 0 20px;aspect-ratio:16/9}
}

/* ─────────────── ROUND 28 — NEW DOC-DRIVEN SECTIONS (Numbers, Why Us, Partners, t-cta) ─────────────── */

/* Triptych card CTA (anchor at bottom of each card) */
.t-card{position:relative}
.t-card .t-cta{
  display:inline-flex;align-items:center;gap:10px;
  margin:0 28px 32px;
  padding:14px 0;
  border-top:1px solid var(--line-soft);
  font-family:var(--jp);font-size:14px;font-weight:600;
  color:var(--ink);
  letter-spacing:.02em;
  transition:.2s;
}
.t-card .t-cta .ar{font-family:var(--mono);font-size:14px;color:var(--blue);transition:transform .2s}
.t-card .t-cta:hover{color:var(--blue)}
.t-card .t-cta:hover .ar{transform:translateX(4px)}

/* NUMBERS section */
.numbers{
  background:var(--ink);color:var(--bg);
  padding:140px 32px;
  border-top:1px solid var(--ink);
}
.numbers-wrap{max-width:1600px;margin:0 auto}
.numbers .head-kicker{color:rgba(255,255,255,.55);margin-bottom:28px}
.numbers .head-kicker .n,.numbers .head-kicker .en{color:#fff}
.numbers-h2{
  font-family:var(--jp);
  font-size:clamp(56px,6vw,88px);
  font-weight:900;letter-spacing:-0.015em;line-height:1.1;
  color:#fff;
  margin-bottom:80px;
  max-width:18ch;
  text-wrap:pretty;word-break:auto-phrase;
}
.numbers-h2 em{font-style:normal;color:#9bb2ff;font-weight:900}
.numbers-grid{
  display:grid;grid-template-columns:repeat(5,1fr);
  gap:0;
  border-top:1px solid rgba(255,255,255,.18);
}
.num-cell{
  padding:40px 28px 32px;
  border-right:1px solid rgba(255,255,255,.18);
  display:flex;flex-direction:column;justify-content:space-between;
  min-height:240px;
}
.num-cell:last-child{border-right:0}
.num-lbl{
  font-family:var(--mono);font-size:10px;
  letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.6);
  margin-bottom:24px;
}
.num-v{
  font-family:var(--sans);
  font-size:clamp(64px,5.5vw,96px);
  font-weight:700;letter-spacing:-0.04em;
  line-height:0.95;
  color:#fff;
  font-feature-settings:'tnum';
}
.num-v .num-u{
  font-size:0.32em;font-weight:500;
  color:#9bb2ff;
  letter-spacing:-0.01em;
  margin-left:6px;vertical-align:0.7em;
}
.num-v .num-u small{font-size:0.7em;color:rgba(255,255,255,.55)}
.num-note{
  margin-top:18px;
  font-family:var(--jp);font-size:12px;
  color:rgba(255,255,255,.55);
  line-height:1.55;
}
@media (max-width:1100px){
  .numbers{padding:96px 32px}
  .numbers-h2{font-size:clamp(40px,5vw,64px);margin-bottom:48px}
  .numbers-grid{grid-template-columns:repeat(2,1fr)}
  .num-cell{min-height:200px;padding:32px 22px 24px}
  .num-cell:nth-child(2){border-right:0}
  .num-cell:nth-child(odd){border-right:1px solid rgba(255,255,255,.18)}
  .num-cell:nth-child(-n+4){border-bottom:1px solid rgba(255,255,255,.18)}
}
@media (max-width:720px){
  .numbers-grid{grid-template-columns:1fr}
  .num-cell{border-right:0 !important;border-bottom:1px solid rgba(255,255,255,.18) !important;min-height:180px}
  .num-cell:last-child{border-bottom:0 !important}
}

/* WHY US section */
.why{
  background:var(--bg);
  padding:140px 32px;
  border-top:1px solid var(--ink);
}
.why-wrap{max-width:1600px;margin:0 auto}
.why-h2{
  font-family:var(--jp);
  font-size:clamp(56px,6vw,88px);
  font-weight:900;letter-spacing:-0.015em;line-height:1.1;
  color:var(--ink);
  margin-bottom:80px;
  max-width:22ch;
  text-wrap:pretty;word-break:auto-phrase;
}
.why-h2 em{font-style:normal;color:var(--blue);font-weight:900}
.why-grid{
  display:grid;grid-template-columns:repeat(5,1fr);
  gap:0;
  border-top:1px solid var(--ink);
}
.why-card{
  padding:36px 28px;
  border-right:1px solid var(--line-soft);
  display:flex;flex-direction:column;
}
.why-card:last-child{border-right:0}
.why-card .why-n{
  font-family:var(--mono);
  font-size:11px;letter-spacing:.18em;
  color:var(--blue);font-weight:600;
  margin-bottom:48px;
}
.why-card h3{
  font-family:var(--jp);
  font-size:24px;font-weight:700;
  letter-spacing:-0.005em;line-height:1.4;
  margin-bottom:18px;
  color:var(--ink);
  text-wrap:pretty;word-break:auto-phrase;
}
.why-card p{
  font-family:var(--jp);font-size:13px;
  line-height:1.85;color:var(--ink2);
  font-weight:400;
}
@media (max-width:1280px){
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .why-card{border-bottom:1px solid var(--line-soft);padding:32px 24px}
  .why-card:nth-child(2){border-right:0}
  .why-card:nth-child(even){border-right:0}
  .why-card:last-child{grid-column:1/-1;border-bottom:0}
}
@media (max-width:720px){
  .why{padding:96px 24px}
  .why-h2{font-size:clamp(36px,5vw,56px);margin-bottom:48px}
  .why-grid{grid-template-columns:1fr}
  .why-card{border-right:0 !important;padding:28px 0}
  .why-card:last-child{border-bottom:0}
}

/* WORKS section CTA */
.works .works-cta{
  margin-top:64px;
  display:flex;justify-content:center;
}

/* PARTNERS section */
.partners{
  background:var(--bg);
  padding:96px 32px;
  border-top:1px solid var(--line-soft);
}
.partners-wrap{max-width:1600px;margin:0 auto}
.partners-h2{
  font-family:var(--jp);
  font-size:clamp(40px,4vw,60px);
  font-weight:700;letter-spacing:-0.01em;line-height:1.15;
  color:var(--ink);
  margin-bottom:48px;
}
.partners-h2 em{font-style:normal;color:var(--blue);font-weight:700}
.partners-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}
.partner{
  padding:36px 24px;
  border-right:1px solid var(--line-soft);
  display:flex;flex-direction:column;justify-content:center;
  min-height:140px;
  transition:.2s;
}
.partner:last-child{border-right:0}
.partner-name{
  font-family:var(--jp);font-size:20px;font-weight:700;
  letter-spacing:-0.005em;color:var(--ink);
}
.partner-cat{
  margin-top:8px;
  font-family:var(--mono);font-size:10px;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--gray);
}
.partner:hover{background:var(--bg2)}
@media (max-width:900px){
  .partners-grid{grid-template-columns:repeat(2,1fr)}
  .partner{border-right:1px solid var(--line-soft)}
  .partner:nth-child(even){border-right:0}
  .partner:nth-child(-n+2){border-bottom:1px solid var(--line-soft)}
}

/* ─────────────── ROUND 27 — EDITORIAL ENGLISH TYPOGRAPHY (REFINED) ─────────────── */
/* Quiet, confident pairing: tiny mono kicker + italic serif tagline below h2 */
.head-kicker{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--mono);
  font-size:10px; font-weight:400;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--gray);
  margin-bottom:24px;
}
.head-kicker .n{color:var(--ink); font-weight:500; font-feature-settings:'tnum'}
.head-kicker .bar{display:none}
.head-kicker .en{color:var(--ink); font-weight:400}

.head-en{
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:clamp(20px, 1.9vw, 28px);
  letter-spacing:-0.005em;
  line-height:1.45;
  color:var(--ink2);
  margin-top:22px;
  max-width:42ch;
  font-feature-settings:'liga','dlig';
}
.head-en em{font-style:italic; color:var(--blue); font-weight:400}

/* On dark sections */
.cta .head-kicker{color:rgba(255,255,255,.55)}
.cta .head-kicker .n,.cta .head-kicker .en{color:#fff}
.cta .head-en{color:rgba(255,255,255,.78)}
.cta .head-en em{color:#9bb2ff}

.feat .head h2 .ja,
.equip .head h2 .ja{margin-top:14px}
.triptych .head .label{grid-column:1/-1; margin-bottom:-8px}

@media (max-width: 1100px){
  .head-en{font-size:18px; margin-top:16px; line-height:1.5}
  .head-kicker{font-size:9.5px; margin-bottom:18px; gap:14px}
}

/* ─────────────── ROUND 26 — SUBTLE EDGE LINES (cards + section seams) ─────────────── */
/* Work cards: outline each tile so the photo grid feels gridded, not bleed-y */
.work .img{
  border:1px solid var(--line-soft);
}
.work{
  padding-bottom:14px;
  border-bottom:1px solid var(--line-soft);
}
.work.big{border-bottom:1px solid var(--line-soft)}
/* Drop the bottom border on dark photo so it doesn't compete on the image; line stays under the meta */
.work .img{border-color:rgba(255,255,255,.10)}

/* Company info table */
.msg.company .co-table{
  margin-top:32px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line-soft);
  border:1px solid var(--line-soft);
  font-family:var(--jp);
}
.msg.company .co-table > div{
  background:var(--bg);
  display:grid;
  grid-template-columns:96px 1fr;
  align-items:baseline;
  padding:14px 18px;
  gap:14px;
}
.msg.company .co-table dt{
  font-family:var(--mono);
  font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gray);
  font-weight:500; padding-top:3px;
}
.msg.company .co-table dd{
  margin:0;
  font-size:15px; font-weight:600; color:var(--ink);
  line-height:1.55;
}
.msg.company .co-table dd small{
  display:block;
  font-family:var(--mono);
  font-size:10px; font-weight:400;
  color:var(--gray);
  letter-spacing:.06em;
  margin-top:3px;
  text-transform:none;
}
.msg.company .text .body{font-family:var(--jp);font-size:15px;line-height:1.85;color:var(--ink2);margin-top:24px}
.msg.company .text h2{font-size:46px;line-height:1.2}
.msg.company .text .sign{margin-top:32px}
.msg.company .photo .lbl{color:#bcc4d1}
.msg.company .photo .lbl-b{color:#9aa3b4}
@media (max-width: 1100px){
  .msg.company .co-table{grid-template-columns:1fr}
  .msg.company .co-table > div{grid-template-columns:88px 1fr; padding:12px 14px}
  .msg.company .co-table dd{font-size:14px}
  .msg.company .text h2{font-size:34px}
}

/* Capability cards: light border around the image area to match work cards */
.cap-card .img{border:1px solid rgba(255,255,255,.10)}

/* Equipment cards: thin frame around the image */
.eq .img{border:1px solid rgba(255,255,255,.10)}

/* Message portrait: subtle frame */
.msg .photo{border:1px solid rgba(255,255,255,.10)}

/* Hero feature image: faint inner frame */
.hero .feature{border:1px solid rgba(255,255,255,.08)}

/* Long feature drawing: it already has a border, just soften redundancy */
.feat .left{border-color:#1a2a4a}

/* Triptych: add a faint top seam so it reads as a distinct band */
.triptych{border-top:1px solid var(--line-soft)}
.t-card{border-color:var(--line-soft)}

/* Big Japanese word over the triptych card image */
.t-card .img{display:flex;align-items:flex-end}
.t-card .img .img-word{
  position:relative; z-index:2;
  font-family:var(--jp);
  font-weight:900;
  font-size:clamp(56px, 6vw, 96px);
  letter-spacing:-0.02em;
  line-height:0.95;
  color:#fff;
  padding:0 22px 18px;
  text-shadow:0 2px 18px rgba(0,0,0,.35);
}
.t-card .img::after{background:linear-gradient(180deg,transparent 35%,rgba(15,15,18,.55) 100%) !important}

/* Stat grid in long feature: dividers between cells + outer frame */
.feat .right .stat-grid{
  border:1px solid var(--line-soft);
  background:var(--line-soft);
  gap:1px !important;
  padding-top:0 !important;
}
.feat .right .stat-grid > div{
  background:var(--bg);
  padding:20px 20px !important;
  border:0 !important;
}

/* Industries + materials: visible vertical seam between the two columns on desktop */
@media (min-width: 1101px){
  .sec .grid{position:relative}
  .sec .grid::before{
    content:"";
    position:absolute;
    top:0;bottom:0;
    left:calc((1.05 / 2.05) * 100% + 12px);
    width:1px;
    background:var(--line-soft);
  }
}

/* Materials grid: use border-collapse style with line-soft (matches rest of page) */
.materials .mats{
  background:transparent !important;
  gap:0 !important;
  border:1px solid var(--line-soft);
}
.mat{
  background:var(--bg);
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  margin:-1px -1px 0 0;   /* collapse with outer border so no double-line */
}
.mat.h{background:var(--ink);border-color:var(--line-soft)}

/* News cards: already bordered, but bump contrast a hair so they pop from the bg */
.news-card{border-color:var(--line-soft) !important}

/* Masthead row already has a soft bottom rule; add subtle cell dividers */
.mast .row{border-bottom:1px solid var(--line-soft)}

/* CTA section: keep dark, but add a faint top rule to separate from dispatch */
.dispatch{border-bottom:1px solid var(--line-soft)}

/* Subtle horizontal seam at the top of each light section to clarify hand-offs.
   We already use border-top:1px solid var(--ink) on big sections; that stays.
   Add a 1px var(--line-soft) just above the head of those that don't have it. */
.triptych .head,.works .head,.feat .head,.sec .head,.equip .head{
  /* spacing only — heads themselves don't need a rule because section border already handles it */
}

/* ─────────────── ROUND 25 — DESKTOP NAV ALIGNMENT FIX ─────────────── */
@media (min-width: 1101px){
  /* Nullify the legacy "last <a> = outlined button" rule for sub-menu items
     and any other inner anchors (sub-menus end with an <a> that was inheriting
     the boxed border). */
  .nav .links .nav-sub a,
  .nav .links .nav-item a{
    background:transparent !important;
    border:none !important;
    padding:12px 24px !important;
    font-weight:500 !important;
    color:var(--ink);
  }
  .nav .links .nav-sub a:hover{background:#f4f2ec !important;color:var(--blue);padding-left:30px !important}
  .nav .links .nav-item .nav-toplink{padding:10px 0 !important;font-weight:500 !important}

  /* Normalize vertical alignment of all top-level items */
  .nav{align-items:center !important}
  .nav .links{align-items:center !important}
  .nav .links > a,
  .nav .links > .nav-item{
    display:inline-flex !important;
    align-items:center !important;
    height:auto !important;
    line-height:1.4;
  }

  /* Re-apply the お問い合わせ blue CTA (preserves intent, scoped specifically) */
  .nav .links > a[data-comment-anchor="fdfa938f3c-a"]{
    background:var(--blue) !important;
    color:#fff !important;
    padding:12px 22px !important;
    font-weight:700 !important;
    border:1.5px solid var(--blue) !important;
  }
  .nav .links > a[data-comment-anchor="fdfa938f3c-a"]:hover{
    background:var(--ink) !important;
    border-color:var(--ink) !important;
    color:#fff !important;
  }
}

/* ============================================================
 * 追補: ナビ ドロップダウン制御 (page.php 等フォールバック用)
 * ============================================================ */
@media (min-width: 1101px){
  .nav-item{ position: relative; }
  .nav-item .caret{
    display: inline-block; font-size: 9px; color: var(--gray);
    margin-left: 4px; transition: transform .2s; pointer-events: none;
  }
  .nav-item:hover .caret,
  .nav-item:focus-within .caret{ transform: rotate(180deg); color: var(--ink); }
  .nav-sub{
    position: absolute; top: 100%; left: 50%;
    transform: translateX(-50%) translateY(8px);
    min-width: 180px; background: var(--bg);
    border: 1px solid var(--ink); box-shadow: 0 8px 24px rgba(0,0,0,.10);
    padding: 8px; display: flex; flex-direction: column;
    opacity: 0; visibility: hidden;
    transition: opacity .15s, transform .15s, visibility .15s;
    z-index: 100;
  }
  .nav-item:hover .nav-sub,
  .nav-item:focus-within .nav-sub{
    opacity: 1; visibility: visible;
    transform: translateX(-50%) translateY(0);
  }
  .nav-sub a{
    display: block \!important; padding: 10px 16px \!important;
    font-family: var(--jp); font-size: 14px;
    color: var(--ink) \!important; white-space: nowrap;
    transition: background .15s, color .15s;
  }
  .nav-sub a::after{ display: none \!important; }
  .nav-sub a:hover{ background: var(--ink); color: #fff \!important; }
}
