:root{--ink:#242923;--paper:#f5f4ef;--green:#3e5041;--line:#d5d8cf}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Helvetica Neue',Arial,'Hiragino Kaku Gothic ProN',Meiryo,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}header{height:98px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:var(--paper)}.brand{display:flex;flex-direction:column;gap:4px}.brand b{font-size:38px;font-weight:950;font-style:italic;letter-spacing:-3px;line-height:1}.brand span{font-size:10px;letter-spacing:1.3px}nav{display:flex;align-items:center;gap:30px;font-size:13px;font-weight:bold}.nav-contact{background:var(--green);color:white;padding:18px 22px}.hero{height:700px;max-height:calc(100svh - 98px);min-height:530px;position:relative;color:white}.hero>img,.hero-shade{position:absolute;width:100%;height:100%;object-fit:cover}.hero>img{object-position:center 43%}.hero-shade{background:linear-gradient(90deg,rgba(12,22,17,.68),rgba(10,22,16,.1))}.hero-copy{position:relative;padding:80px 8%}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;margin:0 0 28px}h1{font-size:clamp(48px,5.7vw,83px);line-height:1.35;letter-spacing:.08em;margin:20px 0 26px;font-weight:700}.hero-copy>p:not(.eyebrow){line-height:2;font-size:15px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:40px;padding:19px 26px;font-size:13px;font-weight:bold;margin-top:20px;border:1px solid currentColor}.light{color:var(--ink);background:var(--paper);border-color:var(--paper)}.button:hover{background:#dbe0d6}.hero-bottom{position:absolute;bottom:28px;left:8%;right:8%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px}.intro{padding:100px 8%;display:grid;grid-template-columns:1fr 2fr;gap:60px}.intro>div{display:grid;grid-template-columns:1fr 1fr;gap:50px}h2{font-size:clamp(28px,3vw,43px);line-height:1.6;margin:0;font-weight:600;letter-spacing:.05em}p{line-height:2} .intro p:not(.eyebrow),.services p,.section-heading>p{font-size:13px;color:#62695f;margin-top:0}.section{padding:85px 8%;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:45px}.section-heading .eyebrow{margin-bottom:15px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}.services article{border-top:1px solid var(--ink);padding-top:20px}.services article>span{font-size:11px;color:#6d7667}.services h3{font-size:24px;line-height:1.6;font-weight:500;margin:25px 0}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.gallery button{background:none;border:0;padding:0;text-align:left;color:inherit}.gallery img{width:100%;height:290px;object-fit:cover;display:block;transition:filter .2s}.gallery button:hover img{filter:brightness(.88)}.gallery .wide{grid-column:1/-1}.gallery .wide img{height:500px}.gallery span{display:flex;justify-content:space-between;padding:16px 0;font-size:13px}.gallery i{font-style:normal}details{margin-top:30px;border-top:1px solid var(--line)}summary{cursor:pointer;padding:22px 0;font-size:13px}.extra img{height:270px}.partner{background:var(--green);color:var(--paper);padding:90px 8%;display:grid;grid-template-columns:1fr 1fr;gap:90px}.partner h2{font-size:48px}.partner h3{font-size:26px;line-height:1.7;font-weight:500;margin:0 0 25px}.partner p{font-size:14px}.small{font-size:11px!important;line-height:1.9!important;opacity:.8}.about{display:grid;grid-template-columns:1fr 1.6fr;gap:60px}dl{margin:0}dl>div{display:grid;grid-template-columns:110px 1fr;gap:25px;padding:23px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.8}dt{color:#6b7267}dd{margin:0}.contact{text-align:center;background:#e8ebe3}.contact h2{font-size:48px}.contact>p:not(.eyebrow){font-size:13px}.contact-links{display:grid;grid-template-columns:1fr 1fr;gap:25px;max-width:950px;margin:40px auto 22px;text-align:left}.contact-links a{position:relative;background:var(--paper);padding:27px}.contact-links span{display:block;font-size:11px;margin-bottom:14px}.contact-links b{font-weight:500;font-size:clamp(18px,2vw,27px)}.contact-links i{position:absolute;right:22px;top:24px;font-style:normal}footer{padding:45px 8%;display:flex;align-items:center;justify-content:space-between}footer p,footer small{font-size:10px;line-height:2}.mobile-contact{display:none}dialog{border:0;padding:45px 15px 15px;background:#171d18;max-width:95vw;max-height:95vh;color:white}dialog::backdrop{background:#000c}dialog img{display:block;max-width:88vw;max-height:80vh;object-fit:contain}.close{position:absolute;right:15px;top:10px;background:none;border:0;color:white;padding:5px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b79757;outline-offset:5px}@media(max-width:750px){header{height:80px;padding:0 6%}.brand b{font-size:33px}nav a:not(.nav-contact){display:none}nav{gap:0}.nav-contact{font-size:11px;padding:13px}.hero{min-height:590px;max-height:none;height:80svh}.hero>img{object-position:40% center}.hero-copy{padding:70px 7%}.hero-copy h1{font-size:clamp(26px,8.1vw,42px);line-height:1.5;letter-spacing:.035em;margin:20px 0 26px}.hero-copy>p:not(.eyebrow){font-size:13px}.hero-bottom{left:7%;right:7%;font-size:9px}.intro,.intro>div{display:block}.intro{padding:65px 7%}.intro h2{margin-bottom:25px}.section{padding:60px 7%}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin:20px 0 0}.services{grid-template-columns:1fr;gap:22px}.services article{display:grid;grid-template-columns:26px 1fr;gap:0 15px}.services h3{margin:0 0 15px;font-size:22px}.services p{grid-column:2}.gallery{gap:18px 12px}.gallery img{height:160px}.gallery .wide img{height:260px}.gallery span{font-size:10px;padding:12px 0}.extra img{height:160px}.partner{padding:60px 7%;grid-template-columns:1fr;gap:35px}.partner h2,.contact h2{font-size:35px}.partner h3{font-size:23px}.about{display:block}.about dl{margin-top:30px}dl>div{grid-template-columns:80px 1fr;gap:12px;font-size:12px}.contact-links{grid-template-columns:1fr;gap:12px;margin-top:30px}.contact-links b{font-size:23px}footer{padding:35px 7% 95px;flex-wrap:wrap;gap:25px}.mobile-contact{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--green);color:white;z-index:5;box-shadow:0 -2px 10px #0002;padding-bottom:env(safe-area-inset-bottom)}.mobile-contact a{padding:18px 8px;text-align:center;flex:2;font-size:11px}.mobile-contact a:first-child{flex:1;background:#28382c}.eyebrow{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.design-intro{margin:60px 0 28px;border-top:1px solid var(--line);padding-top:35px}.design-intro h3{font-size:25px;font-weight:500}.design-intro p{font-size:13px;color:#62695f}.design-gallery img{height:360px}@media(max-width:750px){.design-gallery img{height:220px}.design-intro h3{font-size:21px}}

.logo-frame{display:block;position:relative;width:145px;aspect-ratio:810/380;overflow:hidden;mix-blend-mode:multiply}.logo-frame img{position:absolute;width:131.7284%;max-width:none;height:auto;left:-17.28395%;top:-118.42105%}.contact-links{grid-template-columns:1fr;max-width:620px}.contact-links .form-link{text-align:left}@media(max-width:750px){.logo-frame{width:115px}.mobile-contact a:first-child{flex:1;background:var(--green)}}

/* Keep Japanese headline phrases together at every viewport width. */
.hero-copy h1>span{display:block;white-space:nowrap}
@media(max-width:750px){.hero{height:clamp(490px,66svh,570px);min-height:490px}.hero-copy{padding:52px 7% 92px}.hero-copy .eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:24px}.hero-copy>p:not(.eyebrow){font-size:12px;line-height:2;max-width:28em}.hero-copy .button{margin-top:20px;padding:17px 22px;min-width:230px;max-width:100%;font-size:12px}.hero-bottom{bottom:25px;align-items:center}.hero-bottom span:last-child{font-size:8px}.intro{padding:52px 7%}.mobile-contact a{padding:15px 8px}.intro h2{font-size:clamp(25px,6.7vw,32px);line-height:1.65}}

.strengths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;padding:0 8% 85px}.strengths article{border-top:1px solid var(--line);padding-top:24px}.strengths article>span{font-size:10px;letter-spacing:1.5px;color:var(--green)}.strengths h3{font-size:21px;line-height:1.8;font-weight:500}.strengths p{font-size:13px;line-height:2;color:#62695f}@media(max-width:750px){.strengths{grid-template-columns:1fr;gap:24px;padding:0 7% 50px}.strengths h3{font-size:20px;margin:12px 0}.strengths p{margin:0}.hero-copy h1{letter-spacing:.02em}.hero-copy>p:not(.eyebrow){line-height:1.9}.hero-copy .button{margin-top:14px}}

.business{display:grid;grid-template-columns:1fr 1fr;gap:70px;background:#e8ebe3}.business .eyebrow{font-size:9px;letter-spacing:1.4px}.business p,.business li{font-size:13px;line-height:2}.business .business-lead{font-size:17px;margin-top:24px}.business ul{padding:18px 0 18px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.business li{padding:5px 0}.business .button{color:var(--green)}@media(max-width:750px){.business{grid-template-columns:1fr;gap:20px}.business h2{font-size:32px}.business .business-lead{font-size:16px}.business .button{font-size:12px;padding:17px 18px;gap:24px}}

/* A softer, literary voice for the main catchphrase. */
.hero-copy h1{font-family:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho","YuMincho","Noto Serif CJK JP",serif;font-weight:400;letter-spacing:.025em;line-height:1.65;-webkit-font-smoothing:antialiased}@media(max-width:750px){.hero-copy h1{font-size:clamp(25px,7.8vw,40px);font-weight:400;letter-spacing:.02em;line-height:1.65}}

.company-story{max-width:1100px;margin:auto}.company-story h2{margin-bottom:28px}.company-story>p:not(.eyebrow){font-size:14px;line-height:2.2;max-width:760px}.service-area{display:grid;grid-template-columns:1fr 1fr;gap:70px;background:#e8ebe3}.service-area h3{font-size:21px;font-weight:500;margin:0 0 10px}.service-area h3:not(:first-child){margin-top:30px}.service-area p{font-size:13px}.service-area .small{margin-top:25px}@media(max-width:750px){.service-area{grid-template-columns:1fr;gap:26px}.service-area h3{font-size:20px}.hero-bottom{font-size:8px;letter-spacing:0}.hero-bottom span:first-child{max-width:75%;line-height:1.7}}

/* Phrase-aware headings and controls at narrow and intermediate widths. */
.intro>div,.business>div,.partner>div,.about>*,.services article>*{min-width:0}
h2,h3{line-break:strict;overflow-wrap:normal;word-break:normal}
h2>span{display:block;white-space:nowrap}.works h2>span{display:inline-block}
.services h3>span{display:block}.services h3{font-size:clamp(18px,1.8vw,24px)}
.button{max-width:100%;gap:20px}.button>span{flex:none}
.form-link{padding-right:55px!important}.form-link b{display:flex;flex-wrap:wrap;gap:0 .2em;line-height:1.6}.form-link b>span{display:inline!important;margin:0!important;font-size:inherit!important;white-space:nowrap}
.hero-bottom span:first-child{max-width:80%;line-height:1.6}.hero-bottom span:last-child{flex:none}
@media(min-width:751px) and (max-width:1100px){.intro{grid-template-columns:1fr;gap:25px}.intro>div{grid-template-columns:1fr 1fr;gap:32px}.intro h2{font-size:26px}.business,.partner{gap:36px}.services{gap:22px}.strengths{gap:24px}.strengths h3{font-size:18px}.company-story h2{font-size:34px}nav{gap:18px}header{padding:0 4%}}
@media(max-width:750px){h2{font-size:clamp(24px,6.4vw,32px)}.intro h2{font-size:clamp(21px,6.25vw,30px)}.company-story h2{font-size:clamp(20px,5.8vw,30px)}.contact h2{font-size:clamp(26px,7.8vw,35px)}.works h2{font-size:clamp(25px,7.4vw,32px)}.services h3{font-size:clamp(18px,5.5vw,22px)}.services article{grid-template-columns:20px minmax(0,1fr);column-gap:12px}.contact-links b{font-size:clamp(18px,5.2vw,23px)}.contact-links a{padding:22px}.contact-links span{line-height:1.8}.section-heading>p br,.contact>p:not(.eyebrow) br{display:none}.contact>p:not(.eyebrow){max-width:31em;margin-left:auto;margin-right:auto}.partner h2{font-size:clamp(28px,8vw,35px)}.business h2{font-size:clamp(27px,7.6vw,32px)}.strengths h3{font-size:clamp(18px,5.3vw,20px)}.service-area h3{font-size:clamp(17px,5.2vw,20px)}.hero-copy .eyebrow{letter-spacing:1px}.about h2{font-size:clamp(25px,6.8vw,32px)}}

.design-intro h3>span,.partner h3>span{display:inline-block;white-space:nowrap}.partner h3>span:first-child{display:block}@media(max-width:750px){.partner h3{font-size:clamp(19px,5.5vw,23px)}}

.local-focus{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:60px;background:#e8ebe3}.local-focus>div{min-width:0}.local-focus h2{font-size:clamp(24px,2.8vw,38px)}.local-focus .local-lead{font-size:17px;margin-top:24px}.local-focus p{font-size:13px;line-height:2}.inquiry-faq{max-width:1200px;margin:auto}.inquiry-faq details{margin-top:0}.inquiry-faq summary{font-size:15px;line-height:1.8;font-weight:500;padding:24px 0}.inquiry-faq details p{font-size:13px;max-width:760px;padding:0 0 18px;margin:0;color:#62695f}@media(max-width:750px){.local-focus{grid-template-columns:1fr;gap:16px}.local-focus h2{font-size:clamp(21px,6vw,29px)}.local-focus .local-lead{font-size:15px}.inquiry-faq summary{font-size:14px;padding:21px 0}}
@media(min-width:751px) and (max-width:1000px){.local-focus{grid-template-columns:1fr;gap:20px}.local-focus h2{font-size:29px}}

.exterior-craft{border-top:1px solid var(--line);padding:26px 0 8px;margin-top:26px}.exterior-craft h3{font-size:clamp(21px,2.2vw,28px);font-weight:500;line-height:1.65;margin:0 0 18px}.exterior-craft p{margin-bottom:18px}

/* Give the introduction one full content row; avoid nested narrow columns. */
@media(min-width:751px){
  .intro{display:block;padding:76px max(6%,calc((100% - 1200px)/2)) 64px}
  .intro>.eyebrow{margin-bottom:30px}
  .intro>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:clamp(36px,5vw,76px);align-items:start}
  .intro h2{font-size:clamp(26px,2.5vw,37px);line-height:1.75;letter-spacing:.025em;margin:0}
  .intro p:not(.eyebrow){font-size:15px;line-height:2.1;margin:0;max-width:none}
}
@media(min-width:751px) and (max-width:1000px){
  .intro>div{grid-template-columns:1fr;gap:24px}
  .intro h2{font-size:30px}
  .intro p:not(.eyebrow){max-width:64ch}
}
@media(min-width:1600px){
  .section:not(.company-story):not(.inquiry-faq),.partner{padding-left:max(8%,calc((100% - 1280px)/2));padding-right:max(8%,calc((100% - 1280px)/2))}
  .strengths{padding-left:max(8%,calc((100% - 1280px)/2));padding-right:max(8%,calc((100% - 1280px)/2))}
}

/* Original supplied illustrations, mirrored in layout to face the centre. */
.contact{position:relative;isolation:isolate}.contact-craftsmen{position:absolute;top:150px;left:3%;right:3%;display:flex;justify-content:space-between;align-items:end;pointer-events:none;z-index:-1;mix-blend-mode:darken}.contact-craftsmen img{display:block;width:clamp(140px,18vw,260px);height:auto;mix-blend-mode:darken}.craftsman-left{transform:scaleX(-1)}.contact>p:not(.eyebrow){max-width:620px;margin-left:auto;margin-right:auto}.contact .contact-links{position:relative}
@media(max-width:750px){.contact-craftsmen{position:static;margin:22px auto 0;max-width:420px;gap:20px;z-index:auto}.contact-craftsmen img{width:calc((100% - 20px)/2);max-width:185px}.contact .contact-links{margin-top:22px}}
@media(min-width:751px) and (max-width:1100px){.contact-craftsmen{position:static;margin:24px auto 0;max-width:420px;gap:30px;z-index:auto}.contact-craftsmen img{width:calc((100% - 30px)/2);max-width:195px}.contact .contact-links{margin-top:24px}}

.business-craftsman{display:block;width:min(100%,390px);height:auto;margin:56px 0 0;transform:scaleX(-1);mix-blend-mode:darken}.business>div:first-child{align-self:start}@media(max-width:750px){.business-craftsman{width:min(75%,250px);margin:25px auto 8px}}

/* About: keep the trade name whole and balance the company details. */
.about{grid-template-columns:minmax(280px,.85fr) minmax(0,1.4fr);gap:clamp(36px,5vw,76px);align-items:start}.about h2{font-size:clamp(25px,2.45vw,36px);line-height:1.65;letter-spacing:.025em}.about h2 span{display:block;white-space:nowrap}.about dl>div{grid-template-columns:145px minmax(0,1fr);gap:24px;padding:22px 0;font-size:14px;line-height:1.9}.about dt{font-size:12px;overflow-wrap:anywhere}.about dd{overflow-wrap:anywhere}.about dl>div:first-child{padding-top:0}
@media(max-width:1000px){.about{display:block}.about dl{margin-top:36px}.about h2{font-size:clamp(25px,3.5vw,34px)}}
@media(max-width:750px){.about dl>div{grid-template-columns:100px minmax(0,1fr);gap:18px;font-size:13px;padding:19px 0}.about dt{font-size:11px}.about h2{font-size:clamp(23px,6vw,32px)}}

/* Service detail navigation and verified company figures. */
.service-detail-link{display:inline-flex;align-items:center;gap:28px;font-size:13px;font-weight:600;border-bottom:1px solid currentColor;padding:8px 0;margin-top:8px}.service-detail-link:hover{color:var(--green)}
.proof{background:#e8ebe3}.proof h2{font-size:clamp(26px,3vw,38px)}.proof-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px;margin-top:40px}.proof-grid>div{display:block;border-bottom:0;border-top:1px solid #b9c2b7;padding:22px 0 0}.proof-grid dt{font-size:11px;line-height:1.8;min-height:40px}.proof-grid dd{display:flex;align-items:baseline;gap:5px;color:var(--green);white-space:nowrap;margin:12px 0}.proof-grid strong{font-size:clamp(30px,3.4vw,48px);letter-spacing:-.04em;font-weight:600}.proof-grid dd span{font-size:12px}.proof-grid p{font-size:11px;color:#62695f;margin:0;line-height:1.8}
@media(max-width:1000px){.proof-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.proof-grid strong{font-size:38px}}
@media(max-width:750px){.service-detail-link{grid-column:2;justify-self:start}.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.proof-grid strong{font-size:34px}.proof-grid dd{gap:4px}.proof-grid dt{min-height:36px}}

.proof-grid dd{flex-wrap:wrap}.proof-grid dd small{flex:0 0 100%;white-space:normal;font-size:11px;color:#62695f;font-weight:400;line-height:1.8;margin-top:12px}
