:root{--bg:#041326;--bg2:#071b30;--panel:#0a2239;--panel2:#0d2b47;--line:#1d425c;--cyan:#42d9ef;--blue:#1689d4;--green:#56d6a2;--amber:#f1c85d;--red:#ff8179;--text:#eef8fc;--muted:#a8bfce;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Noto Sans JP","Yu Gothic",sans-serif;line-height:1.8}body:focus{outline:none}a{text-decoration:none;color:inherit}.wrap{max-width:1220px;margin:auto;padding:0 28px}
header{position:sticky;top:0;z-index:100;background:#041326ee;backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.logo{font-weight:950;font-size:22px;letter-spacing:-.03em;white-space:nowrap}.logo small{display:block;color:var(--cyan);font:700 9px monospace;letter-spacing:.28em}.navlinks{display:flex;gap:17px;align-items:center;font-size:12px;color:#c1d5e1}.navlinks a:hover,.navlinks a.active{color:var(--cyan)}.navcta{border:1px solid #376b85;padding:7px 11px;border-radius:5px;color:#fff!important}.navcta:hover{background:#0b2942}
.hero{min-height:780px;display:flex;align-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 74% 48%,#0b5276 0,#082b47 25%,#041326 63%)}.hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:50px 50px;mask-image:linear-gradient(90deg,#000 0,#000 62%,transparent 100%)}.hero-copy{position:relative;z-index:4;max-width:720px}.eyebrow{color:var(--cyan);font:800 11px monospace;letter-spacing:.25em}.hero h1{font-size:clamp(50px,7.5vw,96px);line-height:1.01;letter-spacing:-.065em;margin:20px 0}.hero p{font-size:18px;font-weight:700;color:#c7dbe6;max-width:650px}.actions{margin-top:25px}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid #3b6b84;border-radius:5px;padding:11px 18px;margin:5px 7px 5px 0;font-size:13px;background:#092038;cursor:pointer;color:#fff;transition:.18s}.btn:hover{border-color:var(--cyan);transform:translateY(-1px)}.btn.primary{background:var(--cyan);border-color:var(--cyan);color:#03141e;font-weight:850}.btn.ghost{background:transparent}.btn.small{padding:7px 11px;font-size:11px}
.hero-map{position:absolute;right:-2%;top:5%;width:55%;height:88%;z-index:2}.hero-map svg{width:100%;height:100%}.gmgrid{stroke:#5ad3e91c;stroke-width:1}.gmborder{fill:#09243b;stroke:#4a7891;stroke-width:1.2}.road{fill:none;stroke:#5d91a8;stroke-width:2;opacity:.55}.route{fill:none;stroke:var(--cyan);stroke-width:2;stroke-dasharray:8 8}.hzone{fill:none;stroke:#f1c85d66;stroke-width:1}.node{fill:var(--cyan);stroke:#041326;stroke-width:4}.label{fill:#83adc1;font:10px monospace;letter-spacing:.08em}.hero-note{position:absolute;right:5%;bottom:7%;z-index:5;font:700 10px monospace;color:#8bb0c0;letter-spacing:.08em}
.section{padding:96px 0}.alt{background:var(--bg2)}.light{background:#0a2943}.section h2{font-size:clamp(35px,4vw,55px);line-height:1.15;letter-spacing:-.045em;margin:8px 0 20px}.section h3{line-height:1.35}.lead{font-size:18px;color:#b9ceda;max-width:900px}.muted{color:var(--muted)}.smallnote{font-size:12px;color:#87a6b7}.rule{height:1px;background:var(--line);margin:42px 0}.quote{font-size:clamp(28px,4vw,52px);font-weight:850;line-height:1.3;letter-spacing:-.04em;max-width:900px}.quote span{color:var(--cyan)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:28px;transition:.2s}.card:hover{transform:translateY(-3px);border-color:#39738e}.card h3{margin:8px 0;color:#fff;font-size:20px}.card p{color:var(--muted);font-size:14px}.tag{font:700 10px monospace;color:var(--cyan);letter-spacing:.18em}.number{font:800 11px monospace;color:var(--cyan)}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px}.metric{border-top:2px solid var(--blue);padding:16px 0}.metric strong{display:block;color:#fff;font-size:25px;line-height:1.2}.metric span{font-size:11px;color:#8ea9ba}.split{display:grid;grid-template-columns:1.08fr .92fr;gap:38px;align-items:center}.panel{background:#081e34;border:1px solid var(--line);border-radius:8px;padding:30px}.callout{border-left:3px solid var(--cyan);background:#0b2942;padding:18px 20px;margin:25px 0;color:#c4d8e3}.callout.warn{border-left-color:var(--amber)}
.process{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:28px}.process button,.process div{border:1px solid var(--line);background:#09233a;color:#bcd5e2;border-radius:5px;padding:13px 7px;font:700 10px monospace;text-align:center;cursor:pointer}.process button:hover,.process .active{border-color:var(--cyan);color:#fff;background:#0c3855}.process b{display:block;color:var(--cyan);font-size:15px;margin-bottom:3px}
.mapbox{height:500px;background:#061a2c;border:1px solid #2a536b;border-radius:8px;position:relative;overflow:hidden}.mapbox:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#55b7d413 1px,transparent 1px),linear-gradient(90deg,#55b7d413 1px,transparent 1px);background-size:30px 30px}.maproad{position:absolute;height:3px;background:#537f92aa;transform:rotate(-13deg);left:-5%;right:-5%;top:52%}.mapgrid30{position:absolute;inset:38px 30px;border:1px dashed #5ad3e944;background-image:linear-gradient(#5ad3e933 1px,transparent 1px),linear-gradient(90deg,#5ad3e933 1px,transparent 1px);background-size:90px 90px}.unitgrid{position:absolute;inset:74px 66px;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(4,1fr);border:1px solid #6aa0b444}.unitgrid div{border:1px solid #6aa0b433;cursor:pointer}.unitgrid div:hover,.unitgrid div.active{background:#42d9ef22;outline:1px solid var(--cyan);z-index:2}.parcel{position:absolute;width:92px;height:92px;border:1px solid #46778e;transition:.25s;cursor:pointer}.parcel:hover{transform:scale(1.05);z-index:5}.high{background:#6c302f88;border-color:var(--red)}.low{background:#6b572488;border-color:var(--amber)}.none{background:#1e554688;border-color:var(--green)}.p1{left:15%;top:18%}.p2{left:25%;top:18%}.p3{left:35%;top:18%}.p4{left:45%;top:18%}.p5{left:55%;top:18%}.p6{left:15%;top:39%}.p7{left:25%;top:39%}.p8{left:35%;top:39%}.p9{left:45%;top:39%}.p10{left:55%;top:39%}.sample{position:absolute;width:17px;height:17px;border-radius:50%;background:var(--cyan);border:3px solid #061a2c;box-shadow:0 0 0 5px #42d9ef35;z-index:3;cursor:pointer}.s1{left:29%;top:45%}.s2{left:49%;top:23%}.s3{left:58%;top:53%}.mapbar{position:absolute;z-index:6;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;gap:10px}.mapbar span{background:#041326dd;border:1px solid var(--line);border-radius:4px;padding:6px 9px;font:700 10px monospace;color:#a8c4d2}.legend{position:absolute;z-index:6;right:12px;bottom:12px;background:#041326e8;border:1px solid var(--line);padding:9px;font-size:10px}.legend i{display:inline-block;width:10px;height:10px;margin:0 4px 0 9px}.legend i:first-child{margin-left:0}
.timeline{border-left:1px solid #37657c;margin:28px 0;padding-left:28px}.event{position:relative;padding-bottom:28px}.event:before{content:"";position:absolute;left:-34px;top:9px;width:9px;height:9px;background:var(--cyan);border-radius:50%;box-shadow:0 0 0 4px #42d9ef22}.year{font:800 12px monospace;color:var(--cyan)}
.depth{height:410px;border:1px solid var(--line);border-radius:8px;background:#061a2b;overflow:hidden;position:relative}.ground{height:62px;background:#36424a;border-bottom:3px solid #85765c}.ly1{height:92px;background:#4c4238}.ly2{height:105px;background:#393733}.ly3{height:151px;background:#273039}.bore{position:absolute;left:43%;top:0;width:9px;height:100%;background:#d5eef5aa}.contam{position:absolute;left:35%;top:138px;width:26%;height:106px;background:#ff81794f;border:1px solid var(--red);box-shadow:0 0 25px #ff81791c}.dsample{position:absolute;left:40%;top:155px;width:18px;height:18px;background:var(--red);border:3px solid #061a2b;border-radius:50%}.depthlabel{position:absolute;right:13px;color:#91adbd;font:10px monospace}.d0{top:12px}.d2{top:104px}.d5{top:208px}.d10{bottom:13px}
.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:26px 0}.tab{background:#09233a;border:1px solid var(--line);color:#bcd4e1;padding:9px 13px;border-radius:5px;cursor:pointer;font-size:12px}.tab.active{border-color:var(--cyan);background:#0c3855;color:#fff}.tabpanel{display:none}.tabpanel.active{display:block}.question{font-size:24px;color:#fff;margin:12px 0}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.choice{padding:14px;border:1px solid var(--line);background:#09233a;color:#c5d9e4;border-radius:5px;cursor:pointer;text-align:left}.choice:hover{border-color:var(--cyan)}.result{display:none;margin-top:18px;padding:16px;background:#0b2942;border:1px solid #2b5870}.result.show{display:block}.ok{color:var(--green)}.ng{color:var(--red)}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#b9d0de}.field input,.field textarea{background:#061a2b;border:1px solid #315b73;color:#fff;border-radius:5px;padding:12px;font:inherit}.field textarea{min-height:150px;resize:vertical}.field input:focus,.field textarea:focus{outline:2px solid #42d9ef55;border-color:var(--cyan)}
footer{background:#020e1a;border-top:1px solid #17344a;padding:45px 0;color:#7893a4;font-size:11px}.footgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:30px}.footbrand{font-size:20px;color:#fff;font-weight:900}.footlinks a{display:block;margin:5px 0}.footlinks a:hover{color:var(--cyan)}.source{margin-top:22px;padding-top:15px;border-top:1px solid #17344a}.source a{color:#75d0e4;text-decoration:underline}.footer-note{font-size:10px;color:#567383;margin-top:12px}.cookie{position:fixed;z-index:200;left:18px;right:18px;bottom:18px;background:#041326f7;border:1px solid var(--line);padding:12px 15px;display:none;align-items:center;justify-content:space-between;gap:15px}.cookie.show{display:flex}.cookie p{margin:0;font-size:10px;color:#b4c9d5}.to-top{position:fixed;right:18px;bottom:18px;z-index:80;display:none}.to-top.show{display:block}
@media(max-width:900px){.navlinks{display:none}.hero{min-height:720px}.hero-map{width:95%;right:-30%;opacity:.28}.cards{grid-template-columns:1fr}.split{grid-template-columns:1fr}.process{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}.footgrid{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}.choices{grid-template-columns:1fr}.section{padding:72px 0}.hero h1{font-size:clamp(48px,14vw,74px)}.quote{font-size:34px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.minihero{min-height:660px}.featured{border-color:#287a98;background:linear-gradient(145deg,#0b2942,#0a2239)}.report-preview{min-height:430px;background:#f5f8fa;color:#10293d;box-shadow:0 20px 55px #0005}.report-head{display:flex;justify-content:space-between;font:700 10px monospace;letter-spacing:.12em;color:#27677e;border-bottom:1px solid #c9d7df;padding-bottom:10px}.report-preview h3{font-family:serif;color:#17344a;font-size:25px;line-height:1.35;margin:25px 0 12px}.report-meta{display:flex;flex-wrap:wrap;gap:7px}.report-meta span{font-size:10px;border:1px solid #c7d5dc;border-radius:3px;padding:5px 7px;color:#456}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.report-grid div{height:90px;background:#dfe7ea;position:relative;overflow:hidden}.report-grid i{position:absolute;inset:12px;border:2px solid #52798a;background:linear-gradient(135deg,#b9ced4,#edf2f3 45%,#9eb9c1)}.report-grid span{position:absolute;bottom:3px;left:6px;font-size:9px;background:#f5f8fae8;padding:1px 4px}.report-lines{margin-top:20px}.report-lines em{display:block;height:6px;background:#c9d7df;margin:7px 0;width:95%}.report-lines em:nth-child(2){width:82%}.report-lines em:nth-child(3){width:90%}.report-lines em:nth-child(4){width:72%}.report-lines em:nth-child(5){width:88%}@media(max-width:900px){.minihero{min-height:720px}.report-preview{margin-top:10px}}

.report-sample{align-items:start}.report-stack{position:relative;min-height:620px;padding:10px 18px 30px}.report-stack img{position:absolute;width:min(78%,420px);height:auto;border:1px solid #c6d4dc;box-shadow:0 18px 40px #0005;filter:saturate(.85)}.report-stack img:nth-child(1){right:6%;top:5px;transform:rotate(2.2deg)}.report-stack img:nth-child(2){left:4%;top:105px;transform:rotate(-2.2deg)}.report-stack img:nth-child(3){right:2%;top:225px;transform:rotate(1deg)}.sample-points{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:26px}.sample-points div{border:1px solid var(--line);background:#09233a;border-radius:5px;padding:13px}.sample-points b{display:block;color:var(--cyan);font:800 11px monospace;margin-bottom:5px}.sample-points span{font-size:12px;color:#c4d6df}@media(max-width:900px){.report-stack{min-height:500px;margin-top:8px}.report-stack img{width:72%}.report-stack img:nth-child(1){right:2%}.report-stack img:nth-child(2){left:0;top:88px}.report-stack img:nth-child(3){right:0;top:190px}.sample-points{grid-template-columns:repeat(2,1fr)}}

/* V12: soil-law visual language + TochinoGenba */
.soil-hero-map{opacity:.96}.diagram-frame{fill:#071d31;stroke:#4f8096;stroke-width:1.5}.unit-lines path{stroke:#3f6f83;stroke-width:1;opacity:.65}.grid30-lines path{stroke:#e1b84b;stroke-width:1.3;stroke-dasharray:7 6;opacity:.72}.focus-unit{fill:#42d9ef1c;stroke:#42d9ef;stroke-width:2}.risk-unit{fill:#c89f3c14;stroke:#c89f3c;stroke-width:1.5}.focus-dot,.sample-dot{fill:#42d9ef;stroke:#061a2c;stroke-width:3}.field-center{fill:#42d9ef;stroke:#061a2c;stroke-width:4}.field-radius{fill:none;stroke:#42d9ef;stroke-width:1.2;stroke-dasharray:6 7;opacity:.65}.measure{stroke:#42d9ef;stroke-width:2;stroke-dasharray:8 7}.leader{stroke:#8eb1bf;stroke-width:1;fill:none}.diagram-label{fill:#d8e9ef;font:700 13px monospace}.diagram-kicker,.diagram-note,.label{fill:#79a7ba;font:700 11px monospace;letter-spacing:.1em}.unit-label{fill:#e7f8fc;font:800 13px monospace}.legal-diagram{margin-top:28px}.soil-diagram-svg{width:100%;height:auto;display:block;margin:10px 0 0}.mapbox .mapgrid30{display:none}.unitgrid-large{inset:70px 55px;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(4,1fr);z-index:2}.unitgrid-large div{background:#08243a;border-color:#47758a}.unitgrid-large div.active{background:#42d9ef20;outline:1px solid #42d9ef}.grid30-frame{position:absolute;left:15%;top:13%;width:60%;height:78%;border:1px dashed #d2aa48;z-index:3;pointer-events:none}.land-pin{position:absolute;z-index:6;background:#061a2b;border:1px solid #42d9ef;color:#fff;padding:5px 7px;font:700 10px monospace}.pin-a{left:39%;top:39%}.pin-b{left:56%;top:60%}.legend i{border:1px solid #42d9ef;background:#42d9ef20}.genba-hero{min-height:720px}.genba-stack img{filter:saturate(.85)}.genba-stack{min-height:690px}.genba-stack img:nth-child(1){right:6%;top:0;transform:rotate(2deg)}.genba-stack img:nth-child(2){left:2%;top:180px;transform:rotate(-2.4deg)}.genba-stack img:nth-child(3){right:0;top:360px;transform:rotate(1.2deg)}
@media(max-width:900px){.genba-hero{min-height:760px}.genba-stack{min-height:560px}.genba-stack img:nth-child(1){right:2%;top:0}.genba-stack img:nth-child(2){left:0;top:145px}.genba-stack img:nth-child(3){right:0;top:290px}}

/* V13: supplied TochinoWa logo + refined unit-parcel visual language */
.logo{display:flex;align-items:center;height:38px;text-decoration:none}
.logo img{display:block;width:auto;height:64px;max-width:380px;object-fit:contain}
.footbrand{display:flex;align-items:center;height:42px}
.footbrand img{display:block;width:auto;height:60px;max-width:360px;object-fit:contain}
.parcel-hero-svg .unit-lines{stroke:#6da4b8;stroke-opacity:.18;stroke-width:1}
.parcel-hero-svg .grid30-lines{stroke:#62c7dc;stroke-opacity:.34;stroke-width:1.4}
.parcel-hero-svg .diagram-frame{fill:#08243b;fill-opacity:.72;stroke:#4a7891;stroke-width:1.3}
.parcel-hero-svg .focus-dot,.parcel-hero-svg .sample-dot{stroke:#041326;stroke-width:4}
.parcel-hero-svg .route{stroke-width:2;stroke-dasharray:7 8}
.parcel-hero-svg .unit-label{font-size:12px;letter-spacing:.06em}
@media(max-width:900px){.logo img{height:60px;max-width:340px}.footbrand img{height:56px;max-width:330px}}

/* V14: approved aerial unit-parcel hero visual */
.hero-visual-image{display:block;width:100%;height:auto;max-height:620px;object-fit:cover;border-radius:8px;mix-blend-mode:screen;opacity:.96}
@media(max-width:900px){.hero-visual-image{max-height:480px;border-radius:6px}}

.service-price{margin:.45rem 0 0;font-size:1rem;letter-spacing:.03em}
.service-badge{display:inline-block;margin:.35rem .7rem .35rem 0;padding:.3rem .55rem;border:1px solid rgba(66,217,239,.55);border-radius:999px;color:#42d9ef;font-size:.78rem;letter-spacing:.08em}

/* V16: restore approved generated page visuals */
.visual-panel{height:440px;border:1px solid rgba(76,130,158,.45);border-radius:8px;overflow:hidden;background:#071d31}
.page-visual{display:block;width:100%;height:100%;object-fit:cover}
.hero-visual-image{display:block;width:100%;height:100%;object-fit:cover;border-radius:8px}
.soil-visual-wrap{margin:28px 0;border:1px solid rgba(76,130,158,.4);border-radius:8px;overflow:hidden;background:#071d31;max-width:900px}
.soil-visual{height:auto;max-height:520px;object-fit:cover}
@media(max-width:900px){
 .visual-panel{height:330px}
 .soil-visual-wrap{margin:22px 0}
}

/* V19: service hero — keep copy and artwork strictly separated */
.minihero,
.genba-hero{position:relative;overflow:hidden}
.minihero .wrap,
.genba-hero .wrap{position:relative;z-index:5;display:flex;align-items:center;min-height:720px}
.minihero .hero-copy,
.genba-hero .hero-copy{width:48%;max-width:560px}
.minihero .hero-map,
.genba-hero .hero-map{right:0;top:7%;width:49%;height:86%;z-index:2;display:flex;align-items:center;justify-content:center}
.minihero .hero-visual-image,
.genba-hero .hero-visual-image{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:8px}
@media(max-width:900px){
 .minihero .wrap,.genba-hero .wrap{display:block;min-height:0;padding-top:80px;padding-bottom:70px}
 .minihero .hero-copy,.genba-hero .hero-copy{width:100%;max-width:680px}
 .minihero .hero-map,.genba-hero .hero-map{position:relative;right:auto;top:auto;width:100%;height:420px;margin-top:42px}
}

/* V20: clean two-column visual heroes — full artwork, no overlap, no crop */
.visual-hero-section{
  padding:72px 0 82px;
  border-top:1px solid rgba(110,165,193,.16);
}
.visual-hero-grid{
  display:grid;
  grid-template-columns:minmax(0, .92fr) minmax(420px, 1.08fr);
  gap:64px;
  align-items:center;
}
.visual-hero-copy{min-width:0}
.visual-hero-copy h1{
  margin:12px 0 24px;
  font-size:clamp(42px,4.2vw,72px);
  line-height:1.08;
  letter-spacing:-.035em;
}
.visual-hero-copy .lead{
  max-width:660px;
  margin-bottom:30px;
}
.visual-hero-copy h3{margin:30px 0 12px;font-size:22px}
.visual-hero-copy .callout{margin:24px 0 28px}
.visual-hero-art{
  width:100%;
  min-height:500px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  border:1px solid rgba(82,137,165,.45);
  border-radius:10px;
  background:rgba(7,29,49,.72);
  box-sizing:border-box;
}
.visual-hero-art img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:620px;
  object-fit:contain;
  object-position:center;
}
.hero-meta{margin:8px 0 24px}
.service-price{
  display:inline-block;
  padding:9px 13px;
  border:1px solid rgba(67,211,237,.55);
  border-radius:4px;
  color:#dff8ff;
  font-size:14px;
  letter-spacing:.04em;
}
.visual-hero-copy .actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.visual-hero-copy .actions .service-badge{margin-right:2px}
@media(max-width:980px){
  .visual-hero-grid{grid-template-columns:1fr;gap:38px}
  .visual-hero-copy h1{font-size:clamp(40px,8vw,62px)}
  .visual-hero-art{min-height:0;padding:16px}
  .visual-hero-art img{max-height:none}
}

/* V22: immersive page visuals.
   The supplied artwork remains a complete image; a soft mask lets it meet
   the copy without putting HTML text/buttons on top of the artwork. */
.visual-hero-section--immersive{
  position:relative;
  overflow:hidden;
}
.visual-hero-section--immersive .wrap{
  position:relative;
  z-index:2;
}
.visual-hero-section--immersive .visual-hero-grid{
  grid-template-columns:minmax(360px,.78fr) minmax(520px,1.22fr);
  min-height:620px;
  gap:30px;
}
.visual-hero-section--immersive .visual-hero-copy{
  position:relative;
  z-index:3;
  padding:36px 0 42px;
}
.visual-hero-section--immersive .visual-hero-art{
  position:relative;
  z-index:1;
  min-height:620px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.visual-hero-section--immersive .visual-hero-art::after{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
  background:linear-gradient(90deg, var(--bg, #061a2b) 0%, rgba(6,26,43,.86) 5%, rgba(6,26,43,.28) 20%, rgba(6,26,43,0) 42%),
             linear-gradient(0deg, rgba(6,26,43,.45) 0%, rgba(6,26,43,0) 18%, rgba(6,26,43,0) 82%, rgba(6,26,43,.28) 100%);
}
.visual-hero-section--immersive .visual-hero-art img{
  width:100%;
  height:100%;
  max-width:none;
  max-height:620px;
  object-fit:contain;
  object-position:center;
  display:block;
  border:0;
  filter:saturate(.94) contrast(1.03);
}
.visual-hero-section--immersive .visual-hero-copy h1{
  text-shadow:0 2px 18px rgba(0,0,0,.45);
}
.visual-hero-section--immersive .visual-hero-copy .lead,
.visual-hero-section--immersive .visual-hero-copy h3,
.visual-hero-section--immersive .visual-hero-copy .muted{
  text-shadow:0 1px 10px rgba(0,0,0,.55);
}
@media(max-width:980px){
  .visual-hero-section--immersive .visual-hero-grid{
    grid-template-columns:1fr;
    min-height:0;
  }
  .visual-hero-section--immersive .visual-hero-copy{
    padding-bottom:20px;
  }
  .visual-hero-section--immersive .visual-hero-art{
    min-height:0;
  }
  .visual-hero-section--immersive .visual-hero-art img{
    height:auto;
    max-height:none;
  }
  .visual-hero-section--immersive .visual-hero-art::after{
    background:linear-gradient(180deg, rgba(6,26,43,.15), rgba(6,26,43,0) 30%, rgba(6,26,43,.38));
  }
}

/* V23: reference-style composition.
   The artwork is a large visual field, while the copy sits over a dark
   readable zone. This is intentionally NOT a card containing the image. */
.visual-hero-section--immersive{
  position:relative;
  min-height:700px;
  padding:0;
  overflow:hidden;
  display:flex;
  align-items:stretch;
  background:#061a2b;
}
.visual-hero-section--immersive .wrap{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
  position:relative;
  z-index:3;
}
.visual-hero-section--immersive .visual-hero-grid{
  min-height:700px;
  display:block;
}
.visual-hero-section--immersive .visual-hero-copy{
  position:relative;
  z-index:5;
  width:min(53%,760px);
  min-height:700px;
  box-sizing:border-box;
  padding:110px 48px 90px max(5vw,48px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.visual-hero-section--immersive .visual-hero-copy::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 -190px 0 0;
  background:linear-gradient(90deg,
    rgba(6,26,43,1) 0%,
    rgba(6,26,43,.99) 34%,
    rgba(6,26,43,.92) 52%,
    rgba(6,26,43,.62) 72%,
    rgba(6,26,43,0) 100%);
}
.visual-hero-section--immersive .visual-hero-art{
  position:absolute;
  z-index:1;
  top:0;
  right:0;
  width:78%;
  height:700px;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:hidden;
}
.visual-hero-section--immersive .visual-hero-art::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(6,26,43,.92) 0%,
    rgba(6,26,43,.48) 14%,
    rgba(6,26,43,.08) 34%,
    rgba(6,26,43,0) 100%),
    linear-gradient(0deg,rgba(6,26,43,.22),rgba(6,26,43,0) 24%,rgba(6,26,43,.10));
}
.visual-hero-section--immersive .visual-hero-art img{
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  object-position:right center;
  display:block;
  border:0;
  filter:saturate(.98) contrast(1.03);
}
.visual-hero-section--immersive .visual-hero-copy h1{
  font-size:clamp(46px,5.2vw,78px);
  line-height:1.08;
  margin:14px 0 26px;
  max-width:700px;
  text-shadow:0 3px 20px rgba(0,0,0,.5);
}
.visual-hero-section--immersive .visual-hero-copy .lead{
  max-width:650px;
  text-shadow:0 2px 12px rgba(0,0,0,.65);
}
.visual-hero-section--immersive .visual-hero-copy .callout{
  max-width:620px;
  background:rgba(7,39,65,.88);
  box-shadow:0 8px 30px rgba(0,0,0,.15);
}
.visual-hero-section--immersive .visual-hero-copy .actions{
  position:relative;
  z-index:6;
}
@media(max-width:980px){
  .visual-hero-section--immersive{
    min-height:0;
    display:block;
  }
  .visual-hero-section--immersive .visual-hero-grid{
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  .visual-hero-section--immersive .visual-hero-copy{
    width:100%;
    min-height:0;
    padding:76px 24px 38px;
  }
  .visual-hero-section--immersive .visual-hero-copy::before{
    inset:0;
    background:linear-gradient(180deg,#061a2b 0%,rgba(6,26,43,.96) 65%,rgba(6,26,43,.55) 100%);
  }
  .visual-hero-section--immersive .visual-hero-art{
    position:relative;
    width:100%;
    height:auto;
    min-height:0;
    order:2;
  }
  .visual-hero-section--immersive .visual-hero-art img{
    width:100%;
    height:auto;
    object-fit:contain;
  }
  .visual-hero-section--immersive .visual-hero-art::after{
    background:linear-gradient(180deg,rgba(6,26,43,.2),rgba(6,26,43,0) 35%,rgba(6,26,43,.3));
  }
}


/* V26: soil page — editorial split hero, inspired by the approved Tochinocheck composition. */
.soil-immersive{padding:74px 0 78px;overflow:hidden}
.soil-immersive .visual-hero-grid{
  grid-template-columns:minmax(430px,.82fr) minmax(560px,1.18fr);
  gap:34px;
  min-height:620px;
  align-items:center;
}
.soil-immersive .visual-hero-copy{position:relative;z-index:3;padding:20px 0 30px}
.soil-immersive .visual-hero-copy h1{font-size:clamp(48px,5vw,78px);line-height:1.03;letter-spacing:-.055em;max-width:620px}
.soil-immersive .visual-hero-copy .lead{max-width:610px;font-size:17px;line-height:1.95}
.soil-immersive .visual-hero-copy .callout{max-width:610px;margin-top:28px}
.soil-immersive .visual-hero-art{
  position:relative;z-index:1;min-height:620px;padding:0;border:0;border-radius:0;background:transparent;overflow:visible;
}
.soil-immersive .visual-hero-art::before{
  content:"";position:absolute;left:-150px;top:0;bottom:0;width:260px;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,#041326 0%,rgba(4,19,38,.92) 34%,rgba(4,19,38,.35) 72%,rgba(4,19,38,0) 100%);
}
.soil-immersive .visual-hero-art::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(4,19,38,.16),transparent 18%,transparent 82%,rgba(4,19,38,.28));
}
.soil-immersive .visual-hero-art img{
  width:calc(100% + 110px);height:620px;max-width:none;max-height:none;object-fit:cover;object-position:center;display:block;
  filter:saturate(.94) contrast(1.04);
}
@media(max-width:980px){
  .soil-immersive .visual-hero-grid{grid-template-columns:1fr;min-height:0;gap:30px}
  .soil-immersive .visual-hero-copy{padding-bottom:0}
  .soil-immersive .visual-hero-art{min-height:0}
  .soil-immersive .visual-hero-art::before{display:none}
  .soil-immersive .visual-hero-art img{width:100%;height:auto;object-fit:contain}
}


/* V28 — TochinoCheck hero: reference-inspired two-column composition.
   The illustration is a visual-only asset; all hero copy/CTAs remain HTML. */
.visual-hero-section--immersive.tochinocheck-hero{
  min-height:720px;
  padding:0;
  overflow:hidden;
  background:#061a2b;
}
.tochinocheck-hero .wrap{
  width:min(1440px,100%);
  max-width:none;
  margin:0 auto;
  padding:0 34px;
  box-sizing:border-box;
}
.tochinocheck-hero .visual-hero-grid{
  min-height:720px;
  display:grid;
  grid-template-columns:minmax(430px,0.86fr) minmax(680px,1.24fr);
  align-items:center;
  gap:18px;
}
.tochinocheck-hero .visual-hero-copy{
  position:relative;
  z-index:3;
  width:auto;
  min-height:0;
  padding:92px 0 88px 34px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.tochinocheck-hero .visual-hero-copy::before{display:none}
.tochinocheck-hero .visual-hero-copy h1{
  max-width:620px;
  margin:14px 0 26px;
  font-size:clamp(48px,4.8vw,76px);
  line-height:1.05;
  letter-spacing:-.055em;
  text-shadow:none;
}
.tochinocheck-hero .visual-hero-copy .lead{
  max-width:590px;
  line-height:1.9;
  text-shadow:none;
}
.tochinocheck-hero .visual-hero-copy .hero-meta{margin:4px 0 14px}
.tochinocheck-hero .visual-hero-copy .actions{margin-top:4px}
.tochinocheck-hero .visual-hero-art{
  position:relative;
  z-index:1;
  width:calc(100% + 70px);
  height:auto;
  min-height:0;
  padding:0;
  margin-left:-50px;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.tochinocheck-hero .visual-hero-art::after{display:none}
.tochinocheck-hero .visual-hero-art img{
  display:block;
  width:100%;
  height:auto;
  max-width:none;
  max-height:none;
  object-fit:contain;
  object-position:center center;
  border:0;
  filter:saturate(.98) contrast(1.03);
}
@media(max-width:1100px){
  .tochinocheck-hero .visual-hero-grid{
    grid-template-columns:minmax(380px,.8fr) minmax(560px,1.2fr);
  }
  .tochinocheck-hero .visual-hero-copy{padding-left:12px}
  .tochinocheck-hero .visual-hero-art{width:calc(100% + 30px);margin-left:-30px}
}
@media(max-width:980px){
  .visual-hero-section--immersive.tochinocheck-hero{min-height:0;overflow:hidden}
  .tochinocheck-hero .wrap{padding:0 24px}
  .tochinocheck-hero .visual-hero-grid{
    min-height:0;
    display:flex;
    flex-direction:column;
    gap:18px;
    align-items:stretch;
  }
  .tochinocheck-hero .visual-hero-copy{
    width:100%;
    padding:76px 0 24px;
  }
  .tochinocheck-hero .visual-hero-art{
    width:100%;
    margin:0;
    order:2;
  }
  .tochinocheck-hero .visual-hero-art img{width:100%;height:auto}
}


/* V29: reference-inspired editorial hero across visual service pages.
   The copy is HTML; the artwork is a separate visual field on the right.
   The artwork fades into the navy background toward the copy so it never
   looks like a screenshot/card pasted beside the text. */
.reference-hero{
  position:relative;
  min-height:760px;
  overflow:hidden;
  border-top:1px solid rgba(110,165,193,.12);
  background:#041326;
}
.reference-hero::before{
  content:"";
  position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(90deg,#041326 0%,#041326 23%,rgba(4,19,38,.97) 34%,rgba(4,19,38,.68) 47%,rgba(4,19,38,.12) 67%,rgba(4,19,38,0) 100%),
    linear-gradient(0deg,rgba(4,19,38,.55),transparent 28%,transparent 76%,rgba(4,19,38,.2));
  pointer-events:none;
}
.reference-hero::after{
  content:"";
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:linear-gradient(90deg,#000 0,#000 38%,transparent 72%);
}
.reference-hero .reference-art{
  position:absolute;z-index:0;right:-3%;top:0;width:76%;height:100%;
  display:flex;align-items:center;justify-content:flex-end;
  overflow:hidden;
}
.reference-hero .reference-art img{
  display:block;width:100%;height:100%;max-width:none;
  object-fit:contain;object-position:right center;
  filter:saturate(.96) contrast(1.04);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 12%,#000 31%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 12%,#000 31%,#000 100%);
}
.reference-wrap{position:relative;z-index:3;min-height:760px;display:flex;align-items:stretch}
.reference-hero .reference-copy{
  position:relative;z-index:4;width:52%;max-width:650px;min-height:760px;
  display:flex;align-items:center;padding:74px 0 82px;
}
.reference-hero .reference-copy-inner{width:100%}
.reference-hero h1{
  margin:16px 0 26px;
  font-size:clamp(52px,5.2vw,82px);
  line-height:1.06;letter-spacing:-.065em;
  text-shadow:0 3px 24px rgba(0,0,0,.32);
}
.reference-hero .lead{max-width:590px;font-size:17px;line-height:1.9}
.reference-hero .callout{max-width:560px;margin:28px 0 0}
.reference-hero .hero-meta{margin:20px 0 0}
.reference-hero .actions{margin-top:25px}
.reference-hero .eyebrow{font-size:11px;letter-spacing:.27em}
.reference-hero--check .reference-art{width:78%;right:-5%}
.reference-hero--soil .reference-art{width:72%;right:-2%}
.reference-hero--land .reference-art{width:70%;right:-1%}
.reference-hero--genba .reference-art{width:74%;right:-3%}
.check-title-accent{color:var(--cyan)}
@media(max-width:980px){
 .reference-hero{min-height:0}
 .reference-hero::before{background:linear-gradient(180deg,#041326 0%,rgba(4,19,38,.9) 48%,rgba(4,19,38,.55) 100%)}
 .reference-hero::after{mask-image:linear-gradient(180deg,#000,transparent 72%)}
 .reference-wrap{position:relative;z-index:3;min-height:760px;display:flex;align-items:stretch}
.reference-hero .reference-copy{width:100%;min-height:0;padding:78px 0 24px}
 .reference-hero .reference-art{position:relative;right:auto;top:auto;width:100%;height:auto;min-height:390px;align-items:flex-end}
 .reference-hero .reference-art img{height:auto;width:100%;object-fit:contain;mask-image:linear-gradient(180deg,transparent 0%,#000 20%,#000 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 20%,#000 100%)}
 .reference-hero h1{font-size:clamp(44px,10vw,66px)}
}
@media(max-width:600px){.reference-hero--check .reference-wrap{min-height:0}.reference-hero--check .reference-copy{padding:56px 0 20px}.reference-hero--check h1{font-size:clamp(38px,11vw,54px);line-height:1.12;letter-spacing:-.045em}.reference-hero--check .lead{font-size:15px;line-height:1.75}.reference-hero--check .lead br{display:none}.reference-hero--check .hero-meta{margin-top:16px}.reference-hero--check .service-price{font-size:1rem}.reference-hero--check .callout{font-size:14px;line-height:1.7;margin-top:20px;padding:14px 16px}.reference-hero--check .actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:20px}.reference-hero--check .actions .btn{width:100%;box-sizing:border-box;text-align:center}.reference-hero--check .reference-art{min-height:260px;margin-top:4px}.reference-hero--check .reference-art img{max-height:320px;object-fit:cover;object-position:center top}}

/* V31 HOME: full supplied panorama, natural aspect ratio, shifted slightly left. */
.hero{
  position:relative;
  overflow:hidden;
  min-height:700px;
}
.hero-map{
  position:absolute;
  z-index:0;
  top:50%;
  right:4vw;
  width:min(76vw, 1260px);
  height:auto;
  transform:translateY(-50%);
  pointer-events:none;
}
.hero-map .hero-visual-image{
  display:block;
  width:100%;
  height:auto;
  max-width:none;
  object-fit:initial;
  object-position:center;
}
.hero-map::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(4,19,38,.96) 0%,
    rgba(4,19,38,.90) 18%,
    rgba(4,19,38,.58) 33%,
    rgba(4,19,38,.18) 49%,
    rgba(4,19,38,0) 66%);
}
.hero .wrap{position:relative;z-index:2;}
.hero-copy{position:relative;z-index:3;}
.hero .hero-title-accent{color:var(--cyan);}
@media (max-width:1100px){
  .hero-map{width:82vw;right:1vw;}
}
@media (max-width:800px){
  .hero{min-height:auto;display:flex;flex-direction:column;align-items:stretch;}
  .hero .wrap{order:1;width:100%;padding-top:64px;padding-bottom:20px;}
  .hero-map{
    order:2;position:relative;top:auto;right:auto;width:100%;height:auto;transform:none;margin-top:0;opacity:1;
  }
  .hero-map::after{
    background:linear-gradient(180deg,rgba(4,19,38,.15),rgba(4,19,38,0) 25%,rgba(4,19,38,.30));
  }
}


/* HOME philosophy: HTML copy left, land visual right. */
.home-philosophy{position:relative;overflow:hidden}
.home-philosophy-grid{position:relative;display:flex;align-items:center;min-height:500px}
.home-philosophy-copy{position:relative;z-index:2;width:58%;max-width:680px}
.home-philosophy-copy .quote{font-size:clamp(34px,3.7vw,54px)}
.home-philosophy-copy .lead{margin-top:28px}
.home-philosophy-visual{position:absolute;z-index:1;right:0;top:50%;width:68%;min-width:0;transform:translateY(-50%)}
.home-philosophy-visual::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--bg) 0%,rgba(4,19,38,.92) 16%,rgba(4,19,38,.48) 33%,rgba(4,19,38,0) 55%)}
.home-philosophy-visual img{display:block;width:100%;height:auto;border-radius:8px}
@media(max-width:900px){.home-philosophy-grid{display:flex;flex-direction:column;align-items:stretch;min-height:0;gap:30px}.home-philosophy-copy{width:100%;max-width:none}.home-philosophy-visual{position:relative;right:auto;top:auto;width:100%;transform:none}.home-philosophy-visual::before{background:linear-gradient(180deg,var(--bg) 0%,rgba(4,19,38,0) 28%)}}

/* SOIL hero V2: history-led visual, basic responsive composition. */
.reference-hero--soil .soil-title-accent{color:var(--cyan)}
.reference-hero--soil .reference-art{width:78%;right:-2%}
.reference-hero--soil .reference-art img{object-fit:cover;object-position:center}
@media(max-width:980px){.reference-hero--soil .reference-wrap{flex-direction:column;min-height:0}.reference-hero--soil .reference-copy{order:1}.reference-hero--soil .reference-art{order:2;width:100%;min-height:0;margin-top:18px}.reference-hero--soil .reference-art img{height:auto;object-fit:contain}}

/* BUSINESS hero: basic copy-over-art composition. */
.business-hero{overflow:hidden}
.business-hero-grid{position:relative;display:flex;align-items:center;min-height:520px;margin-bottom:30px}
.business-hero-copy{position:relative;z-index:2;width:58%;max-width:680px}
.business-hero-copy h2{font-size:clamp(46px,5vw,72px);text-shadow:0 3px 24px rgba(0,0,0,.32)}
.business-hero-copy .business-title-accent{color:var(--cyan)}
.business-hero-visual{position:absolute;z-index:1;right:0;top:50%;width:70%;transform:translateY(-50%)}
.business-hero-visual::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--bg) 0%,rgba(4,19,38,.92) 16%,rgba(4,19,38,.48) 34%,rgba(4,19,38,0) 56%)}
.business-hero-visual img{display:block;width:100%;height:auto;border-radius:8px}
@media(max-width:900px){.business-hero-grid{flex-direction:column;align-items:stretch;min-height:0;margin-bottom:12px}.business-hero-copy{width:100%;max-width:none}.business-hero-visual{position:relative;right:auto;top:auto;width:100%;transform:none;margin-top:30px}.business-hero-visual::before{background:linear-gradient(180deg,var(--bg) 0%,rgba(4,19,38,0) 28%)}}

/* BUSINESS service groups. */
.business-tools{grid-template-columns:repeat(3,1fr);margin-top:72px}
.business-tools .development{cursor:default;color:var(--muted);border-style:dashed;background:#071b30}
@media(max-width:900px){.business-tools{grid-template-columns:1fr;margin-top:44px}}

/* LAND page accents and field-inspection section. */
.reference-hero--land .land-title-accent{color:var(--cyan)}
.land-field{overflow:hidden}
.land-field-grid{position:relative;display:flex;align-items:center;min-height:520px}
.land-field-copy{position:relative;z-index:2;width:58%;max-width:680px}
.land-field-visual{position:absolute;z-index:1;right:0;top:50%;width:70%;transform:translateY(-50%)}
.land-field-visual::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--bg2) 0%,rgba(7,27,48,.92) 16%,rgba(7,27,48,.48) 34%,rgba(7,27,48,0) 56%)}
.land-field-visual img{display:block;width:100%;height:auto;border-radius:8px}
@media(max-width:900px){.land-field-grid{flex-direction:column;align-items:stretch;min-height:0}.land-field-copy{width:100%;max-width:none}.land-field-visual{position:relative;right:auto;top:auto;width:100%;transform:none;margin-top:30px}.land-field-visual::before{background:linear-gradient(180deg,var(--bg2) 0%,rgba(7,27,48,0) 28%)}}

/* SOIL legal-frame heading and detail. */
#soil-framework .soil-framework-title-accent{color:var(--cyan)}
#soil-framework .soil-framework-detail{margin-top:18px}
.legal-diagram{display:none}

/* SOIL framework: detailed copy with factory grid artwork. */
#soil-framework{overflow:hidden}
.soil-framework-grid{position:relative;display:flex;align-items:center;min-height:570px;margin-bottom:36px}
.soil-framework-copy{position:relative;z-index:2;width:59%;max-width:700px}
.soil-framework-visual{position:absolute;z-index:1;right:0;top:50%;width:72%;transform:translateY(-50%)}
.soil-framework-visual::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--bg2) 0%,rgba(7,27,48,.94) 16%,rgba(7,27,48,.52) 35%,rgba(7,27,48,0) 58%)}
.soil-framework-visual img{display:block;width:100%;height:auto;border-radius:8px}
.soil-framework-visual{overflow:hidden;border-radius:8px}
.soil-framework-visual::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:url("assets/tochinowa-soil-grid-overlay.svg?v=6") center/100% 100% no-repeat;transform:translate(-26.5%,-.4%)}
.soil-framework-visual::before{z-index:2}
@media(max-width:900px){.soil-framework-grid{flex-direction:column;align-items:stretch;min-height:0;margin-bottom:30px}.soil-framework-copy{width:100%;max-width:none}.soil-framework-visual{position:relative;right:auto;top:auto;width:100%;transform:none;margin-top:30px}.soil-framework-visual::before{background:linear-gradient(180deg,var(--bg2) 0%,rgba(7,27,48,0) 28%)}}
#soil-framework .legal-diagram{display:none!important}
#soil-framework .callout.warn{display:none!important}
.soil-process-section{padding:76px 0}.soil-process-grid{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:42px;align-items:center}.soil-process-section h2{font-size:clamp(32px,4vw,54px);margin:10px 0 18px}.soil-process-section .lead{max-width:760px}.soil-process-index{font:800 clamp(80px,12vw,160px)/1 monospace;color:rgba(66,217,239,.16);text-align:right;letter-spacing:-.08em}@media(max-width:900px){.soil-process-grid{grid-template-columns:1fr;gap:16px}.soil-process-index{text-align:left;font-size:72px}.soil-process-section{padding:58px 0}}
.soil-process-section:first-of-type .soil-process-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.62fr)}.soil-process-visual{position:relative;overflow:hidden;border-radius:8px;box-shadow:0 18px 42px rgba(0,0,0,.25)}.soil-process-visual::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--bg) 0%,rgba(4,19,38,.55) 18%,transparent 42%)}.soil-process-visual img{display:block;width:100%;height:auto}@media(max-width:900px){.soil-process-section:first-of-type .soil-process-grid{grid-template-columns:1fr}.soil-process-visual{margin-top:12px}.soil-process-visual::before{background:linear-gradient(180deg,var(--bg) 0%,transparent 28%)}}
.technology-rebuild{padding:86px 0}.technology-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:52px;align-items:center}.technology-copy{max-width:700px}.technology-rebuild h2{font-size:clamp(38px,5vw,70px);margin:10px 0 22px}.technology-placeholder{min-height:360px;border:1px solid rgba(66,217,239,.38);border-radius:8px;background:linear-gradient(135deg,#0b2b46,#06192b);display:grid;place-items:center;text-align:center;color:var(--cyan);font:700 14px/1.8 monospace;letter-spacing:.2em;box-shadow:inset 0 0 70px rgba(25,216,242,.08)}@media(max-width:900px){.technology-grid{grid-template-columns:1fr;gap:28px}.technology-placeholder{min-height:240px}.technology-rebuild{padding:62px 0}}
.technology-rebuild .tech-accent{color:var(--cyan)}
body:has(.reference-hero--check) .metrics::before{content:"住所だけでご依頼いただけます。まずはメールで対象住所をお送りください。対応の可否と納期をメールで返信し、受付後は1営業日後を目安に、編集可能なWord形式の報告書を納品します。料金は1住所9,900円（税込）です。";display:block;grid-column:1/-1;max-width:900px;margin:0 0 18px;padding:18px 20px;border-left:3px solid var(--cyan);background:#0b2942;color:#c4d8e3;line-height:1.85}
body:has(.reference-hero--check) #report .cards .tag{font-size:13px;letter-spacing:.14em}
body:has(.reference-hero--check) .process .active{color:var(--cyan);background:#0d4562;border-color:var(--cyan);font-size:12px;box-shadow:0 0 18px rgba(66,217,239,.22);transform:translateY(-2px)}
body:has(.reference-hero--check) .process .active b{color:#fff;font-size:17px}
.reference-hero--land .reference-wrap,.reference-hero--check .reference-wrap,.reference-hero--genba .reference-wrap{flex-direction:column}.reference-hero--land .reference-copy,.reference-hero--check .reference-copy,.reference-hero--genba .reference-copy{order:1;width:100%;min-height:0}.reference-hero--land .reference-art,.reference-hero--check .reference-art,.reference-hero--genba .reference-art{order:2;position:relative;right:auto;top:auto;width:100%;height:auto;min-height:0;margin-top:18px;align-items:flex-end}.reference-hero--land .reference-art img,.reference-hero--check .reference-art img,.reference-hero--genba .reference-art img{width:100%;height:auto;max-height:none;object-fit:contain;object-position:center;mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 100%)}
@media(min-width:981px){.reference-hero--land .reference-wrap,.reference-hero--check .reference-wrap,.reference-hero--genba .reference-wrap{flex-direction:row;min-height:760px}.reference-hero--land .reference-copy,.reference-hero--check .reference-copy,.reference-hero--genba .reference-copy{order:initial;width:52%;min-height:760px}.reference-hero--land .reference-art,.reference-hero--check .reference-art,.reference-hero--genba .reference-art{order:initial;position:absolute;right:-3%;top:0;width:76%;height:100%;min-height:0;margin-top:0}.reference-hero--land .reference-art{width:70%;right:-1%}.reference-hero--check .reference-art{width:78%;right:-5%}.reference-hero--genba .reference-art{width:74%;right:-3%}.reference-hero--land .reference-art img,.reference-hero--check .reference-art img,.reference-hero--genba .reference-art img{width:100%;height:100%;max-height:none;object-fit:contain;object-position:right center;mask-image:none;-webkit-mask-image:none}}
.genba-title-accent{color:var(--cyan)}.reference-hero--genba + .section .metrics{gap:24px;margin-top:38px}.reference-hero--genba + .section .metric{padding:20px 0}.reference-hero--genba + .section .metric strong{font-size:32px;line-height:1.15}.reference-hero--genba + .section .metric span{display:block;margin-top:7px;font-size:14px;line-height:1.6}@media(max-width:600px){.reference-hero--genba + .section .metrics{grid-template-columns:repeat(2,1fr);gap:18px}.reference-hero--genba + .section .metric strong{font-size:26px}.reference-hero--genba + .section .metric span{font-size:13px}}
.reference-hero--genba + .section .tag{font-size:14px;letter-spacing:.16em}.reference-hero--genba + .section .card h3{font-size:22px}.reference-hero--genba + .section .card p{font-size:15px;line-height:1.85}@media(max-width:600px){.reference-hero--genba + .section .tag{font-size:13px}.reference-hero--genba + .section .card h3{font-size:20px}}
#sample .sample-points{grid-template-columns:1fr;gap:12px;max-width:720px}#sample .sample-points div{padding:18px 20px}#sample .sample-points b{font-size:15px;margin-bottom:8px}#sample .sample-points span{display:block;font-size:16px;line-height:1.8}@media(max-width:600px){#sample .sample-points div{padding:16px}#sample .sample-points b{font-size:14px}#sample .sample-points span{font-size:15px}}
#sample .sample-page-number{display:inline;color:var(--cyan);font:800 inherit/1.8 system-ui,-apple-system,"Noto Sans JP","Yu Gothic",sans-serif}
.reference-hero--check .reference-art::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,var(--bg) 0%,rgba(4,19,38,.9) 10%,rgba(4,19,38,.5) 24%,rgba(4,19,38,0) 44%)}
body:has(.reference-hero--check) .check-report-pages{grid-template-columns:1fr;gap:12px;max-width:760px}body:has(.reference-hero--check) .check-report-pages div{padding:18px 20px}body:has(.reference-hero--check) .check-report-pages span{display:block;font-size:16px;line-height:1.8}body:has(.reference-hero--check) .check-page-number{display:inline;color:var(--cyan);font-weight:800}@media(max-width:600px){body:has(.reference-hero--check) .check-report-pages div{padding:16px}body:has(.reference-hero--check) .check-report-pages span{font-size:15px}}
.soil-process-section.sampling .soil-process-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.62fr)}.soil-process-visual{position:relative;overflow:hidden;border-radius:8px;box-shadow:0 18px 42px rgba(0,0,0,.25)}.soil-process-visual::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--bg) 0%,rgba(4,19,38,.55) 18%,transparent 42%)}.soil-process-visual img{display:block;width:100%;height:auto}@media(max-width:900px){.soil-process-section.sampling .soil-process-grid{grid-template-columns:1fr}.soil-process-visual{margin-top:12px}.soil-process-visual::before{background:linear-gradient(180deg,var(--bg) 0%,transparent 28%)}}
.soil-process-section.sampling .soil-process-grid{grid-template-columns:minmax(0,1fr) minmax(240px,400px)}.soil-process-section.sampling .soil-process-visual{width:100%;max-width:400px;height:280px;justify-self:end}.soil-process-section.sampling .soil-process-visual img{height:100%;object-fit:cover}@media(max-width:900px){.soil-process-section.sampling .soil-process-visual{width:min(100%,440px);max-width:none;height:auto;aspect-ratio:3/2;justify-self:start}}
.soil-process-section.has-visual .soil-process-grid{grid-template-columns:minmax(0,1fr) minmax(240px,400px)}.soil-process-section.has-visual .soil-process-visual{width:100%;max-width:400px;height:280px;justify-self:end}.soil-process-section.has-visual .soil-process-visual img{height:100%;object-fit:cover}@media(max-width:900px){.soil-process-section.has-visual .soil-process-grid{grid-template-columns:1fr}.soil-process-section.has-visual .soil-process-visual{width:min(100%,440px);max-width:none;height:auto;aspect-ratio:3/2;justify-self:start}}

.technology-visual{position:relative;overflow:hidden;border-radius:8px;min-height:360px;box-shadow:0 18px 48px rgba(0,0,0,.28)}.technology-visual::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--bg) 0%,rgba(4,19,38,.48) 18%,transparent 42%)}.technology-rebuild.alt .technology-visual::before{background:linear-gradient(90deg,var(--bg2) 0%,rgba(7,27,48,.48) 18%,transparent 42%)}.technology-visual img{display:block;width:100%;height:360px;object-fit:cover}@media(max-width:900px){.technology-visual{min-height:0}.technology-visual img{height:auto;aspect-ratio:3/2}.technology-visual::before,.technology-rebuild.alt .technology-visual::before{background:linear-gradient(180deg,var(--bg) 0%,transparent 28%)}}

body:has(.reference-hero--check) .check-report-stack img{filter:blur(2px) saturate(.72);opacity:1}body:has(.reference-hero--check) .check-report-title{color:#fff;font-weight:800}

@media(min-width:901px){body:has(.hero .soil-hero-map) .hero>.wrap{transform:translateX(-72px)}}

.home-title-accent{color:var(--cyan)}

.home-philosophy-quote{color:var(--white)}.home-philosophy-quote .home-title-accent{color:var(--cyan)}

.business-hero .business-section-title{margin:54px 0 18px;font-size:clamp(26px,3vw,36px);line-height:1.2;letter-spacing:.01em;color:var(--white)}.business-hero .business-section-title--proprietary{margin-top:110px}.business-hero .card .tag{font-size:14px;line-height:1.5}@media(max-width:600px){.business-hero .business-section-title{margin-top:42px;font-size:26px}.business-hero .business-section-title--proprietary{margin-top:76px}.business-hero .card .tag{font-size:13px}}

.business-hero .business-section-title--proprietary{margin-bottom:8px}.business-hero .business-section-title--proprietary+.business-tools{margin-top:12px}

.business-standard-accent{color:var(--cyan)}.business-standard .metric span{font-size:16px;line-height:1.6}

.business-tools .business-name-ja{font-size:calc(1em - 4px);font-weight:inherit}

.business-tools .card{display:flex;flex-direction:column}.business-tools .card>.btn{align-self:flex-start;margin-top:auto}

.land-section-accent{color:var(--cyan)}

.genba-find-section .card .tag{font-size:15px;line-height:1.5;letter-spacing:.16em}

.about-overview .metric span{font-size:17px;line-height:1.6;color:var(--cyan)}

.about-title-accent{color:var(--cyan)}

.about-hero-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:42px;align-items:center}.about-hero-copy{min-width:0}.about-hero-visual{position:relative;overflow:hidden;min-height:520px;border-radius:8px;box-shadow:0 20px 52px rgba(0,0,0,.28)}.about-hero-visual::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--bg) 0%,rgba(4,19,38,.56) 15%,transparent 38%)}.about-hero-visual img{display:block;width:100%;height:520px;object-fit:cover;object-position:center}@media(max-width:900px){.about-hero-grid{grid-template-columns:1fr}.about-hero-visual{min-height:0;margin-top:10px}.about-hero-visual img{height:auto;aspect-ratio:3/2}.about-hero-visual::before{background:linear-gradient(180deg,var(--bg) 0%,transparent 28%)}}

.about-philosophy-quote{color:var(--white)}.about-philosophy-quote .about-quote-accent{color:var(--cyan)}

.about-overview .representative-tag{font-size:16px;line-height:1.5;letter-spacing:.16em;color:var(--cyan)}

.business-hero .business-section-title--core{margin-bottom:8px}.business-hero .business-section-title--core+.business-main-services{margin-top:12px}

footer .footlinks>b{font-size:15px;line-height:1.4;color:var(--cyan)}

footer .footgrid>div:first-child>p:not(.footer-note){font-size:14px;line-height:1.6}

body:has(.reference-hero--check) .metric span{font-size:15px;line-height:1.6;color:var(--cyan)}

.menu-toggle{display:none;border:1px solid #376b85;background:#092038;color:#fff;border-radius:5px;width:42px;height:38px;font-size:22px;line-height:1;cursor:pointer}@media(max-width:900px){.menu-toggle{display:block}.nav{position:relative}.navlinks{display:none;position:absolute;top:calc(100% + 1px);left:0;right:0;padding:14px 20px 18px;background:#041326f7;border-bottom:1px solid var(--line);box-shadow:0 14px 28px #0006;flex-direction:column;align-items:stretch;gap:0}.navlinks.menu-open{display:flex}.navlinks a{padding:10px 8px;border-bottom:1px solid #17344a;font-size:14px}.navlinks a:last-child{border-bottom:0}.navlinks .navcta{text-align:center;margin-top:8px}}
