:root{--ink:#272e2e;--muted:#626b6b;--gray:#eff1f1;--line:#d9dede}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:16px;line-height:1.95}a{color:inherit;text-decoration:none}button,textarea{font:inherit}button,summary{cursor:pointer}img{display:block;width:100%;height:auto}header{height:90px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:white}.brand{font-family:Arial,sans-serif;font-weight:800;font-size:27px;letter-spacing:.08em;line-height:1.2}.brand span{display:block;font-size:10px;letter-spacing:.16em;margin-top:8px}nav{display:flex;gap:36px;align-items:center;font-size:14px}.nav-contact{border:1px solid var(--ink);padding:9px 24px}.hero{height:740px;position:relative;color:white;overflow:hidden}.hero>img{height:100%;object-fit:cover;object-position:center 52%}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.38),rgba(0,0,0,0))}.hero-copy{position:absolute;left:9%;top:24%;z-index:1}.eyebrow{font:12px/1.5 Arial,sans-serif;letter-spacing:.16em;margin:0 0 28px}h1{font-size:clamp(35px,4vw,60px);font-weight:500;line-height:1.55;letter-spacing:.08em;margin:0 0 22px}.hero-copy>p:not(.eyebrow){letter-spacing:.14em}.button{display:inline-block;border:1px solid var(--ink);background:var(--ink);color:white;padding:13px 30px;font-size:14px;margin-top:20px}.button.light{background:white;color:var(--ink);border-color:white}.hero-note{position:absolute;right:5%;bottom:35px;z-index:1;letter-spacing:.18em;font:12px Arial}.wrap{max-width:1180px;width:86%;margin:auto}h2{font-size:clamp(27px,3vw,38px);font-weight:500;line-height:1.65;letter-spacing:.04em;margin:0 0 30px}h3{font-size:25px;font-weight:500;line-height:1.6;margin:0 0 25px}p{margin:0 0 22px}.intro{padding:110px 0;display:grid;grid-template-columns:1fr 1fr;gap:0 65px}.intro>.eyebrow{grid-column:1/-1;color:var(--muted)}.intro>div{padding-top:8px;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.section-head>p{font-size:14px;color:var(--muted)}.project{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:center;margin-bottom:95px}.project-image{position:relative}.project-image>img{height:470px;object-fit:cover}.project-image>span{position:absolute;bottom:0;left:0;background:white;padding:12px 22px;font-size:14px}.project-copy p{color:var(--muted)}.project.reverse .project-image{order:2}.project.reverse{grid-template-columns:1fr 1.2fr}.project.reverse .project-image>img{object-fit:contain;background:var(--gray)}details{border-bottom:1px solid var(--line);padding:16px 0}summary{font-size:15px;list-style:none;display:flex;justify-content:space-between;gap:20px}details:not(.site-menu)>summary:after{content:"＋"}details:not(.site-menu)[open]>summary:after{content:"−"}details p,details ul{margin-top:20px;font-size:15px}.comparison{max-width:440px;margin-top:25px}.services{background:var(--gray);padding:90px 0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:50px}.service-grid span,.flow li>span{font:15px Arial;color:var(--muted)}.service-grid h3{margin-top:20px;font-size:23px}.service-grid p{color:var(--muted)}.about{padding:120px 0;display:grid;grid-template-columns:1.1fr 1fr;gap:0 65px}.about .eyebrow{grid-column:1/-1}.about h2{font-size:clamp(27px,3vw,40px)}.about>div{color:var(--muted);padding-top:8px}.signature{margin-top:35px;font-size:14px}.flow{padding-bottom:90px}.flow ol{padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:50px}.flow li{border-top:1px solid var(--line);padding-top:20px}.flow h3{font-size:18px;margin:18px 0}.flow li p{font-size:15px;color:var(--muted)}.faq{padding-bottom:110px;max-width:850px}.faq details{padding:24px 0}.contact{background:var(--ink);color:white;padding:90px 0;text-align:center}.contact h2{font-size:40px}.contact .eyebrow{color:#c9d0d0}#consult{max-width:550px;margin:35px auto 0;text-align:left}#consult label{display:block}textarea{width:100%;padding:15px;background:white;color:var(--ink);border:1px solid var(--line);resize:vertical}#copy-status{font-size:14px;margin-top:20px}footer{display:flex;justify-content:space-between;align-items:center;padding:45px 7%;gap:25px}footer p,footer small{font-size:12px;color:var(--muted);margin:0}:focus-visible{outline:3px solid #8299a2;outline-offset:5px}@media(max-width:760px){header{height:76px;padding:0 6%}.brand{font-size:23px}nav{gap:0}nav>a:not(.nav-contact){display:none}.nav-contact{font-size:12px;padding:8px 12px}.hero{height:650px;max-height:85svh;min-height:510px}.hero>img{object-position:55% center}.hero-copy{left:7%;top:27%;right:5%}.hero .eyebrow{font-size:11px;letter-spacing:.05em}h1{font-size:37px}.hero-copy>p:not(.eyebrow){font-size:14px;letter-spacing:.05em}.hero-note{font-size:10px}.wrap{width:86%}.intro,.about{display:block;padding:70px 0}.intro h2{font-size:28px}.intro>div,.about>div{padding-top:10px}.section-head{display:block;margin-bottom:30px}.section-head>p{margin-top:15px}.project,.project.reverse{display:flex;flex-direction:column;gap:30px;align-items:stretch;margin-bottom:65px}.project.reverse .project-image{order:0}.project-image>img{height:340px}.project-copy h3{font-size:27px}.services{padding:65px 0}.service-grid{grid-template-columns:1fr;gap:20px}.service-grid article{border-top:1px solid var(--line);padding-top:25px}.service-grid h3{margin-bottom:15px}.flow{padding-bottom:60px}.flow ol{grid-template-columns:1fr 1fr;gap:25px}.flow h3{font-size:17px}.faq{padding-bottom:70px}.contact{padding:65px 0}.contact h2{font-size:32px}footer{display:block;padding:35px 7%}footer p{margin:20px 0 10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

header .brand{display:flex;align-items:center;gap:14px}header .brand>.brand-mark{display:block;flex:none;width:44px;height:52px;overflow:hidden;margin:0}header .brand-mark img{width:44px;height:auto;max-width:none}header .brand>.brand-wordmark{font:inherit;letter-spacing:inherit;margin:0}header .brand-wordmark>span{font-size:10px;letter-spacing:.16em;margin-top:8px}@media(max-width:760px){header .brand{gap:9px;font-size:20px}header .brand>.brand-mark{width:34px;height:40px}header .brand-mark img{width:34px}header .brand-wordmark>span{font-size:8px}}

.works-heading{padding:70px 0 55px}.works-heading h1{font-size:42px;margin-bottom:20px}.back-home{display:inline-block;border-bottom:1px solid var(--ink);font-size:14px}.works-teaser{padding:30px 0 100px}.works-teaser p{color:var(--muted)}@media(max-width:760px){.works-heading{padding-top:45px}.works-heading h1{font-size:32px}.works-teaser{padding-bottom:70px}}

/* Case 01 chronological photo gallery */
#case-01{scroll-margin-top:110px}.case-gallery{grid-column:1 / -1;width:100%;margin-top:40px}.gallery-intro{margin-bottom:40px}.gallery-intro h4{font-size:clamp(22px,3vw,32px);font-weight:500;margin:12px 0}.gallery-intro p:last-child{font-size:13px;color:#737775}.gallery-stage{margin:0 0 44px}.gallery-stage h5{font-size:21px;font-weight:500;margin:0 0 22px;border-bottom:1px solid #d8dbd7;padding-bottom:12px}.gallery-stage h5 span{font-size:12px;margin-left:14px;color:#737775}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 20px}.photo-grid figure{margin:0;min-width:0}.photo-grid a{display:block;background:#eeeee8;overflow:hidden}.photo-grid img{display:block;width:100%;height:250px;object-fit:contain;transition:opacity .2s}.photo-grid a:hover img{opacity:.85}.photo-grid figcaption{font-size:12px;line-height:1.6;margin-top:10px;color:#686e69}@media(max-width:700px){.case-gallery{margin-top:20px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.photo-grid img{height:180px}.gallery-stage{margin-bottom:34px}}@media(max-width:400px){.photo-grid img{height:145px}}

.case-photo-link{margin-top:24px}.photo-detail .case-gallery{margin-top:0}.photo-detail .gallery-intro{display:none}.photo-page-back{padding:12px 0 85px}.photo-detail .works-heading h1{font-size:clamp(28px,4vw,44px)}

.hero-works-action{display:flex;justify-content:center;padding:24px 7%;background:#fff}.hero-works-action .button{margin:0}.case-image-label{position:absolute;bottom:0;left:0;display:flex;align-items:center;gap:18px;background:white;padding:12px 22px;max-width:100%;flex-wrap:wrap}.case-image-label>span{font-size:14px}.case-image-label .case-photo-link{margin:0;padding:8px 16px;font-size:14px}@media(max-width:760px){.hero-works-action{padding:20px 7%}.case-image-label{gap:12px;padding:10px 14px}}

.project-image>.case-photo-overlay{position:absolute;right:16px;bottom:16px;margin:0;padding:10px 20px;background:var(--ink);color:#fff;z-index:1}@media(max-width:760px){.project-image>.case-photo-overlay{right:10px;bottom:10px;padding:9px 13px;font-size:14px}.project-image>span{padding:10px 14px}}

.case-photo-footer{display:flex;justify-content:flex-end;align-items:center;gap:20px;padding-top:16px;flex-wrap:wrap}.case-photo-footer>span{font-size:14px}.case-photo-footer>.button{margin:0;padding:10px 20px}@media(max-width:760px){.case-photo-footer{gap:14px;padding-top:12px}.case-photo-footer>.button{padding:9px 13px}}

.case-photo-footer>.case-photo-link,.hero-works-action>.button{border-radius:999px;background:#e4e7e7;border-color:#e4e7e7;color:var(--ink)}

.case-image-link{display:block}.case-image-link>img{height:470px;object-fit:cover}@media(max-width:760px){.case-image-link>img{height:340px}}

.hero-works-action{gap:18px;flex-wrap:wrap;align-items:center}.hero-works-action>.line-consult{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#06c755;border-color:#06c755;color:#fff;font-weight:600}.line-consult>img{width:26px;height:26px;flex:none}@media(max-width:760px){.hero-works-action{gap:12px}.hero-works-action>.button{padding:12px 20px}}

.hero-works-action>.button:not(.line-consult){color:#000}

header .brand-mark img{width:100%;height:100%;object-fit:contain;max-width:100%}

header .brand>.brand-mark{width:35px;height:42px}@media(max-width:760px){header .brand>.brand-mark{width:27px;height:32px}}

.hero .hero-copy>.eyebrow{font-family:inherit;font-size:20px;line-height:1.7;letter-spacing:.08em;margin-bottom:24px}@media(max-width:760px){.hero .hero-copy>.eyebrow{font-size:16px;letter-spacing:.03em;margin-bottom:20px}}

header{position:relative;z-index:10}.site-menu{position:relative;border:0;padding:0}.site-menu>summary{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--line);border-radius:10px;list-style:none}.site-menu>summary::-webkit-details-marker{display:none}.site-menu>summary:after{content:none}.hamburger{display:flex;flex-direction:column;gap:6px;width:23px}.hamburger i{display:block;height:2px;background:var(--ink);width:100%}.site-menu-panel{position:absolute;top:calc(100% + 12px);right:0;width:260px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #0002;display:flex;flex-direction:column;align-items:stretch;gap:0}.site-menu-panel>a{display:block;padding:12px 16px;font-size:16px;border-radius:7px}.site-menu-panel>a:hover{background:var(--gray)}@media(max-width:760px){.site-menu-panel{width:min(280px,88vw)}.site-menu-panel>a:not(.nav-contact){display:block}}

#case-01{display:block}#case-01 .project-image{max-width:900px;margin:0 auto}.case-description{max-width:850px;margin:0 0 55px;line-height:1.9}.case-description p{margin-bottom:20px}.case-description details{margin-top:24px}

.construction-content{margin-top:28px}.construction-content h2{font-size:20px;font-weight:500;margin-bottom:16px}.construction-content ul{padding-left:1.3em}.photo-viewer{border:0;padding:0;background:#161616;color:white;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;overflow:hidden}.photo-viewer::backdrop{background:rgba(0,0,0,.9)}.photo-viewer[open]{display:flex;align-items:center;justify-content:center}.photo-viewer figure{margin:0;width:calc(100% - 140px);text-align:center}.photo-full{display:block;max-width:100%;width:auto;height:auto;max-height:calc(100dvh - 120px);margin:auto;object-fit:contain}.photo-caption{font-size:14px;line-height:1.6;margin-top:15px}.photo-viewer button{position:absolute;border:1px solid #777;background:#333c;color:white;border-radius:50%;width:48px;height:48px;cursor:pointer;font-size:24px;display:flex;align-items:center;justify-content:center}.photo-close{top:16px;right:16px}.photo-prev{left:15px;top:calc(50% - 24px)}.photo-next{right:15px;top:calc(50% - 24px)}.photo-viewer button:focus-visible{outline:3px solid white;outline-offset:3px}@media(max-width:600px){.photo-viewer figure{width:calc(100% - 90px)}.photo-viewer button{width:38px;height:38px;font-size:20px}.photo-prev{left:5px}.photo-next{right:5px}.photo-caption{font-size:13px}}

.service-page{padding-bottom:80px}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.service-card{border:1px solid #d7d9d7;padding:34px;background:#fff}.service-number{font-size:14px;color:#737775}.service-card h2{font-size:24px;line-height:1.5;margin:10px 0 16px;font-weight:500}.service-card p{color:#626963;font-size:16px;line-height:1.9}.service-card ul{padding-left:1.3em;font-size:16px;line-height:2}.service-consult{margin-top:60px;padding:36px 0;border-top:1px solid #d7d9d7}.service-consult h2{font-size:26px;line-height:1.6;font-weight:500}.service-consult p{font-size:16px;line-height:1.9}.service-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:25px}.service-actions .button{border-radius:999px;background:#eee;color:#000;border:1px solid #ddd}@media(max-width:700px){.service-grid{grid-template-columns:1fr}.service-card{padding:26px}.service-card h2{font-size:22px}.service-consult h2{font-size:22px}}

.service-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:25px}.service-photos img{height:160px;object-fit:cover}.service-photos figcaption{font-size:13px}.service-card{min-width:0}.service-grid{grid-template-columns:1fr}.service-photos img{height:240px}@media(min-width:1000px){.service-card{display:grid;grid-template-columns:1fr 1.4fr;column-gap:38px}.service-card>span,.service-card>h2,.service-card>p,.service-card>ul{grid-column:1}.service-card>.service-photos{grid-column:2;grid-row:1 / 5;align-self:center;margin-top:0}.service-photos img{height:220px}}@media(max-width:600px){.service-photos{grid-template-columns:1fr;gap:22px}.service-photos img{height:240px}}

.service-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.service-photos img{object-fit:contain;background:#eee}@media(max-width:450px){.service-photos{grid-template-columns:1fr}}

.about-introduction{min-width:0}.about-portrait{margin:32px 0 0;max-width:360px}.about-portrait img{display:block;width:100%;height:auto}.about-introduction h2{margin-top:0}@media(max-width:700px){.about-portrait{max-width:300px;margin:26px 0 0}}

.site-menu-panel{max-height:calc(100dvh - 100px);overflow-y:auto}.company-info{max-width:800px;margin-top:36px;display:grid;grid-template-columns:150px 1fr;gap:20px;line-height:1.8}.company-info dt{font-weight:500}.company-info dd{margin:0}@media(max-width:600px){.company-info{grid-template-columns:1fr;gap:8px}.company-info dd{margin-bottom:18px}}

/* Five photographs softly overlap; retain the first image without JavaScript. */
.hero>.hero-slide{position:absolute;inset:0;width:100%;height:100%;opacity:0;transform:scale(1);transition:opacity 2s ease-in-out,transform 9s linear;object-fit:cover;object-position:center 52%;pointer-events:none}
.hero>.hero-slide.is-active{opacity:1;transform:scale(1.035)}
.hero:after{pointer-events:none}
.hero-pause{position:absolute;right:24px;bottom:24px;z-index:2;color:#fff;background:rgba(30,30,30,.45);border:1px solid #ffffff90;border-radius:999px;padding:7px 15px;font-size:12px;line-height:1.5}
.hero-pause[hidden]{display:none}
.hero.is-paused>.hero-slide{transition:opacity 2s ease-in-out}
@media(max-width:760px){.hero>.hero-slide{object-position:55% center}.hero-pause{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.hero>.hero-slide{transition:none;transform:none}}

/* Keep navigation icons independent of content accordion markers. */
.site-menu>summary{gap:0;padding:0}
.site-menu>summary::after,.site-menu[open]>summary::after{content:none;display:none}
.site-menu>summary::marker{content:""}
.site-menu .hamburger{position:relative;display:block;flex:none;width:23px;height:18px}
.site-menu .hamburger i{position:absolute;left:0;top:8px;width:23px;height:2px;transform-origin:center;transition:transform .2s,opacity .2s}
.site-menu .hamburger i:nth-child(1){transform:translateY(-8px)}
.site-menu .hamburger i:nth-child(3){transform:translateY(8px)}
.site-menu[open] .hamburger i:nth-child(1){transform:rotate(45deg)}
.site-menu[open] .hamburger i:nth-child(2){opacity:0}
.site-menu[open] .hamburger i:nth-child(3){transform:rotate(-45deg)}
@media(prefers-reduced-motion:reduce){.site-menu .hamburger i{transition:none}}

/* Keep the close-up washroom photograph fully in frame. */
.hero>.hero-slide.hero-slide-full{object-fit:contain;object-position:center;background:#aaa49a;transform:none}

/* Consistent case-study listing cards. */
.works>.project[id^="case-"]{display:block;scroll-margin-top:110px}.works>.project[id^="case-"] .project-image{max-width:900px;margin:0 auto}

/* Two-column case-study index, including compact screens. */
.works-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px 36px;padding-bottom:90px;align-items:start}
.works-list>.project[id^="case-"]{min-width:0;margin:0}
.works-list .case-image-link{display:block;background:var(--gray)}
.works-list .case-image-link img{width:100%;aspect-ratio:4/3;object-fit:contain}
.works-list .case-photo-footer{justify-content:space-between;gap:12px}
@media(max-width:760px){.works-list{gap:36px 16px;padding-bottom:60px}.works-list .case-photo-footer{align-items:flex-start;flex-direction:column;gap:10px}.works-list .case-photo-footer>span{font-size:12px;line-height:1.6}.works-list .case-photo-footer>.button{font-size:11px;padding:8px 10px;white-space:nowrap}}

.strengths-intro{max-width:850px;margin-top:35px}.strengths-page .service-grid{margin-top:0}.strengths-page .service-card h2{font-size:clamp(23px,2.2vw,30px);margin-top:20px}.strengths-closing{max-width:850px;padding:85px 0}.strengths-closing h2{font-size:clamp(25px,3vw,34px)}@media(max-width:760px){.strengths-closing{padding:55px 0}.strengths-intro br{display:none}}

.about-message h3{font-size:clamp(22px,2.3vw,28px);line-height:1.8;color:var(--ink)}.about-message p{margin-bottom:28px}.about-business-idea{color:var(--ink);font-size:20px;font-weight:500;border-left:2px solid var(--line);padding-left:20px;margin-top:40px}

.about-message .about-portrait-ending{width:100%;max-width:280px;margin:36px 0 0}@media(max-width:700px){.about-message .about-portrait-ending{max-width:240px;margin-top:28px}}

.about-portrait-ending .portrait-signature{margin-top:14px;text-align:right;font-size:14px;line-height:1.9;color:var(--ink)}

/* Comfortable reading rhythm on the philosophy page. */
#about .about-message{line-height:2.3}
#about .about-message>p{margin-bottom:40px}
#about .about-introduction h2{line-height:1.9}
#about .about-message>.about-business-idea{line-height:2.1;margin-top:52px;margin-bottom:44px}
#about .about-message .about-portrait-ending{margin-top:48px}
#about .portrait-signature{line-height:2.1;margin-top:18px}
@media(max-width:760px){#about .about-message{line-height:2.2}#about .about-message>p{margin-bottom:34px}#about .about-introduction h2{line-height:1.85;margin-bottom:38px}#about .about-message>.about-business-idea{margin-top:44px;margin-bottom:38px}}

/* Place the signature beside the portrait, aligned to its lower edge. */
#about .about-message .about-portrait-ending{display:grid;grid-template-columns:minmax(0,280px) max-content;align-items:end;gap:20px;max-width:none;width:100%}
#about .about-portrait-ending img{min-width:0;width:100%;height:auto}
#about .about-portrait-ending .portrait-signature{margin:0;text-align:left;font-size:13px;line-height:2;white-space:nowrap}
@media(max-width:700px){#about .about-message .about-portrait-ending{grid-template-columns:minmax(0,240px) max-content;gap:14px}#about .about-portrait-ending .portrait-signature{font-size:12px}}

#about .about-portrait-ending .portrait-signature{font-size:17px;line-height:2;font-weight:500}@media(max-width:700px){#about .about-portrait-ending .portrait-signature{font-size:15px}}

.contact.contact-home{background:#eff1f1;color:var(--ink)}

.contact-icons,.contact-actions{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}.contact-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--ink);color:white}.contact-icon img,.contact-icon svg,.phone-consult svg{width:26px;height:26px}.icon-line{background:#06c755}.contact-number{font-size:16px;white-space:nowrap}.contact-actions{margin-top:30px}.contact-actions .button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-width:220px;min-height:74px;margin:0;border-radius:999px}.contact-actions .line-consult{background:#06c755;border-color:#06c755;color:white}.phone-consult small{display:block;font-size:14px;line-height:1.4}

footer.company-footer{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:48px 7%;line-height:1.8}.company-footer .footer-tagline{font-size:15px;color:var(--ink);margin:0}.footer-company{font-size:24px;font-weight:600;letter-spacing:.04em}.company-footer address{font-size:15px;font-style:normal;color:var(--muted);overflow-wrap:anywhere}.footer-phone{font-size:18px;font-weight:500}

header .brand-with-tagline>.header-tagline{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:11px;font-weight:400;line-height:1.5;letter-spacing:.02em;margin:0 0 4px;white-space:nowrap}@media(max-width:760px){header .brand-with-tagline>.header-tagline{font-size:9px;letter-spacing:0;margin-bottom:3px}}

.company-footer .footer-tagline{line-height:1.4;margin-bottom:-10px}.company-footer .footer-company{line-height:1.2}

.company-footer .footer-legal-name{font-size:15px;color:var(--ink);margin:16px 0 0;line-height:1.25}

.footer-contact-row{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;white-space:nowrap}.footer-fax{font-size:16px;color:var(--ink)}

.company-footer .footer-phone,.company-footer .footer-fax{font-size:13px;font-weight:400}
@media(max-width:760px){.company-footer .footer-phone,.company-footer .footer-fax{font-size:clamp(9px,2.7vw,13px)}.footer-contact-row{gap:8px}}
.company-footer address{white-space:nowrap;overflow-wrap:normal}
.about-team-photo{max-width:820px;margin:36px auto 0}.about-team-photo img{width:100%;height:auto;display:block}
.about-moments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 40px}.about-moments img{display:block;width:100%;height:auto;border-radius:12px}@media(max-width:700px){.about-moments{gap:6px;margin-bottom:34px}.about-moments img{border-radius:8px}}
#about .about-message>.about-moments+.about-business-idea{margin-top:76px}@media(max-width:760px){#about .about-message>.about-moments+.about-business-idea{margin-top:64px}}
.footer-brand-row{display:flex;align-items:center;gap:24px}.footer-socials{display:flex;align-items:center;gap:8px}.footer-socials a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:#272e2e}.footer-socials svg{width:29px;height:29px}.footer-socials img{width:32px;height:32px;filter:grayscale(1) invert(1)}.footer-socials a:hover{opacity:.65}
.company-footer .footer-legal-name+address{margin-top:-11px;line-height:1.25}.company-footer .footer-contact-row{margin-top:-11px;line-height:1.25}
.hero{touch-action:pan-y pinch-zoom;user-select:none;cursor:pointer}.hero-pause{display:none!important}
@media(max-width:760px){.company-footer address{font-size:clamp(9px,2.8vw,15px)}}
.company-footer .footer-brand-row{width:100%;justify-content:space-between;gap:20px}.company-footer .footer-socials{margin-left:auto;flex-shrink:0}.company-footer .footer-socials img{filter:none}
.company-footer .footer-socials a{width:48px;height:48px}.company-footer .footer-socials svg{width:36px;height:36px}.company-footer .footer-socials img{width:40px;height:40px}
.hero-works-action .contact-icons{gap:8px;flex-basis:100%;width:100%;justify-content:center;margin-top:4px}.hero-works-action .contact-icon{width:48px;height:48px;background:transparent;color:#272e2e;border-radius:0}.hero-works-action .contact-icon svg{width:36px;height:36px}.hero-works-action .contact-icon img{width:40px;height:40px}.hero-works-action .contact-icon:hover{opacity:.65}
 .strengths-consultation-photo{width:100%;max-width:520px;margin:32px auto 0}.strengths-consultation-photo img{display:block;width:100%;height:auto;border-radius:12px}
.strengths-closing .strengths-planning-photo{max-width:640px;margin:28px auto 36px}
.access-page{padding-bottom:80px}.access-overview{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-bottom:76px}.access-label{font-size:13px;color:var(--muted);letter-spacing:.12em;margin-bottom:16px}.access-overview h2{margin-bottom:16px;font-size:clamp(23px,2.5vw,30px)}.access-details{margin:0;display:grid;grid-template-columns:140px 1fr;gap:9px 16px;line-height:1.65}.access-details dt{font-size:14px;color:var(--muted)}.access-details dd{margin:0}.access-details address{font-style:normal;overflow-wrap:anywhere}.access-phone{font-size:24px;white-space:nowrap}.access-guidance{background:var(--gray);padding:36px;border-radius:12px}.access-guidance p{font-size:15px}.access-buttons{display:flex;flex-wrap:wrap;gap:12px}.access-buttons .button{margin:0;border-radius:999px;text-align:center}.access-buttons .access-line{background:#06c755;border-color:#06c755;color:white}.access-map-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.access-map-heading h2{margin:0;font-size:28px}.access-map-link{font-size:14px;text-decoration:underline;text-underline-offset:5px}.access-map{display:block;width:100%;height:480px;border:0;border-radius:12px;background:var(--gray)}.access-route{margin-top:24px}.access-route p{font-size:14px;color:var(--muted);margin-bottom:0}.access-route .button{border-radius:999px}.access-area{margin-top:64px;padding-top:40px;border-top:1px solid var(--line)}.access-area h2{font-size:24px;margin-bottom:18px}.access-area a{text-decoration:underline;text-underline-offset:5px;font-size:14px}@media(max-width:760px){.access-overview{grid-template-columns:1fr;gap:32px;margin-bottom:48px}.access-details{grid-template-columns:110px 1fr;gap:9px 12px}.access-guidance{padding:26px 22px}.access-buttons .button{flex:1;padding:13px 18px;white-space:nowrap}.access-map-heading{align-items:flex-start;flex-direction:column;gap:12px}.access-map{height:350px}.access-page{padding-bottom:55px}.access-area{margin-top:48px}}
.access-details dd:has(address){display:flex;align-items:center;gap:16px}.access-map-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:white}.access-map-icon svg{width:25px;height:25px}.access-map-icon:hover{background:var(--gray)}.access-map-icon:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@media(max-width:760px){.access-details dd:has(address){gap:8px}}
.access-page .access-overview{grid-template-columns:1fr}.access-page>.access-guidance{margin-top:56px;text-align:center}.access-page>.access-guidance .access-buttons{justify-content:center}.access-page>.access-guidance p{max-width:680px;margin:0 auto 24px}
footer.access-footer{display:flex;flex-direction:column;align-items:flex-start;gap:4px}footer.access-footer p{font-size:12px;line-height:1.5;margin:0}footer.access-footer .brand{margin:0}

.phone-consult .freedial-mark{width:42px;height:auto;flex-shrink:0;object-fit:contain}

.contact-works .phone-consult{border-color:rgba(255,255,255,.7)}

.access-buttons .phone-consult{display:inline-flex;align-items:center;justify-content:center;gap:12px}

.strengths-closing .strengths-message{margin-top:88px;margin-bottom:28px}.strengths-closing .strengths-message>p{font-size:clamp(26px,3vw,36px);font-weight:500;line-height:1.65;letter-spacing:.04em;margin-bottom:12px}.strengths-message-lead span{display:inline-block}.strengths-message>p:last-child{margin-bottom:0}@media(max-width:600px){.strengths-closing .strengths-message{margin-top:64px}}

/* Sentence spacing on the philosophy page. */
#about .about-message>.about-paragraph{margin-bottom:52px}#about .about-sentence{display:block}#about .about-sentence+.about-sentence{margin-top:28px}#about .about-message .about-portrait-ending{margin-top:112px}@media(max-width:600px){#about .about-message>.about-paragraph{margin-bottom:44px}#about .about-sentence+.about-sentence{margin-top:24px}#about .about-message .about-portrait-ending{margin-top:88px}}

#about .about-message>.about-business-idea{font-size:clamp(26px,3vw,36px);font-weight:600;line-height:1.8}

/* Mobile reading rhythm and semantic line wrapping. */
@media(max-width:760px){
 body{line-break:strict;word-break:normal;overflow-wrap:break-word}
 .wrap{width:calc(100% - 40px)}
 main h1,main h2,main h3{letter-spacing:.025em;text-wrap:balance;line-break:strict}
 .mobile-phrase{display:inline-block;max-width:100%}
 .works-heading h1,.photo-detail .works-heading h1{font-size:clamp(26px,7vw,32px);line-height:1.65}
 .hero h1{font-size:clamp(30px,8.5vw,37px);line-height:1.6}
 .intro h2,.contact h2,.access-guidance h2,#about .about-introduction h2{font-size:clamp(24px,6.4vw,28px);line-height:1.8}
 .strengths-page .service-card h2,.strengths-closing h2{font-size:clamp(22px,5.8vw,26px)}
 .intro p br,.contact p br,.service-page p br,.strengths-intro br,.strengths-closing>p br{display:none}
 .contact-actions,.access-buttons,.service-actions{flex-direction:column;align-items:stretch;width:100%;max-width:340px;margin-left:auto;margin-right:auto;gap:14px}
 .contact-actions .button,.access-buttons .button,.service-actions .button{width:100%;min-width:0;min-height:64px;padding:14px 18px;white-space:nowrap;display:flex;align-items:center;justify-content:center}
 .phone-consult small{white-space:nowrap}
 .access-guidance{padding:32px 20px}
 .access-details{grid-template-columns:1fr;gap:6px}
 .access-details dd{min-width:0;margin-bottom:18px}
 .access-details dd:has(address){justify-content:space-between}
 .access-phone{font-size:24px}
 #about .about-message .about-portrait-ending{grid-template-columns:1fr;gap:22px}
 #about .about-portrait-ending img{width:min(100%,280px)}
 #about .about-portrait-ending .portrait-signature{font-size:15px;white-space:normal}
 #about .about-message>.about-business-idea{font-size:clamp(23px,6vw,28px);padding-left:14px;line-height:1.85}
 .strengths-closing .strengths-message>p{font-size:clamp(24px,6.4vw,28px);line-height:1.85;text-wrap:balance}
 .about-moments{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .works-list .case-image-link img{height:auto;aspect-ratio:4/3}
 .photo-grid figcaption{font-size:13px;line-height:1.85}
 .company-info dd,.company-info dt{min-width:0;overflow-wrap:anywhere}
 .company-footer address{white-space:normal;font-size:14px;line-height:1.8}
 .footer-contact-row{flex-wrap:wrap;white-space:normal;row-gap:8px}
 .company-footer .footer-phone,.company-footer .footer-fax{font-size:14px}
 .footer-brand-row{flex-wrap:wrap}
 .flow ol{grid-template-columns:1fr;gap:28px}
 .faq summary{line-height:1.8;gap:12px}.faq summary:after{flex-shrink:0}
}
@media(max-width:380px){.hero-works-action>.button{padding:12px 16px;font-size:13px}.service-card{padding:22px 18px}.photo-grid:not(.service-photos){grid-template-columns:1fr}.photo-grid:not(.service-photos) img{height:240px}}

/* Team photo collage: featured photo alongside everyday moments. */
.about-moments.about-moments-collage{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));aspect-ratio:1.04;gap:5px;background:#fff}
.about-moments-collage img{width:100%;height:100%;min-height:0;object-fit:cover;border-radius:0}
.about-moments-collage img:nth-child(1){grid-column:1 / 3;grid-row:1;object-position:50% 32%}
.about-moments-collage img:nth-child(2){grid-column:1 / 3;grid-row:2;object-position:65% 25%}
.about-moments-collage img.team-feature{grid-column:3 / 7;grid-row:1 / 3;object-fit:contain}
.about-moments-collage img:nth-child(4){grid-column:1 / 4;grid-row:3 / 5;object-position:50% 0%}
.about-moments-collage img:nth-child(5){grid-column:4 / 7;grid-row:3 / 5;object-position:50% 45%}
@media(max-width:600px){
.about-moments.about-moments-collage{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto;aspect-ratio:auto;gap:4px}
.about-moments-collage img.team-feature{grid-column:1 / 3;grid-row:1;aspect-ratio:2048/1472;height:auto}
.about-moments-collage img:nth-child(1){grid-column:1;grid-row:2}
.about-moments-collage img:nth-child(2){grid-column:2;grid-row:2}
.about-moments-collage img:nth-child(4){grid-column:1;grid-row:3}
.about-moments-collage img:nth-child(5){grid-column:2;grid-row:3}
.about-moments-collage img:not(.team-feature){aspect-ratio:3/4;height:auto;object-fit:cover}
}

.photo-grid.handover-photo{grid-template-columns:minmax(0,1fr);max-width:560px;margin-inline:auto}.photo-grid.handover-photo img{height:auto;width:100%;object-fit:contain}

/* Home page footer menu */
.access-footer.home-footer{flex-direction:row;align-items:center;justify-content:space-between;gap:20px}.home-footer-brand{display:flex;flex-direction:column;gap:4px}.home-bottom-menu{width:48px;flex:none;z-index:11}.home-bottom-menu .site-menu-panel{top:auto;bottom:calc(100% + 12px);left:auto;right:0;max-height:calc(100dvh - 100px)}

.about-paragraph.about-before-closing{margin-bottom:0}.about-closing-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 52px}.about-closing-row>p{margin:0;min-width:0}.about-closing-row>.site-menu{flex:0 0 48px}@media(max-width:600px){.about-closing-row{margin:24px 0 44px;gap:12px}}

.access-exterior{margin:0 0 48px}.access-exterior img{display:block;width:100%;height:auto;border-radius:12px}@media(max-width:600px){.access-exterior{margin-bottom:32px}}

.access-email{overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:4px}
