/* Japan Slab Bridge */
:root{--cream:#fff9ee;--gold:#c99524;--red:#b1362d;--ink:#111;--line:rgba(201,149,36,.32)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Yu Gothic UI","Noto Sans JP",sans-serif;line-height:1.8}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:url("images/hero-bg.jpeg") center top/cover no-repeat;pointer-events:none}
a{text-decoration:none;color:inherit}.serif{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",Georgia,serif}.container{width:min(1220px,calc(100% - 56px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,250,241,.94);border-bottom:1px solid rgba(201,149,36,.16);backdrop-filter:blur(10px)}
.header-inner{height:86px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.brand img{width:44px;height:44px}.brand span{font-size:26px}.main-nav{display:flex;align-items:center;gap:32px;font-weight:700;font-size:14px}.main-nav a:hover{color:var(--gold)}.header-actions{display:flex;align-items:center;gap:18px;font-weight:700}
.hero{position:relative;min-height:680px;overflow:hidden}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,248,236,.86) 0%,rgba(255,248,236,.58) 34%,rgba(255,248,236,.08) 75%);pointer-events:none}.hero-content{position:relative;z-index:2;padding-top:145px;max-width:660px}.hero h1{font-size:clamp(52px,6.7vw,88px);line-height:1.08;font-weight:500;letter-spacing:.01em}.tagline{margin-top:22px;color:var(--red);font-size:clamp(22px,2.7vw,32px);font-weight:700;letter-spacing:.08em}.lead{margin-top:14px;font-size:clamp(22px,2.8vw,34px);font-weight:600}.buttons{display:flex;flex-wrap:wrap;gap:18px;margin-top:34px}.btn{display:inline-flex;align-items:center;justify-content:center;min-width:158px;padding:14px 28px;border-radius:6px;font-weight:700;transition:.22s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{color:white;background:linear-gradient(135deg,#d7a33b,#a97008);box-shadow:0 14px 30px rgba(169,112,8,.22)}.btn-secondary{color:#271d0f;background:rgba(255,255,255,.68);border:1px solid var(--gold)}
.section-soft{position:relative;background:rgba(255,248,233,.9);padding:72px 0 82px}.section-soft::before{content:"";position:absolute;inset:0;opacity:.15;background-image:radial-gradient(circle at 1px 1px,rgba(201,149,36,.32) 1px,transparent 0);background-size:38px 38px;pointer-events:none}.section-heading{position:relative;z-index:2;text-align:center;max-width:780px;margin:0 auto}.eyebrow{color:var(--red);font-weight:800;letter-spacing:.16em;font-size:14px}h2{margin-top:8px;font-size:clamp(30px,4vw,42px);font-weight:500;line-height:1.35}.section-heading p:last-child{margin-top:15px;color:#3d3022;font-size:15px}.service-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:58px}.service-card{text-align:center;padding:10px 28px 0;border-right:1px solid var(--line)}.service-card:last-child{border-right:0}.service-card img{width:88px;height:88px;margin-bottom:18px}.service-card h3{font-size:21px;margin-bottom:8px}.service-card p{font-size:14px;color:#4f4232}
.category{background:rgba(255,250,241,.92);padding:58px 0 72px}.compact{margin-bottom:28px}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:920px;margin:0 auto}.category-card{min-height:86px;display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--gold);border-radius:8px;background:rgba(255,255,255,.62)}.category-card img{width:48px;height:48px;flex:0 0 auto}.category-card strong{display:block;font-size:15px}.category-card span{display:block;font-family:Georgia,serif;font-size:13px;color:#4f4232}
.concept-grid{position:relative;z-index:2;display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}.concept-grid>p{color:#3d3022;font-size:18px;line-height:2}.contact{background:rgba(255,250,241,.92);padding:76px 0}.contact-box{max-width:860px;margin:0 auto;text-align:center;border:1px solid rgba(201,149,36,.35);border-radius:18px;padding:44px 28px;background:rgba(255,255,255,.68);box-shadow:0 22px 60px rgba(139,95,18,.08)}.contact-box p:not(.eyebrow){margin:15px 0 28px;color:#3d3022}
.page-main{min-height:calc(100vh - 183px);background:rgba(255,250,241,.92);padding:72px 0 88px}.company-panel{max-width:820px;margin:0 auto;border:1px solid rgba(201,149,36,.35);border-radius:8px;background:rgba(255,255,255,.72);padding:42px}.company-list{margin-top:28px;border-top:1px solid var(--line)}.company-list div{display:grid;grid-template-columns:160px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.company-list dt{font-weight:800;color:#3d3022}.company-list dd{font-style:normal}
.site-footer{background:#070707;color:white;padding:24px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:22px}.footer-brand span{font-size:22px;color:#fff6d8}.footer-links{display:flex;gap:26px;color:#ddd;font-size:13px}
@media(max-width:980px){.main-nav,.header-actions{display:none}.hero{min-height:640px;background-position:center top}.hero-content{padding-top:110px}.service-grid,.category-grid,.concept-grid{grid-template-columns:1fr}.service-card{border-right:0;border-bottom:1px solid var(--line);padding-bottom:28px}.service-card:last-child{border-bottom:0}}
@media(max-width:640px){.container{width:min(100% - 32px,1220px)}.header-inner{height:72px}.brand span{font-size:20px}.brand img{width:40px;height:40px}.hero{min-height:560px}.hero-content{padding-top:82px}.hero h1{font-size:46px}.buttons{flex-direction:column}.btn{width:100%}.company-panel{padding:30px 22px}.company-list div{grid-template-columns:1fr;gap:4px}.footer-inner{align-items:flex-start;flex-direction:column}.footer-links{flex-wrap:wrap;gap:14px 22px}}
