:root { --ink:#142e42; --paper:#f5f4f0; --line:#d4d9d8; --accent:#b48c50; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans","Noto Serif JP",sans-serif; font-size:15px; line-height:1.8; }
.site-header { height:88px; padding:0 6.5vw; display:flex; align-items:center; justify-content:space-between; background:#fff; }
.brand { color:var(--ink); display:flex; align-items:center; gap:12px; text-decoration:none; line-height:1.2; }
.brand-mark { width:34px; height:34px; display:grid; place-items:center; color:#fff; background:var(--ink); font-family:Georgia,serif; font-size:22px; }
.brand b { display:block; font-family:"Noto Serif JP",serif; font-weight:600; letter-spacing:.08em; font-size:15px; }.brand small { display:block; margin-top:3px; color:#66747b; font-size:8px; letter-spacing:.09em; }
nav { display:flex; gap:30px; } nav a { color:var(--ink); text-decoration:none; font-size:12px; letter-spacing:.08em; } nav a:hover { color:var(--accent); }
.hero { position:relative; min-height:calc(100vh - 88px); display:flex; align-items:center; padding:9vw 13vw; color:#fff; background:linear-gradient(90deg,rgba(8,28,42,.86) 0%,rgba(8,28,42,.60) 45%,rgba(8,28,42,.05) 100%),url("assets/hero-corporate.png") center/cover; }
.hero-content { position:relative; z-index:1; }.eyebrow,.section-label,.service-en { margin:0; font-size:10px; letter-spacing:.2em; font-weight:600; }.hero h1 { margin:26px 0 22px; font-family:"Noto Serif JP",serif; font-size:clamp(36px,5vw,68px); line-height:1.45; letter-spacing:.08em; font-weight:500; }.hero-copy { font-size:16px; line-height:2; letter-spacing:.05em; }.text-link { display:inline-flex; margin-top:30px; gap:18px; align-items:center; padding-bottom:8px; color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.75); font-size:13px; }.text-link span { font-size:19px; }.hero-number { position:absolute; right:6.5vw; bottom:35px; margin:0; font-size:13px; letter-spacing:.15em; }.hero-number span { color:#c4ccd0; margin:0 5px; }
.section { padding:130px 13vw; }.section-label { color:var(--accent); }.intro { background:#fff; }.intro-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:9vw; margin-top:26px; }.intro h2,.business h2,.contact h2 { margin:0; font-family:"Noto Serif JP",serif; font-size:clamp(28px,3.4vw,45px); line-height:1.55; letter-spacing:.06em; font-weight:500; }.intro-grid p { margin:0 0 18px; color:#50616a; font-size:15px; }
.business { background:#ecf0ef; }.business-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:45px; }.business-heading h2 { margin-top:7px; }.business-heading > p { margin:0; color:#50616a; font-size:14px; }.service-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.service-card { position:relative; min-height:355px; padding:38px; overflow:hidden; }.real-estate { background:#234455; color:#fff; }.it { background:#fff; }.service-index { position:absolute; top:28px; right:34px; font-size:11px; letter-spacing:.15em; opacity:.65; }.service-icon { margin:18px 0 34px; color:#d1b176; font-family:Georgia,serif; font-size:56px; line-height:1; }.it .service-icon { color:#638b94; }.service-en { color:#d1b176; }.it .service-en { color:#78949b; }.service-card h3 { margin:8px 0 16px; font-family:"Noto Serif JP",serif; font-size:25px; font-weight:500; letter-spacing:.08em; }.service-card > p:last-child { max-width:390px; margin:0; color:inherit; font-size:13px; line-height:2; opacity:.8; }
.contact { display:flex; align-items:center; justify-content:space-between; padding:95px 13vw; background:#bc9557; color:#fff; }.contact .section-label { color:#f2e5ca; }.contact h2 { margin-top:8px; }.contact-copy { text-align:right; }.contact-copy p { margin:0 0 18px; font-family:"Noto Serif JP",serif; font-size:18px; line-height:1.9; }.contact-copy .address { margin:-7px 0 20px; font-family:"DM Sans","Noto Serif JP",sans-serif; font-size:12px; letter-spacing:.05em; }.coming-soon { display:inline-block; padding:4px 12px; border:1px solid rgba(255,255,255,.65); font-size:9px; letter-spacing:.16em; }
footer { display:flex; align-items:center; justify-content:space-between; padding:38px 6.5vw; background:#fff; } footer p { margin:0; color:#768289; font-size:10px; letter-spacing:.1em; }.footer-brand { transform:scale(.82); transform-origin:left center; }
@media (max-width:720px) { .site-header { height:70px; padding:0 6vw; } .brand-mark { width:30px;height:30px; }.brand b {font-size:13px;}.brand small{font-size:6px;} nav { display:none; }.hero { min-height:640px; padding:110px 9vw 80px; background-position:58% center; }.hero h1 { font-size:35px; }.hero-copy { font-size:14px; }.desktop-only { display:none; }.hero-number { right:8vw; bottom:22px; }.section { padding:78px 9vw; }.intro-grid { grid-template-columns:1fr; gap:28px; }.intro h2 { font-size:28px; }.intro-grid p { font-size:14px; }.business-heading { display:block; }.business-heading > p { margin-top:18px; }.service-grid { grid-template-columns:1fr; }.service-card { min-height:310px; padding:30px; }.contact { display:block; padding:68px 9vw; }.contact-copy { margin-top:28px; text-align:left; }.contact-copy p { font-size:16px; } footer { display:block; padding:30px 9vw; } footer p { margin-top:22px; } }
