/* Kamata Koumuten · merged build · A plus picks · 10 Nov 2026 */
:root{
  --paper:#F6F2EA; --paper-deep:#EDE6D8; --panel:#FFFFFF;
  --ink:#1E1B17; --soft:#4A443C;
  --green:#016936; --green-deep:#0B4A2B; --orange:#EA5606;
  --line:rgba(30,27,23,.14); --line-strong:rgba(30,27,23,.34);
  --f-min:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --f-go:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;
  --f-num:"Cormorant Garamond","Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --gutter:clamp(20px,5vw,72px); --max:1240px;
  --sec:clamp(76px,11.6vw,176px);
  --ease:cubic-bezier(.22,.7,.2,1);
  --hdr:84px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 16px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-go);font-size:18px;line-height:2;font-weight:400;letter-spacing:.05em;line-break:strict;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4,p,dl,dd,ol,ul,figure,blockquote,table{margin:0;padding:0}
ol,ul{list-style:none}
table{border-collapse:collapse;width:100%}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;letter-spacing:inherit}
.nobr{display:inline-block;white-space:nowrap}
.nw{white-space:nowrap}
h1,h2,h3,h4{font-family:var(--f-min);font-weight:700;letter-spacing:.06em;line-height:1.5;word-break:auto-phrase}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wrap{width:100%;max-width:calc(var(--max) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.num{font-family:var(--f-num);font-variant-numeric:lining-nums;letter-spacing:.01em;font-weight:500}

/* reveal: only when JS is on, 12px rise, once */
.js .rv{opacity:0;transform:translateY(12px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .rv.in{opacity:1;transform:none}

/* ---------- buttons, links, chips ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 30px;font-family:var(--f-go);font-size:17px;font-weight:500;letter-spacing:.08em;line-height:1.2;text-decoration:none;border-radius:2px;border:1px solid transparent;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease)}
.btn svg{width:18px;height:18px;flex:none}
.btn-green{background:var(--green);color:#fff}
.btn-green:hover{background:var(--green-deep)}
.btn-line{border-color:var(--ink);background:rgba(255,255,255,.72);color:var(--ink)}
.btn-line:hover{background:#fff}
.btn-white{background:#fff;color:var(--green-deep)}
.btn-white:hover{background:var(--paper)}
.more{display:inline-flex;align-items:center;gap:12px;font-size:17px;font-weight:500;letter-spacing:.06em;text-decoration:none;color:var(--green-deep);padding:10px 0;border-bottom:1px solid currentColor;line-height:1.5}
.more svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.more:hover svg{transform:translateX(5px)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.tags span{display:inline-block;padding:5px 14px;background:#fff;border:1px solid var(--line-strong);font-size:16px;line-height:1.6;letter-spacing:.04em;white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:8px 10px}
.chip{display:inline-flex;font-size:16px;line-height:1.5;border:1px solid var(--line-strong);background:#fff;white-space:nowrap}
.chip>span{padding:3px 10px;background:var(--paper-deep);color:var(--soft)}
.chip>b{padding:3px 12px;font-weight:500}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:50;height:var(--hdr);display:flex;align-items:center;gap:28px;padding:0 var(--gutter);background:rgba(246,242,234,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s,height .3s var(--ease)}
.hdr.is-down{border-bottom-color:var(--line)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;margin-right:auto;flex:none}
.brand .k{width:36px;height:37px;flex:none}
.brand-name{font-family:var(--f-min);font-weight:700;font-size:26px;letter-spacing:.1em;line-height:1.2;white-space:nowrap}
.brand-name small{font-size:16px;font-weight:700;letter-spacing:.12em;margin-right:.6em;vertical-align:.14em}
.nav{display:flex;align-items:center;gap:4px}
.nav a{display:block;padding:9px 16px;font-size:16px;font-weight:500;letter-spacing:.08em;line-height:1.6;text-decoration:none;border-radius:2px;white-space:nowrap;transition:background .25s}
.nav a:hover{background:rgba(30,27,23,.06)}
.nav a[aria-current="page"]{background:var(--ink);color:var(--paper)}
.hdr-tel{display:flex;flex-direction:column;align-items:flex-end;text-decoration:none;line-height:1.15;white-space:nowrap}
.hdr-tel b{font-family:var(--f-num);font-weight:600;font-size:30px;letter-spacing:.03em;font-variant-numeric:lining-nums}
.hdr-tel span{font-size:16px;color:var(--soft);letter-spacing:.04em}
.hdr .btn{min-height:48px;padding:0 24px;font-size:16px}
.icon-btn{display:none;width:48px;height:48px;align-items:center;justify-content:center;border-radius:2px;flex:none}
.icon-btn svg{width:26px;height:26px}
.menu{position:fixed;inset:0;z-index:49;background:var(--paper);padding:calc(var(--hdr) + 12px) var(--gutter) 36px;display:flex;flex-direction:column;overflow-y:auto;visibility:hidden;opacity:0;transition:opacity .25s,visibility 0s .25s}
.menu.is-open{visibility:visible;opacity:1;transition:opacity .25s}
.menu-links a{display:flex;align-items:center;justify-content:space-between;padding:20px 2px;font-family:var(--f-min);font-weight:700;font-size:26px;letter-spacing:.08em;line-height:1.4;text-decoration:none;border-bottom:1px solid var(--line)}
.menu-links a svg{width:20px;height:20px;color:var(--green)}
.menu-foot{margin-top:auto;padding-top:32px}
.menu-foot .tel{display:block;font-family:var(--f-num);font-weight:600;font-size:46px;line-height:1.1;letter-spacing:.02em;text-decoration:none}
.menu-foot p{font-size:16px;color:var(--soft);margin:4px 0 20px}
.menu-foot .btn{width:100%}
@media (max-width:1180px){
  .hdr-tel{display:none}
}
@media (max-width:980px){
  :root{--hdr:68px}
  .nav,.hdr .hdr-cta{display:none}
  .icon-btn{display:inline-flex}
  .hdr{gap:4px}
  .brand{gap:10px}
  .brand .k{width:30px;height:31px}
  .brand-name{font-size:22px;letter-spacing:.06em}
  .brand-name small{letter-spacing:.06em;margin-right:.4em}
}
@media (max-width:360px){.brand-name small{display:none}}

/* ---------- section scaffolding ---------- */
.sec{padding-block:var(--sec)}
.sec-tint{background:var(--paper-deep)}
.sec-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:24px clamp(32px,6vw,96px);align-items:end;margin-bottom:clamp(36px,4vw,56px)}
.h2{font-size:clamp(30px,3.3vw,46px);line-height:1.45;letter-spacing:.08em}
.lede{font-size:clamp(17px,1.35vw,19px);line-height:2.05;color:var(--soft);max-width:34em}
.cap{font-size:16px;line-height:1.7;color:var(--soft);letter-spacing:.04em;margin-top:12px}
.ph{background:var(--paper-deep);overflow:hidden}
.ph img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){
  body{font-size:17px}
  .sec-head{grid-template-columns:1fr;gap:16px;align-items:start}
}

/* ---------- hero (home) ---------- */
.hero{position:relative}
.hero-stage{position:relative;height:clamp(540px,calc(100vh - var(--hdr) - 112px),820px);overflow:hidden;background:#9fc3da}
.hero-film,.hero-film img,.hero-film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-film video{opacity:0;transition:opacity .8s}
.hero-film video.is-on{opacity:1}
.hero-film .m{display:none}
.hero-wash{position:absolute;inset:0;background:linear-gradient(100deg,rgba(246,242,234,.9) 0%,rgba(246,242,234,.66) 30%,rgba(246,242,234,0) 58%)}
.hero-in{position:relative;height:100%;display:flex;align-items:flex-start}
.hero-copy{padding-top:clamp(48px,8.5vh,104px);max-width:660px;min-width:0}
.hero-kicker{display:flex;align-items:center;gap:14px;font-size:17px;font-weight:500;letter-spacing:.2em;line-height:1.6;margin-bottom:18px}
.hero-kicker::before{content:"";width:40px;height:1px;background:var(--ink)}
.hero h1{font-weight:900;font-size:clamp(44px,6vw,88px);line-height:1.22;letter-spacing:.07em;white-space:nowrap}
.hero-lead{margin-top:26px;font-size:clamp(17px,1.4vw,20px);line-height:2.05;font-weight:500;max-width:31em}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero-cta .tel{font-family:var(--f-num);font-weight:600;font-size:25px;letter-spacing:.04em;font-variant-numeric:lining-nums}
.js .hero-copy>*{opacity:0;transform:translateY(12px);animation:rise .9s var(--ease) forwards}
.js .hero-copy>*:nth-child(2){animation-delay:.08s}
.js .hero-copy>*:nth-child(3){animation-delay:.18s}
.js .hero-copy>*:nth-child(4){animation-delay:.28s}
@keyframes rise{to{opacity:1;transform:none}}
/* the data sill */
.sill-wrap{position:relative;z-index:2;margin-top:-84px;display:flex;justify-content:flex-end}
.sill{display:grid;grid-template-columns:repeat(3,auto);background:var(--panel);box-shadow:0 30px 60px -34px rgba(30,27,23,.4),0 1px 0 rgba(30,27,23,.06);padding:30px 14px 26px}
.sill>div{padding:0 clamp(26px,3.2vw,50px);border-left:1px solid var(--line)}
.sill>div:first-child{border-left:0}
.sill dt{font-size:16px;font-weight:500;letter-spacing:.14em;color:var(--soft);line-height:1.6;white-space:nowrap}
.sill dd{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.sill .v{font-family:var(--f-num);font-weight:500;font-size:clamp(64px,6.4vw,96px);line-height:1;letter-spacing:0;font-variant-numeric:lining-nums;display:inline-flex}
.sill small{font-family:var(--f-min);font-weight:700;font-size:20px;letter-spacing:.08em}
.sill dd.accent .v{color:var(--green)}
.odo{display:inline-block;height:1em;overflow:hidden;line-height:1}
.odo>i{display:block;font-style:normal;transition:transform 1.5s cubic-bezier(.2,.75,.15,1)}
.odo>i>em{display:block;font-style:normal;height:1em;line-height:1}
@media (max-width:760px){
  .hero-stage{height:min(74svh,640px);min-height:520px}
  .hero-film .d{display:none}.hero-film .m{display:block}
  .hero-wash{background:linear-gradient(180deg,rgba(246,242,234,.88) 0%,rgba(246,242,234,.72) 38%,rgba(246,242,234,0) 62%)}
  .hero-copy{padding-top:34px}
  .hero h1{font-size:min(10.2vw,56px);letter-spacing:.05em}
  .hero-kicker{letter-spacing:.14em;margin-bottom:10px}
  .hero-kicker::before{width:26px}
  .hero-lead{margin-top:16px;line-height:1.9}
  .hero-cta{margin-top:22px}
  .hero-cta{gap:10px}
  .hero-cta .btn{padding:0 16px;min-height:52px;gap:8px}
  .hero-cta .tel{font-size:23px;letter-spacing:.02em}
  .sill-wrap{margin-top:-44px;display:block}
  .sill{grid-template-columns:1fr;padding:6px 22px}
  .sill>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 0 14px;border-left:0;border-top:1px solid var(--line)}
  .sill>div:first-child{border-top:0}
  .sill .v{font-size:54px}
}

/* ---------- home: about intro + chronicle ---------- */
.intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px clamp(40px,7vw,112px);align-items:center}
.kicker{font-size:17px;font-weight:500;letter-spacing:.12em;color:var(--green-deep);line-height:1.7;margin-bottom:18px}
.intro .h2{font-size:clamp(34px,4.2vw,60px);font-weight:700;line-height:1.4}
.intro .lede{margin-top:28px}
.intro .more{margin-top:30px}
.intro-fig{margin:0}
.intro-fig .ph{aspect-ratio:5/4}
.chrono{margin-top:clamp(64px,8vw,120px)}
.chrono-h{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-bottom:18px}
.chrono-h h3{font-size:24px;letter-spacing:.14em}
.chrono ol{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.chrono li{position:relative;padding:26px 18px 0 0;border-top:1px solid var(--ink)}
.chrono li::before{content:"";position:absolute;left:0;top:-5px;width:9px;height:9px;background:var(--ink)}
.chrono li:last-child::before{background:var(--green)}
.chrono b{display:block;font-family:var(--f-num);font-weight:500;font-size:clamp(40px,3.6vw,54px);line-height:1.05;font-variant-numeric:lining-nums}
.chrono li span{display:block;margin-top:10px;font-size:17px;font-weight:500;line-height:1.7;letter-spacing:.04em;word-break:auto-phrase}
@media (max-width:1100px) and (min-width:861px){.chrono ol{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}}
@media (max-width:860px){
  .intro{grid-template-columns:1fr}
  .intro-fig{order:-1}
  .intro-fig .ph{aspect-ratio:4/3}
  .chrono ol{grid-auto-flow:row;grid-template-columns:1fr}
  .chrono-h{border-bottom:1px solid var(--ink)}
  .chrono li{display:flex;align-items:baseline;gap:22px;padding:14px 0 14px 26px;border-top:0;border-bottom:1px solid var(--line)}
  .chrono li::before{top:30px}
  .chrono b{font-size:38px;flex:none;width:2.4em}
  .chrono li span{margin:0}
}

/* ---------- home: services (three nameplate panels) ---------- */
.sv{display:grid;gap:14px}
.sv-panel{position:relative;background:var(--green-deep);color:var(--ink)}
.sv-photo{aspect-ratio:16/10}
.sv-photo img{width:100%;height:100%;object-fit:cover}
.sv-plate{position:relative;font-size:28px}
.sv-plate button{display:block;width:100%;text-align:left;padding:18px 24px;background:#fff;font-family:var(--f-min);font-weight:700;letter-spacing:.12em;line-height:1.5}
.sv-card{background:#fff;padding:26px 24px 30px}
.sv-card p{font-size:17px;line-height:2}
.sv-card .more{margin-top:20px}
.js .sv{display:flex;gap:12px;height:clamp(520px,46vw,640px)}
.js .sv-panel{flex:1 1 0;min-width:0;overflow:hidden}
.js .sv.is-live .sv-panel{transition:flex-grow .7s var(--ease)}
.js .sv-panel.is-open{flex-grow:4.6}
.js .sv-photo{position:absolute;inset:0;aspect-ratio:auto}
.js .sv-photo::after{content:"";position:absolute;inset:0;background:var(--green-deep);opacity:.78}
.js .sv.is-live .sv-photo::after,.js .sv-panel:hover .sv-photo::after{transition:opacity .6s}
.js .sv-panel:hover .sv-photo::after{opacity:.66}
.js .sv-panel.is-open .sv-photo::after{opacity:0}
.js .sv-plate{position:absolute;left:24px;top:0;z-index:3}
.js .sv-plate button{width:auto;padding:30px 17px 28px;writing-mode:vertical-rl;font-size:30px;letter-spacing:.22em;line-height:1.2;box-shadow:0 18px 30px -18px rgba(0,0,0,.5)}
.js .sv-panel:not(.is-open){cursor:pointer}
.js .sv-card{position:absolute;z-index:2;left:116px;bottom:24px;width:min(500px,calc(100% - 140px));padding:30px 34px 32px;display:none}
.js .sv-panel.is-open .sv-card{display:block}
.js .sv.is-live .sv-panel.is-open .sv-card{animation:cardin .7s var(--ease) .22s both}
@keyframes cardin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.sv-hint{display:none}
.js .sv-panel:not(.is-open) .sv-hint{display:flex;position:absolute;z-index:2;left:24px;bottom:24px;width:46px;height:46px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.7);color:#fff}
.sv-hint svg{width:20px;height:20px}
@media (max-width:860px){
  .js .sv{display:grid;height:auto;gap:10px}
  .js .sv-panel{overflow:visible;background:#fff;display:flex;flex-direction:column}
  .js .sv-plate{order:1}.js .sv-photo{order:2}.js .sv-card{order:3}
  .js .sv-photo{position:relative;aspect-ratio:16/10;display:none}
  .js .sv-photo::after{display:none}
  .js .sv-panel.is-open .sv-photo{display:block}
  .js .sv-plate{position:relative;left:0}
  .js .sv-plate button{width:100%;writing-mode:horizontal-tb;padding:18px 56px 18px 22px;font-size:24px;letter-spacing:.12em;line-height:1.5;box-shadow:none}
  .js .sv-plate button::after{content:"";position:absolute;left:auto;right:24px;top:50%;width:12px;height:12px;max-height:none;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:translateY(-70%) rotate(45deg)}
  .js .sv-panel.is-open .sv-plate button::after{display:block;transform:translateY(-30%) rotate(-135deg)}
  .js .sv-card{position:relative;left:0;bottom:0;width:100%;padding:22px 22px 28px;display:none}
  .js .sv-panel.is-open .sv-card{display:block}
  .js .sv-panel:not(.is-open) .sv-hint{display:none}
}

/* ---------- home: works browser ---------- */
.wk{position:relative;display:grid;gap:56px}
.wk-row{display:block;width:100%;text-align:left}
.wk-pick{display:inline;text-align:left;font:inherit;letter-spacing:inherit;cursor:default}
.js .wk-pick{cursor:pointer}
.wk-row h3{font-size:clamp(21px,1.75vw,25px);line-height:1.5;letter-spacing:.06em}
.wk-row .chips{margin-top:12px}
.wk-pair{position:relative;margin-top:22px;aspect-ratio:4/3}
.shot{position:absolute;margin:0;overflow:hidden;background:var(--paper-deep)}
.wk-pair.is-live .shot{animation:fadein .5s both}
.shot img{width:100%;height:100%;object-fit:cover}
.shot.is-big{inset:0;z-index:1}
.shot.is-small{left:0;top:0;width:38%;aspect-ratio:4/3;z-index:2;border-right:6px solid #fff;border-bottom:6px solid #fff;box-shadow:0 20px 34px -22px rgba(0,0,0,.6);cursor:pointer}
.wk-lbl{position:absolute;left:0;bottom:0;padding:5px 14px;background:rgba(30,27,23,.88);color:#fff;font-size:16px;font-weight:500;letter-spacing:.14em;line-height:1.6}
.shot.after .wk-lbl{background:var(--green)}
.shot.is-big .wk-lbl{left:auto;right:0}
.wk-under{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px 28px;margin-top:20px}
.seg{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;flex:none;background:#fff;border:1px solid var(--line-strong);padding:4px}
.seg::before{content:"";position:absolute;left:4px;top:4px;bottom:4px;width:calc(50% - 4px);background:var(--ink);transform:translateX(100%)}
.seg.is-live::before{transition:transform .4s var(--ease)}
.seg.is-b::before{transform:none}
.seg button{position:relative;z-index:1;min-width:92px;min-height:44px;padding:0 18px;font-size:16px;font-weight:500;letter-spacing:.14em;line-height:1.2}
.seg button[aria-pressed="true"]{color:#fff}
.wk-desc{flex:1 1 20em;font-size:17px;line-height:2;color:var(--soft);max-width:34em}
.wk-foot{margin-top:44px}
@media (min-width:981px){
  .js .wk{grid-template-columns:minmax(0,4fr) minmax(0,7fr);column-gap:clamp(32px,4.5vw,72px);row-gap:0;align-items:stretch}
  .js .wk>li{display:contents}
  .js .wk-row{position:relative;z-index:1;grid-column:1;padding:17px 26px 18px;border-bottom:1px solid var(--line)}
  .js .wk-stage{grid-column:2;grid-row:1/span 30;align-self:start;display:none}
  .js .wk>li.is-on .wk-stage{display:block}
  .js .wk.is-live>li.is-on .wk-stage{animation:fadein .6s both}
  .js .wk-pair{margin-top:0}
  .js .wk-desc{font-size:18px}
  .js .wk-box>.wk-glide{position:absolute;left:0;top:0;z-index:0;width:calc((100% - clamp(32px,4.5vw,72px)) * 4 / 11);background:#fff;box-shadow:0 22px 44px -30px rgba(30,27,23,.5);pointer-events:none}
  .js .wk-box>.wk-glide.is-live{transition:transform .5s var(--ease),height .5s var(--ease)}
  .js .wk-box>.wk-glide::after{content:"";position:absolute;right:-11px;top:50%;width:22px;height:22px;background:#fff;transform:translateY(-50%) rotate(45deg)}
}
.wk-glide{display:none}
@media (min-width:981px){.js .wk-box>.wk-glide{display:block}}

/* ---------- home: rocket story ---------- */
.story-top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(36px,5vw,80px);align-items:end}
.story-top .more{margin-top:26px}
.facts{border-top:1px solid var(--ink)}
.facts>div{display:grid;grid-template-columns:6em minmax(0,1fr);gap:16px;padding:15px 0;border-bottom:1px solid var(--line);font-size:17px;line-height:1.8}
.facts dt{color:var(--soft);font-weight:500;letter-spacing:.1em}
.facts dd{font-weight:500}
.story-facts{padding-bottom:44px}
.story-lead .ph{aspect-ratio:7/4}
.strip{display:flex;gap:14px;margin-top:14px}
.strip figure{flex:var(--r) 1 0;min-width:0}
.strip .ph{aspect-ratio:var(--r)}
.strip figcaption{word-break:keep-all;overflow-wrap:anywhere}
.story-2{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px clamp(40px,7vw,112px);align-items:center;margin-top:clamp(72px,9vw,132px);padding-top:clamp(56px,7vw,100px);border-top:1px solid var(--line)}
.story-2 h3{font-size:clamp(26px,2.7vw,38px);line-height:1.55}
.story-2 .lede{margin-top:24px}
.story-2 .strip{margin-top:0}
@media (max-width:860px){
  .story-top,.story-2{grid-template-columns:1fr}
  .story-facts{padding-bottom:0}
  .strip{flex-wrap:wrap;gap:22px 12px}
  .strip.four figure{flex:1 1 calc(50% - 6px)}
  .strip.four .ph{aspect-ratio:4/3}
}

/* ---------- home: recruit invitation ---------- */
.invite{background:var(--green-deep);color:#fff;margin-top:clamp(60px,7vw,110px)}
.invite-in{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:40px clamp(40px,7vw,112px);align-items:start;padding-block:clamp(72px,8vw,128px)}
.invite-fig{margin-top:calc(clamp(72px,8vw,128px) * -1 - clamp(40px,5vw,84px));box-shadow:0 34px 60px -34px rgba(0,0,0,.6)}
.invite-fig .ph{aspect-ratio:3/2}
.invite .h2{font-size:clamp(32px,3.8vw,54px);font-weight:700}
.invite p.txt{margin-top:26px;font-size:18px;line-height:2.05;color:rgba(255,255,255,.92);max-width:32em}
.perks{display:grid;grid-template-columns:1fr 1fr;margin-top:clamp(32px,3.6vw,52px);border-top:1px solid rgba(255,255,255,.34)}
.perks li{padding:15px 8px 15px 26px;border-bottom:1px solid rgba(255,255,255,.34);font-size:17px;font-weight:500;letter-spacing:.06em;line-height:1.7;position:relative}
.perks li::before{content:"";position:absolute;left:4px;top:1.5em;width:8px;height:8px;background:var(--orange)}
.invite .btn{margin-top:40px}
@media (max-width:860px){
  .invite{margin-top:0}
  .invite-in{grid-template-columns:1fr;padding-top:0}
  .invite-in{gap:0}
  .invite-in>div{display:contents}
  .invite-fig{order:1;margin:0 calc(var(--gutter) * -1) 44px;box-shadow:none}
  .invite .h2{order:2}
  .invite p.txt{order:3}
  .invite .perks{order:4}
  .invite .btn{order:5;justify-self:start}
}

/* ---------- enquiry panel ---------- */
.enq{padding-block:clamp(72px,9vw,140px)}
.enq-panel{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;background:#fff;box-shadow:0 40px 80px -50px rgba(30,27,23,.45),0 1px 0 rgba(30,27,23,.06)}
.enq-a{padding:clamp(36px,5vw,72px)}
.enq-a h2{font-size:clamp(28px,3vw,42px);line-height:1.5}
.enq-a p{margin-top:18px;color:var(--soft);font-size:18px;line-height:2}
.enq-b{padding:clamp(36px,5vw,72px);border-left:1px solid var(--line)}
.tel-big{display:block;font-family:var(--f-num);font-weight:500;font-size:clamp(50px,6.6vw,100px);line-height:1;letter-spacing:.01em;font-variant-numeric:lining-nums;text-decoration:none;white-space:nowrap;color:var(--ink)}
.enq-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;margin-top:22px}
.enq-row p{font-size:17px;font-weight:500;letter-spacing:.1em;color:var(--soft)}
@media (max-width:980px){
  .enq-panel{grid-template-columns:1fr}
  .enq-b{border-left:0;border-top:1px solid var(--line)}
}
@media (max-width:480px){
  .enq-a,.enq-b{padding:30px 22px}
  .tel-big{font-size:13.2vw}
  .enq-row .btn{width:100%}
}

/* ---------- footer ---------- */
.foot{background:var(--paper-deep);padding:clamp(60px,7vw,100px) 0 34px}
.foot-top{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px clamp(40px,7vw,112px)}
.foot .brand{margin:0 0 22px}
.foot-text{font-size:17px;line-height:2.05;color:var(--soft);max-width:30em}
.foot-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}
.foot-h{font-family:var(--f-min);font-weight:700;font-size:18px;letter-spacing:.14em;padding-bottom:12px;margin-bottom:10px;border-bottom:1px solid var(--ink)}
.foot-nav a{display:block;padding:8px 0;font-size:17px;line-height:1.7;text-decoration:none;color:var(--soft);transition:color .2s;white-space:nowrap}
@media (max-width:1100px){.foot-top{grid-template-columns:1fr}}
.foot-nav a:hover{color:var(--green-deep)}
.foot-facts{display:flex;flex-wrap:wrap;gap:6px 40px;margin-top:clamp(44px,5vw,72px);padding-top:22px;border-top:1px solid var(--line-strong);font-size:16px;line-height:1.9;color:var(--soft)}
.foot-facts b{font-weight:500;color:var(--ink);margin-right:.8em;letter-spacing:.08em}
.foot-copy{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px;margin-top:22px;font-size:16px;color:var(--soft);line-height:1.8}
@media (max-width:860px){
  .foot-top{grid-template-columns:1fr}
  .foot-nav{grid-template-columns:1fr 1fr}
  .foot{padding-bottom:88px}
}

/* ---------- inner page head ---------- */
.phead{padding-top:clamp(36px,5vw,72px)}
.crumb{display:flex;gap:10px;font-size:16px;color:var(--soft);line-height:1.6;margin-bottom:clamp(10px,2.2vw,30px)}
.crumb{align-items:center}
.crumb a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:6px}
.phead-top{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:20px clamp(32px,6vw,96px);align-items:end}
.phead h1{font-weight:700;font-size:clamp(42px,6.2vw,92px);line-height:1.25;letter-spacing:.1em}
.phead .lede{padding-bottom:.7em;color:var(--ink);font-weight:500}
.phead-fig{margin:clamp(34px,4.6vw,64px) 0 0 max(var(--gutter),calc((100vw - var(--max)) / 2))}
.phead-fig .ph{aspect-ratio:21/8.4}
.phead-fig figcaption{display:flex;justify-content:flex-end;padding-right:var(--gutter)}
@media (max-width:860px){
  .phead-top{grid-template-columns:1fr;align-items:start}
  .phead .lede{padding-bottom:0}
  .phead-fig .ph{aspect-ratio:4/3}
  .phead-fig figcaption{justify-content:flex-start}
}

/* ---------- split: text + held photo (intro blocks on inner pages) ---------- */
.split{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:44px clamp(40px,7vw,112px);align-items:center}
.split.flip{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
.split.flip>.split-fig{order:-1}
.split h2{font-size:clamp(30px,3.6vw,52px);font-weight:700;line-height:1.5}
.split .body{margin-top:28px}
.split .body p{color:var(--soft);font-size:clamp(17px,1.35vw,19px);line-height:2.1;max-width:34em}
.split .body p+p{margin-top:1.2em}
.split-fig{position:relative}
.split-fig .ph{aspect-ratio:5/4}
.stamp{position:absolute;left:-28px;bottom:-28px;display:flex;align-items:baseline;gap:10px;background:#fff;padding:18px 28px 16px;box-shadow:0 26px 44px -28px rgba(30,27,23,.5)}
.stamp b{font-family:var(--f-num);font-weight:500;font-size:76px;line-height:.9;color:var(--green);font-variant-numeric:lining-nums}
.stamp span{font-family:var(--f-min);font-weight:700;font-size:20px;letter-spacing:.1em}
@media (max-width:860px){
  .split,.split.flip{grid-template-columns:1fr}
  .split.flip>.split-fig{order:0}
  .stamp{left:0;bottom:-22px;padding:14px 22px 12px}
  .stamp b{font-size:60px}
  .split-fig{margin-bottom:22px}
}

/* ---------- about: philosophy ---------- */
.creed{display:grid;grid-template-columns:auto minmax(0,8fr) minmax(0,3fr);gap:40px clamp(36px,5vw,80px);align-items:center}
.creed h2{writing-mode:vertical-rl;font-size:clamp(26px,2.4vw,34px);letter-spacing:.34em;line-height:1.2;padding:26px 16px 22px;border:1px solid var(--ink);align-self:start}
.creed blockquote p{font-family:var(--f-min);font-weight:700;font-size:clamp(20px,1.85vw,27px);line-height:2.3;letter-spacing:.08em}
.creed figcaption{display:flex;align-items:center;gap:14px;margin-top:34px;font-size:17px;letter-spacing:.14em;font-weight:500}
.creed figcaption::before{content:"";width:48px;height:1px;background:var(--ink)}
.creed .ph{aspect-ratio:3/4}
@media (max-width:980px){
  .creed{grid-template-columns:1fr}
  .creed h2{writing-mode:horizontal-tb;border:0;padding:0;letter-spacing:.14em;font-size:30px}
  .creed blockquote p{font-size:21px;line-height:2.05;letter-spacing:.04em}
  .creed .ph{aspect-ratio:4/3}
}
/* about: four values */
.values{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.values>div{padding:clamp(30px,3.6vw,52px) clamp(24px,3.6vw,56px) clamp(32px,3.8vw,56px) 0;border-bottom:1px solid var(--line)}
.values>div:nth-child(even){padding-left:clamp(24px,3.6vw,56px);padding-right:0;border-left:1px solid var(--line)}
.values dt{font-family:var(--f-min);font-weight:700;font-size:clamp(24px,2.2vw,30px);letter-spacing:.1em;line-height:1.5;display:flex;align-items:center;gap:16px}
.values dt::before{content:"";width:11px;height:11px;background:var(--green);flex:none}
.values dd{margin-top:16px;color:var(--soft);font-size:clamp(17px,1.3vw,18px);line-height:2.05;max-width:34em}
@media (max-width:860px){
  .values{grid-template-columns:1fr}
  .values>div,.values>div:nth-child(even){padding:26px 0 28px;border-left:0}
}
/* about: register (company profile) */
.reg{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:44px clamp(40px,6vw,96px);align-items:start}
.reg-side .lede{margin-top:20px}
.reg-side .ph{aspect-ratio:4/3;margin-top:34px}
.reg-panel{background:#fff;padding:clamp(14px,2vw,26px) clamp(22px,3.6vw,56px);box-shadow:0 40px 80px -56px rgba(30,27,23,.5),0 1px 0 rgba(30,27,23,.06)}
.spec th,.spec td{padding:26px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:baseline}
.spec tr:last-child th,.spec tr:last-child td{border-bottom:0}
.spec th{width:130px;font-family:var(--f-go);font-size:16px;font-weight:500;letter-spacing:.14em;color:var(--soft);white-space:nowrap;padding-right:20px}
.spec td{font-family:var(--f-min);font-weight:700;font-size:clamp(18px,1.5vw,21px);line-height:1.85;letter-spacing:.05em;font-variant-numeric:tabular-nums lining-nums}
.spec td a{font-family:var(--f-num);font-weight:600;font-size:1.5em;letter-spacing:.03em;text-decoration:none;line-height:1.1}
@media (max-width:860px){
  .reg{grid-template-columns:1fr}
  .spec th,.spec td{display:block;width:auto;border-bottom:0;padding:0}
  .spec th{padding-top:18px}
  .spec td{padding-bottom:18px;border-bottom:1px solid var(--line)}
}
/* about: service area line */
.area-top{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:24px clamp(32px,6vw,96px);align-items:end}
.areas{position:relative;display:flex;flex-direction:row-reverse;margin-top:clamp(48px,6vw,84px);padding-top:38px}
.areas::before{content:"";position:absolute;left:0;right:0;top:9px;height:3px;background:var(--ink)}
.areas li{position:relative;flex:1 1 0;padding:0 28px 0 0}
.areas li::before{content:"";position:absolute;left:0;top:-36px;width:3px;height:17px;background:var(--ink)}
.areas li:first-child::after{content:"";position:absolute;right:0;top:-36px;width:3px;height:17px;background:var(--ink)}
.areas li.is-base::before{left:calc(50% - 20px);top:-44px;width:31px;height:31px;background:var(--green);border:6px solid var(--paper);outline:2px solid var(--green);z-index:1}
.areas li.is-base{text-align:center;padding:0 14px}
.areas li.is-base::after{content:"";position:absolute;left:0;top:-36px;width:3px;height:17px;background:var(--ink)}
.areas h3{font-size:clamp(22px,2vw,27px);letter-spacing:.12em}
.areas p{margin-top:8px;font-size:18px;line-height:1.95;color:var(--soft)}
.areas li:first-child{text-align:right;padding:0 0 0 28px}
.area-map{margin-top:clamp(40px,5vw,64px);border:1px solid var(--line-strong);background:#fff;padding:8px}
.area-map iframe{background:var(--paper-deep)}
.area-map iframe{display:block;width:100%;height:clamp(300px,34vw,440px);border:0}
@media (max-width:860px){
  .area-top{grid-template-columns:1fr}
  .areas{flex-direction:column-reverse;padding:0 0 0 34px;gap:26px}
  .areas::before{left:8px;right:auto;top:0;bottom:0;width:3px;height:auto}
  .areas li,.areas li:first-child,.areas li.is-base{text-align:left;padding:0}
  .areas li::before{left:-34px;top:16px;width:19px;height:3px}
  .areas li:first-child::after,.areas li.is-base::after{display:none}
  .areas li.is-base::before{left:-41px;top:4px;width:29px;height:29px}
}
/* about: history rail */
.rail{border-top:1px solid var(--ink)}
.rail>li{display:grid;grid-template-columns:9.5em minmax(0,1fr);gap:8px 28px;padding:26px 0 28px;border-bottom:1px solid var(--line)}
.rail-btn{text-align:left;cursor:default}
.rail-btn b{display:block;font-family:var(--f-num);font-weight:500;font-size:54px;line-height:1;font-variant-numeric:lining-nums}
.rail-btn span{display:block;margin-top:8px;font-size:16px;letter-spacing:.12em;color:var(--soft);line-height:1.6}
.rail-detail h3{font-size:clamp(22px,2vw,27px);letter-spacing:.08em}
.rail-detail p{margin-top:8px;color:var(--soft);font-size:18px;line-height:2;max-width:34em}
@media (min-width:981px){
  .js .rail{position:relative;display:grid;grid-template-columns:repeat(var(--n,6),minmax(0,1fr));border-top:0}
  .js .rail>li{display:contents}
  .js .rail-btn{position:relative;z-index:1;grid-row:1;padding:30px 12px 28px 24px;cursor:pointer;border-left:1px solid var(--line)}
  .js .rail-btn b{font-size:clamp(50px,4.6vw,68px)}
  .js .rail>li.is-on .rail-btn{color:#fff}
  .js .rail>li.is-on .rail-btn span{color:rgba(255,255,255,.9)}
  .js .rail>li.is-on .rail-btn,.js .rail>li.is-on+li .rail-btn{border-left-color:transparent}
  .js .rail-detail{grid-row:2;grid-column:1/-1;background:#fff;padding:clamp(36px,4vw,60px) clamp(32px,5vw,80px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:20px clamp(32px,5vw,80px);align-items:start;display:none;box-shadow:0 40px 80px -56px rgba(30,27,23,.5)}
  .js .rail>li.is-on .rail-detail{display:grid}
  .js .rail.is-live>li.is-on .rail-detail>*{animation:cardin .6s var(--ease) .1s both}
  .js .rail.is-live .rail-btn,.js .rail.is-live .rail-btn span{transition:color .35s}
  .js .rail-detail h3{font-size:clamp(28px,2.9vw,40px);line-height:1.5}
  .js .rail-detail p{margin-top:.4em;font-size:19px;line-height:2.1}
  .js .rail-box>.rail-glide{position:absolute;left:0;top:0;z-index:0;background:var(--green);pointer-events:none}
  .js .rail-box>.rail-glide.is-live{transition:transform .55s var(--ease),width .55s var(--ease)}
  .js .rail-box>.rail-glide::after{content:"";position:absolute;left:50%;bottom:-11px;width:22px;height:22px;background:var(--green);transform:translateX(-50%) rotate(45deg)}
}
.rail-glide{display:none}
@media (min-width:981px){.js .rail-box>.rail-glide{display:block}}
@media (max-width:560px){
  .rail>li{grid-template-columns:1fr}
  .rail-btn{display:flex;align-items:baseline;gap:16px}
  .rail-btn b{font-size:46px}
}

/* ---------- exterior: menu ---------- */
.jump{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(44px,5vw,72px)}
.jump a{display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 20px;background:#fff;border:1px solid var(--line-strong);font-family:var(--f-min);font-weight:700;font-size:18px;letter-spacing:.1em;text-decoration:none;transition:background .25s,color .25s,border-color .25s}
.jump a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.jump a svg{width:16px;height:16px}
.mrow{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(36px,5.5vw,88px);align-items:center;padding-inline:max(var(--gutter),calc((100vw - var(--max)) / 2))}
.mrow+.mrow{margin-top:clamp(64px,8vw,128px)}
.mrow-fig{margin-left:calc(max(var(--gutter),calc((100vw - var(--max)) / 2)) * -1)}
.mrow-fig .ph{aspect-ratio:3/2}
.mrow:nth-child(even){grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.mrow:nth-child(even) .mrow-fig{order:2;margin-left:0;margin-right:calc(max(var(--gutter),calc((100vw - var(--max)) / 2)) * -1)}
.mrow h3{font-size:clamp(28px,3.2vw,46px);font-weight:700;letter-spacing:.1em;padding-bottom:22px;border-bottom:1px solid var(--ink)}
.mrow p{margin-top:24px;color:var(--soft);font-size:clamp(17px,1.35vw,19px);line-height:2.1;max-width:30em}
@media (max-width:860px){
  .mrow,.mrow:nth-child(even){grid-template-columns:1fr;gap:22px}
  .mrow-fig,.mrow:nth-child(even) .mrow-fig{order:0;margin-inline:calc(var(--gutter) * -1)}
  .mrow-fig .ph{aspect-ratio:3/2}
  .mrow h3{padding-bottom:14px}
  .mrow p{margin-top:16px}
}

/* ---------- foundation: flow, types, gallery ---------- */
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;box-shadow:0 40px 80px -56px rgba(30,27,23,.5),0 1px 0 rgba(30,27,23,.06)}
.flow li{position:relative;padding:clamp(32px,3.4vw,50px) clamp(22px,2.6vw,40px) clamp(34px,3.6vw,54px)}
.flow li+li{border-left:1px solid var(--line)}
.flow li+li::before{content:"";position:absolute;left:-13px;top:clamp(36px,3.9vw,58px);width:26px;height:26px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23016936' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/20px no-repeat}
.flow h3{font-size:clamp(20px,1.6vw,23px);letter-spacing:.06em;white-space:nowrap;padding-bottom:16px;border-bottom:1px solid var(--ink)}
.flow p{margin-top:16px;color:var(--soft);font-size:17px;line-height:2}
@media (max-width:1180px){
  .flow{grid-template-columns:1fr 1fr}
  .flow li:nth-child(3){border-left:0}
  .flow li:nth-child(n+3){border-top:1px solid var(--line)}
  .flow li:nth-child(3)::before{left:calc(50% - 13px);top:-13px;transform:rotate(90deg)}
}
@media (max-width:620px){
  .flow{grid-template-columns:1fr}
  .flow li{padding:28px 24px 30px}
  .flow li+li{border-left:0;border-top:1px solid var(--line)}
  .flow li+li::before{left:calc(50% - 13px);top:-13px;transform:rotate(90deg)}
}
.types{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:44px clamp(40px,6vw,96px);align-items:start}
.types-fig .ph{aspect-ratio:4/5}
.types-list{border-top:1px solid var(--ink)}
.type{padding:clamp(28px,3.2vw,46px) 0 clamp(30px,3.4vw,50px);border-bottom:1px solid var(--line)}
.type h3{font-size:clamp(25px,2.5vw,34px);letter-spacing:.1em;display:flex;align-items:center;gap:16px}
.type h3::before{content:"";width:11px;height:11px;background:var(--green);flex:none}
.type p.txt{margin-top:14px;color:var(--soft);font-size:clamp(17px,1.3vw,18px);line-height:2.05;max-width:34em}
@media (max-width:860px){
  .types{grid-template-columns:1fr}
  .types-fig .ph{aspect-ratio:4/3}
}
.gal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:38px 16px}
.gal li{grid-column:span 4}
.gal li:nth-child(1),.gal li:nth-child(2){grid-column:1/span 5}
.gal li:nth-child(3){grid-column:6/span 7;grid-row:1/span 2}
.gal .ph{aspect-ratio:3/2}
.gal li:nth-child(3) .ph{aspect-ratio:auto;height:calc(100% - 46px)}
.gal figure{height:100%}
.gal figcaption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px;margin-top:12px;line-height:1.6}
.gal figcaption b{font-family:var(--f-min);font-weight:700;font-size:18px;letter-spacing:.08em}
.gal figcaption span{font-size:16px;color:var(--soft);letter-spacing:.08em}
@media (max-width:860px){
  .gal{grid-template-columns:1fr 1fr;gap:26px 12px}
  .gal li,.gal li:nth-child(1),.gal li:nth-child(2){grid-column:span 1}
  .gal li:nth-child(3),.gal li:nth-child(6){grid-column:span 2;grid-row:auto}
  .gal li:nth-child(6) .ph{aspect-ratio:3/2}
  .gal li:nth-child(3) .ph{aspect-ratio:3/2;height:auto}
  .gal figcaption b{font-size:17px}
}

/* ---------- recruit ---------- */
.wide-fig{margin:clamp(48px,6vw,88px) 0 0 max(var(--gutter),calc((100vw - var(--max)) / 2))}
.wide-fig .ph{aspect-ratio:21/9}
.call{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px clamp(40px,7vw,112px);align-items:center}
.call .body{margin-top:30px}
.call-fig .ph{aspect-ratio:4/5}
.call h2{font-size:clamp(32px,4vw,56px);font-weight:700;line-height:1.5}
.call .body p{color:var(--soft);font-size:clamp(17px,1.4vw,19px);line-height:2.1;max-width:34em}
.call .body p+p{margin-top:1.2em}
.ben{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:44px clamp(40px,6vw,96px);align-items:start}
.ben-fig .ph{aspect-ratio:4/5}
.ben-list{border-top:1px solid var(--ink)}
.ben-list li{display:grid;grid-template-columns:minmax(0,270px) minmax(0,1fr);gap:8px 28px;padding:26px 0 28px;border-bottom:1px solid var(--line);align-items:baseline}
.ben-list h3{font-size:clamp(20px,1.6vw,23px);letter-spacing:.06em;line-height:1.7}
.ben-list p{color:var(--soft);font-size:17px;line-height:2.05}
.job{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:40px clamp(32px,4.5vw,72px);align-items:start}
.job-sheet{background:#fff;box-shadow:0 40px 80px -56px rgba(30,27,23,.5),0 1px 0 rgba(30,27,23,.06)}
.job-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 28px;padding:clamp(28px,3.4vw,48px) clamp(24px,3.8vw,60px);border-bottom:1px solid var(--ink)}
.job-top h3{font-size:clamp(25px,2.6vw,36px);font-weight:700;line-height:1.45;letter-spacing:.06em}
.job-tag{display:inline-block;margin-top:12px;padding:3px 14px;border:1px solid var(--green);color:var(--green-deep);font-size:16px;font-weight:500;letter-spacing:.1em;line-height:1.7}
.job-sheet .spec{display:block;padding:clamp(8px,1.4vw,18px) clamp(24px,3.8vw,60px) clamp(14px,2vw,26px)}
.job-sheet .spec tbody{display:block}
.job-sheet .spec tr{display:grid;grid-template-columns:8.5em minmax(0,1fr);gap:0 20px;border-bottom:1px solid var(--line)}
.job-sheet .spec tr:last-child{border-bottom:0}
.job-sheet .spec th,.job-sheet .spec td{display:block;width:auto;border:0;padding:20px 0}
.job-sheet .spec td{font-family:var(--f-go);font-weight:400;font-size:18px;line-height:2;letter-spacing:.03em}
.job-fig .ph{aspect-ratio:3/4}
.letter{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:44px clamp(40px,7vw,112px);align-items:start}
.letter .ph{aspect-ratio:5/4;margin-top:34px}
.letter .body p{font-size:clamp(17px,1.4vw,19px);line-height:2.2;max-width:34em}
.letter .body p+p{margin-top:1.4em}
@media (max-width:860px){
  .call,.ben,.job,.letter{grid-template-columns:1fr}
  .ben-fig .ph{aspect-ratio:4/3}
  .ben-list li{grid-template-columns:1fr}
  .job-fig{order:-1}
  .job-fig .ph{aspect-ratio:16/10}
  .job-sheet .spec tr{grid-template-columns:1fr}
  .job-sheet .spec th{padding:16px 0 0}
  .job-sheet .spec td{padding:2px 0 16px}
  .job-top .btn{width:100%}
  .wide-fig .ph{aspect-ratio:4/3}
}

/* ---------- contact ---------- */
.chead{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:36px clamp(40px,6vw,96px);align-items:stretch;padding-top:clamp(36px,5vw,72px)}
.chead h1{font-weight:700;font-size:clamp(42px,6.2vw,92px);line-height:1.25;letter-spacing:.1em}
.chead .lede{margin-top:20px;color:var(--ink);font-weight:500}
.chead-fig .ph{height:100%;min-height:380px}
.phone-card{margin-top:clamp(32px,4vw,56px);background:#fff;padding:clamp(26px,3vw,44px) clamp(24px,3.4vw,52px);box-shadow:0 40px 80px -56px rgba(30,27,23,.5),0 1px 0 rgba(30,27,23,.06)}
.phone-card h3,.phone-card h2{font-size:clamp(20px,1.7vw,23px);letter-spacing:.12em;display:flex;align-items:center;gap:14px}
.phone-card h3::before,.phone-card h2::before{content:"";width:11px;height:11px;background:var(--green);flex:none}
.phone-card p.t{color:var(--soft);font-size:17px;margin-top:6px}
.phone-card .tel-big{margin-top:14px;font-size:clamp(50px,6.4vw,96px)}
.phone-card p.h{margin-top:12px;font-size:17px;font-weight:500;letter-spacing:.1em}
.cgrid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:44px clamp(40px,6vw,96px);align-items:start}
.cform-panel{background:#fff;padding:clamp(28px,4vw,64px);box-shadow:0 40px 80px -56px rgba(30,27,23,.5),0 1px 0 rgba(30,27,23,.06)}
.cform-panel h2{font-size:clamp(26px,2.6vw,36px)}
.cform-panel>p{margin-top:12px;color:var(--soft);font-size:17px;line-height:2}
.cform{margin-top:34px;display:grid;gap:24px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px}
.fgroup label{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:500;letter-spacing:.06em;line-height:1.6;margin-bottom:8px}
.req{font-size:16px;font-weight:500;line-height:1.3;padding:2px 9px;background:var(--green);color:#fff;letter-spacing:.1em}
.fgroup input,.fgroup select,.fgroup textarea{display:block;width:100%;min-height:58px;padding:12px 16px;font:inherit;font-size:18px;line-height:1.6;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);border-radius:2px;transition:border-color .2s,background .2s,box-shadow .2s}
.fgroup select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E1B17' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:20px;padding-right:48px}
.fgroup textarea{min-height:200px;resize:vertical}
.fgroup input:focus,.fgroup select:focus,.fgroup textarea:focus{outline:0;background:#fff;border-color:var(--green);box-shadow:0 0 0 3px rgba(1,105,54,.2)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform .btn{width:100%;min-height:62px;font-size:18px}
.fnote{font-size:16px;line-height:1.9;color:var(--soft)}
.fnote+.fnote{margin-top:-20px}
.info h2{font-size:24px;letter-spacing:.12em;padding-bottom:14px;border-bottom:1px solid var(--ink)}
.info dl>div{display:grid;grid-template-columns:5.5em minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:17px;line-height:1.9}
.info dt{color:var(--soft);font-weight:500;letter-spacing:.1em}
.info dd{font-weight:500}
.info-map{margin-top:34px;border:1px solid var(--line-strong);background:#fff;padding:8px}
.info-map iframe{display:block;width:100%;aspect-ratio:4/5;border:0;background:var(--paper-deep)}
.info-addr{margin-top:14px;font-size:17px;font-weight:500;line-height:1.8}
@media (max-width:860px){
  .chead,.cgrid{grid-template-columns:1fr}
  .chead-fig{order:3}
  .chead-fig .ph{min-height:0;aspect-ratio:4/3}
  .info-map iframe{aspect-ratio:4/3}
  .frow{grid-template-columns:1fr}
}
@media (max-width:480px){.phone-card .tel-big{font-size:13.2vw}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv,.js .hero-copy>*{opacity:1;transform:none}
}

.menu-btn .x{display:none}.menu-btn.is-x .x{display:block}.menu-btn.is-x .bars{display:none}
/* photo hover: a 1.04 scale at most */
.ph img{transition:transform .8s var(--ease)}
a:hover .ph img,.mrow:hover .ph img,.gal li:hover .ph img{transform:scale(1.04)}

@media (min-width:861px){
  .types-fig,.ben-fig,.job-fig,.reg-side,.letter>div:first-child{position:sticky;top:calc(var(--hdr) + 36px);align-self:start}
  .ben-list h3{white-space:nowrap}
}
@media (max-width:480px){.perks{grid-template-columns:1fr}}

/* ================= merged build, 10 Nov: Alec's picks on top of A ================= */
/* 経営理念: the creed set vertically (from B), in A's type */
.creed{grid-template-columns:minmax(0,6fr) auto auto;gap:40px clamp(36px,4.6vw,72px);align-items:stretch;justify-content:space-between}
.creed .ph{aspect-ratio:auto;min-height:420px;height:100%}
.creed .ph img{width:100%;height:100%;object-fit:cover}
.creed .quote{display:flex;flex-direction:row-reverse;gap:26px;align-items:stretch}
.creed blockquote{writing-mode:vertical-rl}
.creed blockquote p{writing-mode:vertical-rl;height:17.6em;font-size:clamp(19px,1.7vw,24px);line-height:2.25;letter-spacing:.14em}
.creed blockquote p>budoux-ja{word-break:keep-all;overflow-wrap:anywhere}
.creed figcaption{writing-mode:vertical-rl;margin:0;align-self:flex-end;letter-spacing:.3em}
.creed figcaption::before{width:1px;height:48px}
.creed h2{border:0;padding:0;font-size:clamp(34px,3.3vw,48px);letter-spacing:.3em;align-self:start}
@media (max-width:860px){
  .creed{grid-template-columns:1fr}
  .creed h2{order:-1;font-size:30px;letter-spacing:.14em}
  .creed .ph{min-height:0;aspect-ratio:4/3}
  .creed .quote{display:block}
  .creed blockquote{writing-mode:horizontal-tb}
  .creed blockquote p{writing-mode:horizontal-tb;height:auto;font-size:21px;line-height:2.05;letter-spacing:.04em}
  .creed figcaption{writing-mode:horizontal-tb;margin-top:28px}
  .creed figcaption::before{width:48px;height:1px}
}
/* 私たちの強み: each title as a vertical label beside its text (from B) */
.values>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 clamp(24px,2.6vw,40px);align-items:start}
.values dt{writing-mode:vertical-rl;display:block;font-size:clamp(24px,2.1vw,29px);letter-spacing:.24em;line-height:1.3;padding-left:clamp(20px,2.2vw,32px);border-left:1px solid var(--ink);min-height:6.4em;white-space:nowrap}
.values dt::before{content:none}
.values dd{margin-top:0}
@media (max-width:700px){
  .values{grid-template-columns:1fr}
  .values>div,.values>div:nth-child(even){padding-inline:0;border-left:0}
  .values dt{font-size:23px;min-height:0}
}
/* 施工メニュー: two by two with large photos (from C) */
.mgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,5.4vw,84px) clamp(28px,3.6vw,56px)}
.mcell .ph{aspect-ratio:3/2}
.mcell h3{margin-top:26px;font-size:clamp(26px,2.5vw,36px);letter-spacing:.1em;padding-bottom:16px;border-bottom:1px solid var(--ink)}
.mcell p{margin-top:18px;color:var(--soft);font-size:clamp(17px,1.3vw,18px);line-height:2.05}
.mcell:hover .ph img{transform:scale(1.04)}
@media (max-width:760px){.mgrid{grid-template-columns:1fr;gap:52px}.mcell h3{margin-top:20px;padding-bottom:12px}}
/* 施工の流れ: four steps on one ground line (from C) */
.flow{background:none;box-shadow:none;gap:0 clamp(20px,2.4vw,36px)}
.flow li{padding:0}
.flow li+li{border-left:0}
.flow li+li::before{content:none}
.flow h3{position:relative;border-bottom:1px solid var(--ink);padding-bottom:20px;font-size:clamp(21px,1.75vw,25px)}
.flow h3::before{content:"";position:absolute;left:0;bottom:-6px;width:11px;height:11px;background:var(--green)}
.flow h3::after{content:"";position:absolute;left:0;right:calc(clamp(20px,2.4vw,36px) * -1);top:100%;height:9px;margin-top:1px;background:repeating-linear-gradient(135deg,rgba(30,27,23,.3) 0 1px,transparent 1px 7px)}
.flow li:last-child h3::after{right:0}
.flow p{margin-top:30px}
@media (max-width:1040px){
  .flow{grid-template-columns:1fr 1fr;row-gap:48px}
  .flow li:nth-child(n+3){border-top:0}
  .flow li:nth-child(2n) h3::after{right:0}
}
@media (max-width:620px){
  .flow{grid-template-columns:1fr;row-gap:0;border-left:1px solid var(--ink);margin-left:5px}
  .flow li,.flow li+li{padding:0 0 34px 26px;border-top:0}
  .flow li:last-child{padding-bottom:0}
  .flow h3{border-bottom:0;padding-bottom:0;white-space:normal}
  .flow h3::before{left:-32px;bottom:auto;top:.62em}
  .flow h3::after{content:none}
  .flow p{margin-top:8px}
}
/* 働く魅力: two by three (from C) */
.ben-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.ben-list li{display:block;padding:clamp(24px,2.4vw,34px) clamp(20px,2.4vw,36px) clamp(26px,2.6vw,36px) 0}
.ben-list li:nth-child(even){padding-left:clamp(20px,2.4vw,36px);padding-right:0;border-left:1px solid var(--line)}
.ben-list h3{display:flex;align-items:center;gap:12px}
.ben-list h3::before{content:"";width:9px;height:9px;background:var(--green);flex:none}
.ben-list p{margin-top:10px}
@media (max-width:700px){
  .ben-list{grid-template-columns:1fr}
  .ben-list li,.ben-list li:nth-child(even){padding-inline:0;border-left:0}
}
.wk-box,.rail-box{position:relative}
/* the spam trap field is for robots only, and anything marked hidden stays hidden */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
[hidden]{display:none!important}
