:root{--ink:#202020;--muted:#666;--paper:#f7f6f2;--line:#deddd7;--accent:#d83657}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Helvetica Neue","Noto Sans JP",Arial,sans-serif;letter-spacing:.03em}a{color:inherit;text-decoration:none}header{height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;border-bottom:1px solid #eee;position:sticky;top:0;background:#fffffff2;z-index:5}header img,footer img{width:110px}nav{display:flex;align-items:center;gap:34px;font-size:13px}.outline{border:1px solid;padding:12px 18px}.hero{min-height:680px;background:var(--paper);display:grid;grid-template-columns:1.2fr .8fr;align-items:center;padding:80px 8vw;overflow:hidden}.label{font-size:12px;font-weight:700;letter-spacing:.2em}.label:before{content:"";display:inline-block;width:28px;height:1px;background:var(--accent);vertical-align:middle;margin-right:12px}h1{font-size:clamp(52px,7vw,96px);line-height:1.18;margin:28px 0}.lead{max-width:540px;line-height:2;color:#444}.under{display:inline-block;margin-top:28px;border-bottom:1px solid;padding-bottom:8px}.mark{width:min(400px,34vw);aspect-ratio:1;position:relative;margin:auto}.mark i{position:absolute;width:140px;height:140px;border:18px solid;border-bottom:0;border-radius:100px 100px 0 0;top:24px;left:50%;transform:translateX(-50%)}.mark b{position:relative;display:inline-block;width:38px;height:230px;background:#202020;margin:120px 18px 0}.mark b:nth-of-type(2){height:290px}.mark span{position:absolute;bottom:10px;left:0;width:100%;text-align:center;color:var(--accent);letter-spacing:10px}.about,.business,.company{padding:110px 8vw}.about{display:grid;grid-template-columns:1fr 2fr;gap:70px}.about h2,.business>h2,.company>h2,.contact h2{font-size:clamp(38px,5vw,66px);margin:0 0 30px;line-height:1.3}.about div p{max-width:720px;color:var(--muted);line-height:2.1}.business{background:#222;color:#fff}.cards{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #555}.cards article{padding:38px 32px 38px 0;border-right:1px solid #555}.cards article+article{padding-left:32px}.cards article:last-child{border:0}.cards small{color:#e8c542}.cards h3{font-size:22px;margin-top:44px}.cards p{color:#bbb;line-height:1.9}.company dl{max-width:900px;margin-left:auto}.company dl div{display:grid;grid-template-columns:200px 1fr;padding:24px 0;border-top:1px solid var(--line);line-height:1.8}.company dt{color:var(--muted)}.company dd{margin:0}.company dd a{text-decoration:underline}.contact{text-align:center;padding:110px 8vw;background:#efeee9}.contact>p{color:var(--muted)}.button{display:inline-flex;justify-content:space-between;min-width:290px;background:var(--ink);color:white;padding:20px 28px;margin-top:30px}footer{display:flex;justify-content:space-between;align-items:flex-end;padding:48px 8vw;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}footer div{text-align:right}.legal{max-width:900px;margin:auto;padding:80px 6vw 120px}.legal h1{font-size:48px}.legal h3{margin-top:42px}.legal p{color:#555;line-height:2}@media(max-width:800px){header{height:76px}nav a:not(.outline){display:none}.hero{grid-template-columns:1fr;padding:70px 7vw}.mark{width:260px;margin-top:60px}.about{grid-template-columns:1fr;padding:80px 7vw}.business,.company{padding:80px 7vw}.cards{grid-template-columns:1fr}.cards article,.cards article+article{border-right:0;border-bottom:1px solid #555;padding:30px 0}.company dl div{grid-template-columns:1fr;gap:8px}.contact{padding:80px 7vw}}
/* Hero brand mark */
.hero-logo{display:flex;align-items:center;justify-content:center}.hero-logo img{width:min(390px,34vw);height:auto;mix-blend-mode:multiply}@media(max-width:800px){.hero-logo{margin-top:60px}.hero-logo img{width:260px}}
/* Brand story and three-color word accents */
.hero h1{font-size:clamp(46px,6vw,84px);line-height:1.2;letter-spacing:-.02em}.word-red{color:#dc3155}.word-blue{color:#2878b9}.word-yellow{color:#c89c00}.hero .lead{max-width:650px}.hero .lead strong{color:var(--ink);font-weight:600}@media(max-width:800px){.hero-break{display:none}}
/* Larger high-resolution hero logo */
.hero-logo img{width:min(580px,44vw);max-width:none}@media(max-width:800px){.hero-logo img{width:min(420px,88vw)}}
.label-lowercase{letter-spacing:.16em}
