@font-face{font-family:Zen;src:url('../assets/fonts/zkgn-400.3767a715.woff2') format('woff2');font-display:swap}
@font-face{font-family:Mincho;src:url('../assets/fonts/zom-400.a54447d7.woff2') format('woff2');font-display:swap}
@font-face{font-family:Instrument;src:url('../assets/fonts/inst-400.0ae0d625.woff2') format('woff2');font-display:swap}
:root{--paper:#f4f1e9;--ink:#20392f;--wood:#8a654b;--line:#c3c8bc}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
:lang(ja){word-break:keep-all;overflow-wrap:normal;line-break:strict}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Zen,sans-serif;font-size:16px;line-height:1.85}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #bf8150;outline-offset:5px}
p,h1,h2,h3,figure{margin:0}
h1,h2,h3{font-weight:400}
h1,h2,h3,.brand{font-family:Mincho,serif}
.skip{position:absolute;left:20px;top:-100px;background:var(--paper);padding:15px;z-index:5}.skip:focus{top:8px}
.demo-bar{padding:8px 4.5%;background:var(--ink);color:var(--paper);display:flex;justify-content:space-between;gap:10px;font-size:12px;letter-spacing:.05em}
header{padding:28px 4.5%;display:flex;justify-content:space-between;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:13px;font-size:25px;line-height:1.4}
.brand-mark{width:43px;height:49px;border:1px solid var(--ink);display:grid;place-items:center;font-size:27px}
.brand small{display:block;font:10px/1.6 Zen,sans-serif;letter-spacing:.18em;margin-top:4px}
nav{display:flex;align-items:center;gap:38px;font-size:14px}
.nav-contact{border-bottom:1px solid var(--ink);padding:10px 0}.nav-contact span{margin-left:22px}
.hero{padding:30px 4.5% 0;display:grid;grid-template-columns:.82fr 1.18fr;gap:3%;align-items:stretch}
.hero-copy{padding:26px 0 32px}
.eyebrow,.section-label>span{font-size:12px;letter-spacing:.13em}
.hero h1{font-size:clamp(46px,4.6vw,76px);line-height:1.45;letter-spacing:.03em;margin:36px 0 42px}
.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:15px}
.circle-link{border:1px solid var(--ink);border-radius:50%;width:50px;height:50px;display:grid;place-items:center;flex-shrink:0}
.hero-image{position:relative;min-height:540px}
.hero-image img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:55% center}
.hero-image figcaption{position:absolute;bottom:12px;right:12px;left:12px;color:#fff;text-shadow:0 1px 6px #000;font-size:10px;letter-spacing:.04em}
.project-strip{margin:35px 4.5% 0;padding:18px 0;border-block:1px solid var(--ink);display:flex;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:.08em}
.section{padding:100px 9%}
.intro,.process,.faq{display:grid;grid-template-columns:1fr 1.6fr;gap:6%}
.section-label p{margin-top:20px}.section-label h2{margin:18px 0 12px}
.intro h2{font-size:36px;line-height:1.65;margin-bottom:32px}.intro p+p{margin-top:22px}
.section-heading{margin-bottom:42px}.section-heading h2,h2{font-size:32px;line-height:1.6}.section-heading h2{margin:14px 0}
.services{padding-top:35px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.service-grid article{border-top:1px solid var(--ink);padding-top:20px}
.number{font:42px Instrument,serif;color:var(--wood)}.service-grid h3{font-size:27px;margin:22px 0 8px}
.tag{font-size:12px;letter-spacing:.12em;color:var(--wood);margin-bottom:22px}
.ideas{background:#e7e8df}.idea-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:center}
.plan{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:70px 165px 100px;gap:5px;position:relative;padding:22px 22px 48px;border:1px solid #a4b2a1;font-size:13px;letter-spacing:.08em}
.plan>div{border:2px solid #6c7c69;padding:15px;text-align:center;position:relative}.plan span{font-size:11px;letter-spacing:0}
.plan .plan-garden{grid-column:1 / 3;background:repeating-linear-gradient(45deg,transparent,transparent 8px,#a8b7a82b 8px,#a8b7a82b 9px);border:0;padding:0}
.plan-living{grid-row:2/4}.plan-living i{display:block;position:absolute;bottom:40px;left:22px;width:55%;height:50px;border:1px solid #778772;border-bottom:8px solid #778772}
.plan-dining i{display:block;width:70%;height:35px;border:1px solid #778772;margin:20px auto 0}
.plan small{position:absolute;bottom:12px;left:22px;font-size:9px}
.idea-copy h3{font-size:31px;line-height:1.6;margin:20px 0}
dl{margin:28px 0 15px}dl>div{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding:12px 0;gap:15px;font-size:14px}dt,dd{margin:0}
.note{font-size:12px!important;color:#586458;margin-top:12px}
.text-link{display:flex;justify-content:space-between;border-bottom:1px solid var(--ink);padding:20px 0 8px;margin-top:15px;font-size:14px}
.process ol{list-style:none;padding:0;margin:0}.process li{display:flex;gap:28px;padding:22px 0;border-top:1px solid var(--line)}.process li>span{font:26px Instrument,serif;color:var(--wood)}.process h3{font-size:22px;margin-bottom:6px}
.faq{padding-top:20px}.faq details{border-top:1px solid var(--line);padding:23px 0}.faq summary{cursor:pointer;font-size:16px;padding-right:10px}.faq details p{margin:20px 0 0}
.contact{padding:90px 9%;background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1.1fr;gap:10%}.contact h2{font-size:36px;margin:25px 0}
.demo-note{border-top:1px solid #75887b;margin-top:40px;padding-top:25px}.demo-note strong{font-weight:400;font-size:14px}.demo-note p{font-size:13px;margin-top:10px}
.step{font-size:12px;letter-spacing:.08em;margin-bottom:25px}.step span{color:#c0cabe}
.contact label{display:block;margin:22px 0 8px;font-size:14px}.contact label small{font-size:11px;margin-left:10px;color:#cbd1c5}
input,select,textarea{width:100%;border:1px solid #879186;border-radius:0;background:#f4f1e9;color:var(--ink);padding:12px 14px;font-size:16px;min-width:0}
textarea{resize:vertical;word-break:normal}input::placeholder,textarea::placeholder{color:#61695f}
button{cursor:pointer;border:1px solid var(--paper);border-radius:0;background:var(--paper);color:var(--ink);padding:16px 20px;margin-top:24px;display:flex;justify-content:space-between;gap:20px;width:100%;font-size:15px;transition:opacity .2s,transform .2s}
button:hover{opacity:.86;transform:translateY(-2px)}.contact .note{color:#cbd1c5}.contact .secondary{background:transparent;color:var(--paper);margin-top:12px;justify-content:center}
.contact #summary{word-break:normal}.contact #summary>div{grid-template-columns:110px 1fr}.contact #summary dd{white-space:pre-wrap;overflow-wrap:anywhere}
.confirmation-notice{padding:20px;border:1px solid #879186;font-size:15px}.contact h3{font-size:26px}
footer{padding:45px 4.5%;display:flex;justify-content:space-between;align-items:center;gap:30px}footer p{font-size:12px}footer>a:last-child{font-size:13px;border-bottom:1px solid var(--ink)}[hidden]{display:none!important}
@media(min-width:1500px){body{max-width:1800px;margin:auto}}
@media(max-width:1000px){nav{gap:22px}.hero{grid-template-columns:1fr 1.1fr}.hero h1{font-size:48px}.hero-image{min-height:480px}.section{padding:75px 6%}.service-grid{gap:25px}.contact{padding:70px 6%;gap:7%}.intro,.process,.faq{grid-template-columns:1fr 1.7fr}.idea-layout{gap:5%}footer{flex-wrap:wrap}}
@media(max-width:700px){header{padding:22px 6%}.brand{font-size:21px}.brand-mark{width:35px;height:41px;font-size:22px}nav>a:not(.nav-contact){display:none}.nav-contact{font-size:12px}.nav-contact span{margin-left:8px}.demo-bar{font-size:10px;padding:8px 6%}.hero{padding:10px 6% 0;display:flex;flex-direction:column;gap:15px}.hero-copy{padding:12px 0 15px}.hero h1{font-size:46px;line-height:1.5;margin:22px 0}.hero-image{min-height:0;aspect-ratio:1.08}.hero-image img{object-position:48% center}.hero-image figcaption{font-size:9px}.project-strip{margin:25px 6% 0;font-size:10px;padding:14px 0;flex-wrap:wrap;gap:5px}.project-strip span:last-child{display:none}.project-strip span:nth-child(2){font-size:11px}.section{padding:64px 6%}.intro,.process,.faq{grid-template-columns:1fr;gap:28px}.section-label p{margin-top:10px}.intro h2,.section-heading h2,h2{font-size:28px}.intro h2{margin-bottom:24px}.service-grid{grid-template-columns:1fr;gap:28px}.service-grid article{position:relative;padding:22px 0 0 65px}.number{position:absolute;left:0;top:20px;font-size:32px}.service-grid h3{margin:0 0 8px;font-size:25px}.tag{margin-bottom:12px}.section-heading{margin-bottom:30px}.idea-layout{grid-template-columns:1fr;gap:30px}.idea-copy h3{font-size:29px}.plan{grid-template-rows:65px 150px 100px}.contact{padding:65px 6%;grid-template-columns:1fr;gap:40px}.contact h2{font-size:32px}.demo-note{margin-top:28px}.contact label{margin-top:18px}.faq{padding-top:15px}.faq summary{font-size:15px}footer{padding:35px 6%;display:grid;gap:23px}footer>a:last-child{justify-self:start}.contact #summary>div{grid-template-columns:95px 1fr}.eyebrow{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
