: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)}.navlinks a.active{font-weight:700}.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}.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}}

.logo{flex-direction:column;justify-content:center;height:auto;line-height:1}.logo-company-name{display:block;margin-top:-7px;color:#d7e8f2;font-size:10px;font-weight:700;letter-spacing:.38em;white-space:nowrap;padding-left:.38em}

.news-list{grid-template-columns:1fr}

.footbrand{display:inline-flex;flex-direction:column;align-items:center;line-height:1}.footbrand-company-name{display:block;margin-top:-7px;padding-left:.38em;color:#d7e8f2;font-size:10px;font-weight:700;letter-spacing:.38em;white-space:nowrap}

.genba-stack img:nth-child(1){z-index:3}.genba-stack img:nth-child(2){z-index:2}.genba-stack img:nth-child(3){z-index:1}

.genba-stack{min-height:1080px}
.genba-stack img{width:min(86%,460px)}
.genba-stack img:nth-child(1){left:2%;right:auto;top:0;transform:rotate(-.8deg);z-index:5}
.genba-stack img:nth-child(2){left:auto;right:0;top:120px;transform:rotate(.8deg);z-index:4}
.genba-stack img:nth-child(3){left:2%;right:auto;top:240px;transform:rotate(-.5deg);z-index:3}
.genba-stack img:nth-child(4){left:auto;right:0;top:360px;transform:rotate(.6deg);z-index:2}
.genba-stack img:nth-child(5){left:2%;right:auto;top:480px;transform:rotate(0);z-index:1}
@media(max-width:900px){.genba-stack{min-height:800px}.genba-stack img{width:78%}.genba-stack img:nth-child(1){top:0}.genba-stack img:nth-child(2){top:85px}.genba-stack img:nth-child(3){top:170px}.genba-stack img:nth-child(4){top:255px}.genba-stack img:nth-child(5){top:340px}}
/* Tochino Onsite report preview: keep page titles visible while obscuring report details */
.genba-stack .report-page{filter:saturate(.82) blur(3px)}
.genba-stack .report-title-strip{height:72px;object-fit:cover;object-position:top;filter:saturate(.9);clip-path:inset(0 34% 0 0);border:0;box-shadow:none;pointer-events:none;z-index:20!important}
.genba-stack .report-title-1{left:2%!important;right:auto!important;top:0!important;transform:rotate(-.8deg)!important}
.genba-stack .report-title-2{left:auto!important;right:0!important;top:120px!important;transform:rotate(.8deg)!important}
.genba-stack .report-title-3{left:2%!important;right:auto!important;top:240px!important;transform:rotate(-.5deg)!important}
.genba-stack .report-title-4{left:auto!important;right:0!important;top:360px!important;transform:rotate(.6deg)!important}
.genba-stack .report-title-5{left:2%!important;right:auto!important;top:480px!important;transform:rotate(0)!important}
@media(max-width:900px){.genba-stack .report-title-strip{height:54px}.genba-stack .report-title-1{top:0!important}.genba-stack .report-title-2{top:85px!important}.genba-stack .report-title-3{top:170px!important}.genba-stack .report-title-4{top:255px!important}.genba-stack .report-title-5{top:340px!important}}
/* Tochino Onsite report preview: fanned five-page arrangement */
.report-sample{position:relative;z-index:2}.genba-stack{min-height:940px!important;padding:10px 8px 0!important;overflow:visible}
.genba-stack .report-page{width:min(88%,470px)!important;filter:saturate(.88) blur(1.15px)!important;transform-origin:center top}
.genba-stack .report-page-5{left:11%!important;right:auto!important;top:0!important;transform:rotate(5deg)!important;z-index:1!important}
.genba-stack .report-page-4{left:3%!important;right:auto!important;top:125px!important;transform:rotate(-1deg)!important;z-index:2!important}
.genba-stack .report-page-3{left:0!important;right:auto!important;top:250px!important;transform:rotate(-5deg)!important;z-index:3!important}
.genba-stack .report-page-2{left:7%!important;right:auto!important;top:385px!important;transform:rotate(3deg)!important;z-index:4!important}
.genba-stack .report-page-1{left:4%!important;right:auto!important;top:525px!important;transform:rotate(0)!important;z-index:5!important}
.genba-stack .report-title-strip{display:none!important}
@media(max-width:900px){.genba-stack{min-height:720px!important;padding-left:0!important;padding-right:0!important}.genba-stack .report-page{width:90%!important}.genba-stack .report-page-5{left:8%!important;top:0!important}.genba-stack .report-page-4{left:3%!important;top:90px!important}.genba-stack .report-page-3{left:0!important;top:180px!important}.genba-stack .report-page-2{left:6%!important;top:275px!important}.genba-stack .report-page-1{left:3%!important;top:375px!important}}

/* V-theme-cycle: semantic day-cycle palette. Level 0 intentionally matches
   the original Night design; Levels 1-4 only replace color and image tone. */
:root,
html[data-theme-level="0"]{
 --bg:#041326;--bg2:#071b30;--panel:#0a2239;--panel2:#0d2b47;--line:#1d425c;
 --cyan:#42d9ef;--cyan-text:#42d9ef;--blue:#1689d4;--text:#eef8fc;--muted:#a8bfce;--white:#fff;
 --header-bg:rgba(4,19,38,.93);--nav-text:#c1d5e1;--nav-border:#376b85;--nav-hover:#0b2942;
 --hero-outer:#041326;--hero-mid:#082b47;--hero-light:#0b5276;--hero-grid:#ffffff08;--hero-copy:#c7dbe6;
 --button-bg:#092038;--button-border:#3b6b84;--button-text:#fff;--accent-on:#03141e;
 --light-bg:#0a2943;--panel-bg:#081e34;--callout-bg:#0b2942;--callout-text:#c4d8e3;
 --lead:#b9ceda;--smallnote:#87a6b7;--logo-sub:#d7e8f2;--control-bg:#061a2b;--control-border:#315b73;
 --overlay-0:rgba(4,19,38,.96);--overlay-1:rgba(4,19,38,.90);--overlay-2:rgba(4,19,38,.58);--overlay-3:rgba(4,19,38,.18);--overlay-end:rgba(4,19,38,0);
 --footer-bg:#020e1a;--footer-text:#7893a4;--footer-line:#17344a;--footer-strong:#fff;--footer-accent:#42d9ef;
 --shadow:rgba(0,0,0,.28);--image-filter:none;--photo-warm:rgba(0,0,0,0);--panel-warm:rgba(0,0,0,0);
 --section-background:var(--bg);--alt-background:var(--bg2);--light-background:var(--light-bg);
 --hero-background:radial-gradient(circle at 74% 48%,var(--hero-light) 0,var(--hero-mid) 25%,var(--hero-outer) 63%);
}
html[data-theme-level="1"]{
 --bg:#10263a;--bg2:#142e43;--panel:#19384e;--panel2:#20445a;--line:#36586c;
 --cyan:#4dd8e9;--cyan-text:#42d9ef;--blue:#2ca0c4;--text:#f1f8fb;--muted:#b8cbd5;--white:#f7fbfc;
 --header-bg:linear-gradient(90deg,rgba(16,38,58,.96),rgba(35,28,46,.94));--nav-text:#d0dee5;--nav-border:#5e5770;--nav-hover:#302c43;
 --hero-outer:#10263a;--hero-mid:#263b53;--hero-light:#655166;--hero-grid:#efddeb0d;--hero-copy:#d8e2e7;
 --button-bg:#1b3d53;--button-border:#557b8e;--button-text:#f7fbfc;--accent-on:#06212b;
 --light-bg:#294458;--panel-bg:#1a354a;--callout-bg:#273c52;--callout-text:#d4e3e8;
 --content-surface:#1a354a;--content-surface-text:#f1f8fb;--content-surface-muted:#b8cbd5;--content-surface-cyan:#42d9ef;
 --lead:#c9d9df;--smallnote:#a8bec9;--logo-sub:#e0ebef;--control-bg:#172f43;--control-border:#557b8e;
 --overlay-0:rgba(16,38,58,.94);--overlay-1:rgba(16,38,58,.86);--overlay-2:rgba(16,38,58,.52);--overlay-3:rgba(16,38,58,.16);--overlay-end:rgba(16,38,58,0);
 --footer-bg:#0b1f31;--footer-text:#91a9b6;--footer-line:#29495c;--footer-strong:#f4fafc;--footer-accent:#4dd8e9;
 --shadow:rgba(0,0,0,.24);--image-filter:brightness(1.02) saturate(.98);--photo-warm:rgba(145,66,93,.16);--panel-warm:rgba(141,69,92,.10);
 --section-background:radial-gradient(circle at 88% 8%,rgba(132,59,91,.13) 0,transparent 36%),linear-gradient(135deg,#10263a 0%,#14283e 60%,#241e31 100%);
 --alt-background:radial-gradient(circle at 12% 90%,rgba(139,71,91,.10) 0,transparent 38%),linear-gradient(135deg,#142e43 0%,#20374b 68%,#302838 100%);
 --light-background:radial-gradient(circle at 85% 15%,rgba(180,91,88,.11) 0,transparent 38%),linear-gradient(135deg,#24475c,#303d53);
 --hero-background:radial-gradient(circle at 79% 43%,rgba(151,73,99,.32) 0%,rgba(86,67,91,.20) 25%,transparent 50%),radial-gradient(circle at 74% 48%,#3b5264 0,#213b51 28%,#10263a 66%);
}
html[data-theme-level="2"]{
 --bg:#819ca7;--bg2:#9aabb0;--panel:#bcc7c6;--panel2:#c8cfca;--line:#587582;
 --cyan:#003042;--cyan-text:#42d9ef;--blue:#176d86;--text:#092033;--muted:#102e3d;--white:#092033;
 --header-bg:linear-gradient(90deg,rgba(117,148,161,.96),rgba(174,139,137,.92));--nav-text:#153747;--nav-border:#6b7282;--nav-hover:#b3aaa9;
 --hero-outer:#6f91a1;--hero-mid:#9faeb1;--hero-light:#e4b99f;--hero-grid:#0a2b3a10;--hero-copy:#102e3d;
 --button-bg:#aebdbc;--button-border:#3a6575;--button-text:#082235;--accent-on:#fff;
 --light-bg:#d2d0c8;--panel-bg:#bbc5c2;--callout-bg:#b9c1bd;--callout-text:#123444;
 --content-surface:#17384d;--content-surface-text:#f3fafc;--content-surface-muted:#c5d8e1;--content-surface-cyan:#42d9ef;
 --lead:#102e3d;--smallnote:#173746;--logo-sub:#173746;--control-bg:#c6ceca;--control-border:#496d7a;
 --overlay-0:rgba(129,156,167,.96);--overlay-1:rgba(129,156,167,.88);--overlay-2:rgba(129,156,167,.58);--overlay-3:rgba(129,156,167,.18);--overlay-end:rgba(129,156,167,0);
 --footer-bg:#435f6e;--footer-text:#fff;--footer-line:#688390;--footer-strong:#fff;--footer-accent:#67e7f4;
 --shadow:rgba(4,19,38,.18);--image-filter:brightness(1.06) saturate(.92);--photo-warm:rgba(241,160,112,.24);--panel-warm:rgba(224,150,118,.15);
 --section-background:radial-gradient(circle at 82% 9%,rgba(238,169,133,.27) 0,rgba(211,139,139,.12) 26%,transparent 52%),linear-gradient(135deg,#7c9aa7 0%,#9daeb0 58%,#bca9a1 100%);
 --alt-background:radial-gradient(circle at 16% 85%,rgba(204,128,136,.15) 0,transparent 42%),linear-gradient(135deg,#8da7b0 0%,#adb6b3 62%,#c5b0a5 100%);
 --light-background:radial-gradient(circle at 85% 15%,rgba(239,179,132,.19) 0,transparent 40%),linear-gradient(135deg,#bdcbcb,#d5cdc3);
 --hero-background:radial-gradient(circle at 79% 41%,rgba(244,176,125,.48) 0%,rgba(217,137,137,.23) 25%,transparent 49%),radial-gradient(circle at 74% 48%,#d8b7a3 0,#9faeb1 32%,#6f91a1 68%);
}
html[data-theme-level="3"]{
 --bg:#dce7ea;--bg2:#d1e0e4;--panel:#f0f5f6;--panel2:#e8f0f2;--line:#a7bdc6;
 --cyan:#006f84;--cyan-text:#42d9ef;--blue:#167b98;--text:#071b30;--muted:#455e6c;--white:#071b30;
 --header-bg:linear-gradient(90deg,rgba(220,231,234,.96),rgba(236,228,219,.93));--nav-text:#284653;--nav-border:#8aa6b1;--nav-hover:#d8e0df;
 --hero-outer:#c5d8dd;--hero-mid:#d8e8ea;--hero-light:#f3e9d2;--hero-grid:#0a2b3a0d;--hero-copy:#294957;
 --button-bg:#edf3f4;--button-border:#7f9eaa;--button-text:#153645;--accent-on:#fff;
 --light-bg:#f0f4f3;--panel-bg:#edf3f4;--callout-bg:#cbdde1;--callout-text:#173746;
 --content-surface:#214459;--content-surface-text:#f4fafc;--content-surface-muted:#cadae2;--content-surface-cyan:#42d9ef;
 --lead:#365462;--smallnote:#58727f;--logo-sub:#284653;--control-bg:#f3f7f7;--control-border:#7f9eaa;
 --overlay-0:rgba(220,231,234,.97);--overlay-1:rgba(220,231,234,.89);--overlay-2:rgba(220,231,234,.60);--overlay-3:rgba(220,231,234,.20);--overlay-end:rgba(220,231,234,0);
 --footer-bg:#587180;--footer-text:#fff;--footer-line:#78919d;--footer-strong:#fff;--footer-accent:#d2faff;
 --shadow:rgba(4,19,38,.14);--image-filter:brightness(1.04) saturate(.90);--photo-warm:rgba(240,194,154,.10);--panel-warm:rgba(225,184,154,.07);
 --section-background:radial-gradient(circle at 84% 8%,rgba(239,203,165,.13) 0,transparent 39%),linear-gradient(135deg,#d9e7ea 0%,#e5edef 62%,#eee9e2 100%);
 --alt-background:radial-gradient(circle at 14% 88%,rgba(231,190,158,.09) 0,transparent 42%),linear-gradient(135deg,#d1e0e4,#e2e8e7);
 --light-background:linear-gradient(135deg,#edf4f4,#f2eee8);
 --hero-background:radial-gradient(circle at 78% 42%,rgba(242,204,161,.20) 0%,transparent 42%),radial-gradient(circle at 74% 48%,#f1e9dc 0,#d8e8ea 34%,#c5d8dd 69%);
}
html[data-theme-level="4"]{
 --bg:#f7fafb;--bg2:#eaf1f3;--panel:#fff;--panel2:#f1f6f7;--line:#c8d7dd;
 --cyan:#006d82;--cyan-text:#42d9ef;--blue:#167792;--text:#071b30;--muted:#4a6270;--white:#071b30;
 --header-bg:rgba(247,250,251,.96);--nav-text:#2d4a57;--nav-border:#a4bac3;--nav-hover:#e8f1f3;
 --hero-outer:#f7fafb;--hero-mid:#eff7f8;--hero-light:#dff2f4;--hero-grid:#0a2b3a0b;--hero-copy:#294957;
 --button-bg:#fff;--button-border:#9cb4be;--button-text:#153645;--accent-on:#fff;
 --light-bg:#f0f5f6;--panel-bg:#fff;--callout-bg:#e5f0f2;--callout-text:#173746;
 --content-surface:#17384d;--content-surface-text:#f5fbfd;--content-surface-muted:#cbdde4;--content-surface-cyan:#42d9ef;
 --lead:#3d5865;--smallnote:#58717c;--logo-sub:#2d4a57;--control-bg:#fff;--control-border:#9cb4be;
 --overlay-0:rgba(247,250,251,.98);--overlay-1:rgba(247,250,251,.91);--overlay-2:rgba(247,250,251,.64);--overlay-3:rgba(247,250,251,.23);--overlay-end:rgba(247,250,251,0);
 --footer-bg:#627985;--footer-text:#fff;--footer-line:#8297a1;--footer-strong:#fff;--footer-accent:#faffff;
 --shadow:rgba(4,19,38,.12);--image-filter:brightness(1.04) saturate(.88);--photo-warm:rgba(0,0,0,0);--panel-warm:rgba(0,0,0,0);
 --section-background:var(--bg);--alt-background:var(--bg2);--light-background:var(--light-bg);
 --hero-background:radial-gradient(circle at 74% 48%,var(--hero-light) 0,var(--hero-mid) 25%,var(--hero-outer) 63%);
}

/* Map existing components to semantic theme tokens without changing layout. */
html[data-theme-level]:not([data-theme-level="0"]) body{background:var(--bg);color:var(--text)}
html[data-theme-level]:not([data-theme-level="0"]) header{background:var(--header-bg);border-color:var(--line)}
html[data-theme-level]:not([data-theme-level="0"]) .navlinks{color:var(--nav-text)}
html[data-theme-level]:not([data-theme-level="0"]) .navcta{border-color:var(--nav-border);color:var(--text)!important}
html[data-theme-level]:not([data-theme-level="0"]) .navcta:hover{background:var(--nav-hover)}
html[data-theme-level]:not([data-theme-level="0"]) .logo-company-name{color:var(--logo-sub)}
html[data-theme-level]:not([data-theme-level="0"]) .hero{background:var(--hero-background)}
html[data-theme-level]:not([data-theme-level="0"]) .hero::after{background-image:linear-gradient(var(--hero-grid) 1px,transparent 1px),linear-gradient(90deg,var(--hero-grid) 1px,transparent 1px)}
html[data-theme-level]:not([data-theme-level="0"]) .hero-map::after{background:radial-gradient(circle at 86% 36%,var(--photo-warm) 0%,transparent 38%),linear-gradient(90deg,var(--overlay-0) 0%,var(--overlay-1) 18%,var(--overlay-2) 33%,var(--overlay-3) 49%,var(--overlay-end) 66%)}
html[data-theme-level]:not([data-theme-level="0"]) .hero-map .hero-visual-image{filter:var(--image-filter)}
html[data-theme-level]:not([data-theme-level="0"]) .hero p{color:var(--hero-copy)}
html[data-theme-level]:not([data-theme-level="0"]) .reference-hero{background:var(--hero-background)}
html[data-theme-level]:not([data-theme-level="0"]) .reference-hero::before{background:radial-gradient(circle at 86% 36%,var(--photo-warm) 0%,transparent 38%),linear-gradient(90deg,var(--overlay-0) 0%,var(--overlay-1) 23%,var(--overlay-2) 42%,var(--overlay-3) 60%,var(--overlay-end) 78%)}
html[data-theme-level]:not([data-theme-level="0"]) .reference-hero::after{background-image:linear-gradient(var(--hero-grid) 1px,transparent 1px),linear-gradient(90deg,var(--hero-grid) 1px,transparent 1px)}
html[data-theme-level]:not([data-theme-level="0"]) .reference-hero .reference-art img{filter:var(--image-filter)}
html[data-theme-level]:not([data-theme-level="0"]) .reference-hero .reference-art::after{background:linear-gradient(90deg,var(--overlay-0) 0%,var(--overlay-2) 24%,var(--overlay-end) 50%)}
html[data-theme-level]:not([data-theme-level="0"]) .section,html[data-theme-level]:not([data-theme-level="0"]) .visual-hero-section{background:var(--section-background)}
html[data-theme-level]:not([data-theme-level="0"]) .section.alt{background:var(--alt-background)}
html[data-theme-level]:not([data-theme-level="0"]) .section.light{background:var(--light-background)}
html[data-theme-level]:not([data-theme-level="0"]) .lead{color:var(--lead)}
html[data-theme-level]:not([data-theme-level="0"]) .muted,html[data-theme-level]:not([data-theme-level="0"]) .card p{color:var(--muted)}
html[data-theme-level]:not([data-theme-level="0"]) .smallnote{color:var(--smallnote)}
html[data-theme-level]:not([data-theme-level="0"]) .btn,html[data-theme-level]:not([data-theme-level="0"]) .tab{background:var(--button-bg);border-color:var(--button-border);color:var(--button-text)}
html[data-theme-level]:not([data-theme-level="0"]) .btn.primary{background:var(--cyan);border-color:var(--cyan);color:var(--accent-on)}
html[data-theme-level]:not([data-theme-level="0"]) .btn.ghost{background:transparent}
html[data-theme-level]:not([data-theme-level="0"]) .panel,html[data-theme-level]:not([data-theme-level="0"]) .card,html[data-theme-level]:not([data-theme-level="0"]) .sample-points div{background:radial-gradient(circle at 100% 0,var(--panel-warm) 0%,transparent 70%),var(--content-surface);border-color:var(--line);box-shadow:0 14px 34px var(--shadow);color:var(--content-surface-text)}
html[data-theme-level]:not([data-theme-level="0"]) .featured{background:linear-gradient(145deg,var(--content-surface),color-mix(in srgb,var(--content-surface) 86%,var(--panel-warm)))}
html[data-theme-level]:not([data-theme-level="0"]) .panel h3,html[data-theme-level]:not([data-theme-level="0"]) .card h3,html[data-theme-level]:not([data-theme-level="0"]) .sample-points b,html[data-theme-level]:not([data-theme-level="0"]) .sample-points span{color:var(--content-surface-text)}
html[data-theme-level]:not([data-theme-level="0"]) .metric strong,html[data-theme-level]:not([data-theme-level="0"]) .quote,html[data-theme-level]:not([data-theme-level="0"]) .question,html[data-theme-level]:not([data-theme-level="0"]) .business-section-title{color:var(--text)}
html[data-theme-level]:not([data-theme-level="0"]) .card p,html[data-theme-level]:not([data-theme-level="0"]) .panel .muted,html[data-theme-level]:not([data-theme-level="0"]) .sample-points span{color:var(--content-surface-muted)}
html[data-theme-level]:not([data-theme-level="0"]) .metric span{color:var(--muted)}
html[data-theme-level]:not([data-theme-level="0"]) .callout .business-title-accent,html[data-theme-level]:not([data-theme-level="0"]) .callout .check-title-accent{color:var(--text)}
html[data-theme-level]:not([data-theme-level="0"]) .callout,html[data-theme-level]:not([data-theme-level="0"]) .result{background:var(--callout-bg);color:var(--callout-text);border-color:var(--line)}
html[data-theme-level]:not([data-theme-level="0"]) .callout .smallnote{color:var(--callout-text)}
html[data-theme-level]:not([data-theme-level="0"]) .field label{color:var(--lead)}
html[data-theme-level]:not([data-theme-level="0"]) .field input,html[data-theme-level]:not([data-theme-level="0"]) .field textarea{background:var(--control-bg);border-color:var(--control-border);color:var(--text)}
html[data-theme-level]:not([data-theme-level="0"]) .process button,html[data-theme-level]:not([data-theme-level="0"]) .process div,html[data-theme-level]:not([data-theme-level="0"]) .choice{background:var(--button-bg);border-color:var(--line);color:var(--muted)}
html[data-theme-level]:not([data-theme-level="0"]) .process .active,html[data-theme-level]:not([data-theme-level="0"]) .tab.active{background:var(--cyan);color:var(--accent-on);border-color:var(--cyan)}
html[data-theme-level]:not([data-theme-level="0"]) .process .active b{color:var(--accent-on)}
html[data-theme-level]:not([data-theme-level="0"]) .visual-hero-art,html[data-theme-level]:not([data-theme-level="0"]) .visual-panel,html[data-theme-level]:not([data-theme-level="0"]) .soil-visual-wrap{background:var(--panel-bg);border-color:var(--line);box-shadow:0 16px 38px var(--shadow)}
html[data-theme-level]:not([data-theme-level="0"]) .visual-hero-art img,html[data-theme-level]:not([data-theme-level="0"]) .visual-panel img,html[data-theme-level]:not([data-theme-level="0"]) .soil-visual-wrap img,html[data-theme-level]:not([data-theme-level="0"]) .technology-visual img,html[data-theme-level]:not([data-theme-level="0"]) .soil-process-visual img,html[data-theme-level]:not([data-theme-level="0"]) .about-hero-visual img,html[data-theme-level]:not([data-theme-level="0"]) .home-philosophy-visual img{filter:var(--image-filter)}
html[data-theme-level]:not([data-theme-level="0"]) .home-philosophy-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .business-hero-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .land-field-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .soil-framework-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .about-hero-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .technology-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .soil-process-visual::before{background:radial-gradient(circle at 85% 25%,var(--photo-warm) 0%,transparent 42%),linear-gradient(90deg,var(--overlay-0) 0%,var(--overlay-1) 16%,var(--overlay-2) 33%,var(--overlay-end) 55%)}
html[data-theme-level]:not([data-theme-level="0"]) .technology-rebuild.alt .technology-visual::before{background:radial-gradient(circle at 85% 25%,var(--photo-warm) 0%,transparent 42%),linear-gradient(90deg,var(--overlay-0) 0%,var(--overlay-1) 16%,var(--overlay-2) 33%,var(--overlay-end) 55%)}
html[data-theme-level]:not([data-theme-level="0"]) footer{background:var(--footer-bg);border-color:var(--footer-line);color:var(--footer-text)}
html[data-theme-level]:not([data-theme-level="0"]) footer .footbrand,html[data-theme-level]:not([data-theme-level="0"]) footer .footbrand-company-name{color:var(--footer-strong)}
html[data-theme-level]:not([data-theme-level="0"]) footer .footlinks>b,html[data-theme-level]:not([data-theme-level="0"]) footer .footlinks a:hover{color:var(--footer-accent)}
html[data-theme-level]:not([data-theme-level="0"]) footer .source{border-color:var(--footer-line)}
html[data-theme-level]:not([data-theme-level="0"]) .service-price{color:var(--text);border-color:var(--cyan)}
html[data-theme-level]:not([data-theme-level="0"]) .menu-toggle{background:var(--button-bg);border-color:var(--nav-border);color:var(--button-text)}

/* Preserve the Night theme's cyan text identity without changing cyan fills or semantic colors. */
html[data-theme-level]:not([data-theme-level="0"]) :is(
 .logo small,
 .navlinks a.active,
 .eyebrow,
 .quote span,
 .tag,
 .number,
 .process :not(.active)>b,
 .year,
 .sample-points b,
 .service-badge,
 .check-title-accent,
 .hero-title-accent,
 .soil-title-accent,
 .business-title-accent,
 .land-title-accent,
 .soil-framework-title-accent,
 .technology-placeholder,
 .tech-accent,
 .genba-title-accent,
 .sample-page-number,
 .check-page-number,
 .home-title-accent,
 .business-standard-accent,
 .land-section-accent,
 .about-overview .metric span,
 .about-title-accent,
 .about-quote-accent,
 .about-overview .representative-tag,
 body:has(.reference-hero--check) .metric span
){color:var(--cyan-text)}
html[data-theme-level]:not([data-theme-level="0"]) .navlinks a:hover{color:var(--cyan-text)}
html[data-theme-level]:not([data-theme-level="0"]) #soil-framework .soil-framework-title-accent{color:var(--cyan-text)}
html[data-theme-level]:not([data-theme-level="0"]) #sample .sample-page-number{color:var(--cyan-text)}
html[data-theme-level]:not([data-theme-level="0"]) [style*="color:var(--cyan)"]{color:var(--cyan-text)!important}
html[data-theme-level]:not([data-theme-level="0"]) footer :is(.footlinks>b,.source a){color:var(--footer-accent)}

/* Bright themes keep Night's brand cyan. Dark information surfaces preserve
   legibility for small labels, while a restrained ink edge supports large
   cyan display text where it sits directly on a light page background. */
html[data-theme-level]:not([data-theme-level="0"]) :is(.panel,.card,.sample-points div) :is(
 .eyebrow,.tag,.number,.year,.sample-points b,.service-badge,.check-title-accent,
 .sample-page-number,.check-page-number,.business-title-accent,.about-title-accent
){color:var(--content-surface-cyan);text-shadow:none}
html[data-theme-level="2"] :is(.eyebrow,.tag,.number,.year,.hero-title-accent,.soil-title-accent,.business-title-accent,.land-title-accent,.soil-framework-title-accent,.tech-accent,.genba-title-accent,.home-title-accent,.business-standard-accent,.land-section-accent,.about-title-accent,.about-quote-accent,.check-title-accent),
html[data-theme-level="3"] :is(.eyebrow,.tag,.number,.year,.hero-title-accent,.soil-title-accent,.business-title-accent,.land-title-accent,.soil-framework-title-accent,.tech-accent,.genba-title-accent,.home-title-accent,.business-standard-accent,.land-section-accent,.about-title-accent,.about-quote-accent,.check-title-accent),
html[data-theme-level="4"] :is(.eyebrow,.tag,.number,.year,.hero-title-accent,.soil-title-accent,.business-title-accent,.land-title-accent,.soil-framework-title-accent,.tech-accent,.genba-title-accent,.home-title-accent,.business-standard-accent,.land-section-accent,.about-title-accent,.about-quote-accent,.check-title-accent){paint-order:stroke fill;-webkit-text-stroke:.7px #17384d;text-shadow:0 1px 1px rgba(4,19,38,.55)}
html[data-theme-level="2"] :is(.eyebrow,.tag,.number,.year),
html[data-theme-level="3"] :is(.eyebrow,.tag,.number,.year),
html[data-theme-level="4"] :is(.eyebrow,.tag,.number,.year),
html[data-theme-level]:not([data-theme-level="0"]) .callout :is(.business-title-accent,.check-title-accent){display:inline-block;background:#17384d;border-radius:.28em;padding:.12em .38em;-webkit-text-stroke:0;text-shadow:none}
html[data-theme-level]:not([data-theme-level="0"]) :is(.panel,.card,.sample-points div) :is(.eyebrow,.tag,.number,.year,.hero-title-accent,.soil-title-accent,.business-title-accent,.land-title-accent,.soil-framework-title-accent,.tech-accent,.genba-title-accent,.home-title-accent,.business-standard-accent,.land-section-accent,.about-title-accent,.about-quote-accent,.sample-page-number,.check-page-number){background:transparent;box-shadow:none;padding:0;-webkit-text-stroke:0;text-shadow:none}
html[data-theme-level]:not([data-theme-level="0"]) body:has(.reference-hero--check) .check-report-pages .check-report-title{color:var(--content-surface-text)}
html[data-theme-level]:not([data-theme-level="0"]) .check-payment-callout{background:var(--content-surface)!important;border-color:var(--content-surface-cyan)!important;color:var(--content-surface-text)!important}
html[data-theme-level]:not([data-theme-level="0"]) .check-payment-callout .check-payment-title{color:var(--content-surface-cyan)!important}
html[data-theme-level="2"] .about-overview .metric span,
html[data-theme-level="2"] body:has(.reference-hero--check) .metric span,
html[data-theme-level="3"] .about-overview .metric span,
html[data-theme-level="3"] body:has(.reference-hero--check) .metric span,
html[data-theme-level="4"] .about-overview .metric span,
html[data-theme-level="4"] body:has(.reference-hero--check) .metric span{display:inline;color:#075f75!important;background:transparent;border-radius:0;padding:0;-webkit-text-stroke:0;text-shadow:none}
html[data-theme-level="2"] .navlinks a.active,
html[data-theme-level="3"] .navlinks a.active,
html[data-theme-level="4"] .navlinks a.active{color:#42d9ef!important;background:transparent;paint-order:stroke fill;-webkit-text-stroke:.6px #000;text-shadow:none}

/* Let themed artwork reveal the real section background at its copy-side edge.
   Transparency, rather than a guessed solid color, keeps gradient themes seamless. */
@media(min-width:901px){
 html[data-theme-level]:not([data-theme-level="0"]) .hero-map,
 html[data-theme-level]:not([data-theme-level="0"]) .reference-hero .reference-art{
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.14) 14%,rgba(0,0,0,.62) 36%,#000 62%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.14) 14%,rgba(0,0,0,.62) 36%,#000 62%);
 }
 html[data-theme-level]:not([data-theme-level="0"]) :is(
  .home-philosophy-visual,
  .business-hero-visual,
  .land-field-visual,
  .soil-framework-visual,
  .technology-visual,
  .soil-process-visual,
  .about-hero-visual
 ){
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 13%,rgba(0,0,0,.72) 31%,#000 52%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 13%,rgba(0,0,0,.72) 31%,#000 52%);
 }
}
@media(max-width:900px){
 html[data-theme-level]:not([data-theme-level="0"]) :is(
  .hero-map,
  .home-philosophy-visual,
  .business-hero-visual,
  .land-field-visual,
  .soil-framework-visual,
  .technology-visual,
  .soil-process-visual,
  .about-hero-visual
 ){
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.70) 18%,#000 34%);
  mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.70) 18%,#000 34%);
 }
}
@media(max-width:900px){
 html[data-theme-level]:not([data-theme-level="0"]) .navlinks{background:var(--header-bg);border-color:var(--line);box-shadow:0 14px 28px var(--shadow)}
 html[data-theme-level]:not([data-theme-level="0"]) .navlinks a{border-color:var(--line)}
 html[data-theme-level]:not([data-theme-level="0"]) .home-philosophy-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .business-hero-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .land-field-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .soil-framework-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .about-hero-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .technology-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .technology-rebuild.alt .technology-visual::before,html[data-theme-level]:not([data-theme-level="0"]) .soil-process-visual::before{background:linear-gradient(180deg,var(--overlay-0) 0%,var(--overlay-end) 28%)}
 html[data-theme-level]:not([data-theme-level="0"]) .reference-hero::before{background:linear-gradient(180deg,var(--overlay-0) 0%,var(--overlay-1) 48%,var(--overlay-2) 100%)}
}

/* Subtle time-linked photo tone; image files remain unchanged. */
html[data-theme-level="1"]{--image-filter:brightness(1.01) saturate(.99) contrast(1.005);--photo-warm:rgba(139,67,94,.07)}
html[data-theme-level="2"]{--image-filter:brightness(1.02) saturate(.98) contrast(1.005);--photo-warm:rgba(238,151,96,.09)}
html[data-theme-level="3"]{--image-filter:brightness(1.015) saturate(.99) contrast(1.005);--photo-warm:rgba(239,192,150,.035)}
html[data-theme-level="4"]{--image-filter:brightness(1.01) saturate(1) contrast(1.01);--photo-warm:rgba(0,0,0,0)}
html[data-theme-level]:not([data-theme-level="0"]) :is(.business-hero-visual,.land-field-visual,.soil-framework-visual) img{filter:var(--image-filter)}
