@charset "UTF-8";
:root{--ink:#142d3c;--body:#33434c;--accent:#ad4b2b;--paper:#fff;--light:#f2f5f6;--line:#d7dfe3;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif CJK JP",serif;--sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:var(--serif);font-weight:600}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}a,button{touch-action:manipulation}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:10px;left:10px;background:#fff;color:var(--ink);padding:12px 20px;z-index:100;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.draft-note{background:var(--ink);color:#e5ebef;text-align:center;font-size:.75rem;letter-spacing:.12em;padding:5px 20px}.site-header{height:102px;max-width:1600px;padding:0 5%;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:10;background:#fff}.brand{display:flex;flex-direction:column;flex-shrink:0;line-height:1.15}.brand-name{font-size:1.95rem;letter-spacing:.18em;font-weight:700;font-family:var(--serif)}.brand-sub{font-size:.65rem;letter-spacing:.24em;margin-top:9px}.site-header nav{display:flex;align-items:center;gap:32px;font-size:.875rem;font-weight:600}.site-header nav>a:not(.nav-contact){padding:12px 0}.site-header nav>a:not(.nav-contact):hover{color:var(--accent)}.nav-contact{display:flex;gap:30px;padding:14px 21px;background:var(--ink);color:#fff}.nav-contact:hover{background:#254c61}.menu-toggle{display:none}.eyebrow{display:flex;align-items:center;gap:13px;font-size:.8125rem;letter-spacing:.15em;font-weight:600;line-height:1.8}.short-rule{width:28px;height:2px;background:var(--accent)}.hero{max-width:1600px;display:grid;grid-template-columns:43% 57%;margin:auto;position:relative}.hero-copy{padding:54px 6% 38px 12%;position:relative;z-index:1}.hero h1{font-size:clamp(2.8rem,4vw,4.2rem);line-height:1.48;letter-spacing:.055em;margin:27px 0 24px;white-space:nowrap}.hero-description{font-size:1rem;line-height:2.05;color:var(--body);letter-spacing:.02em}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:58px;font-size:.9375rem;font-weight:600;padding:15px 26px;transition:background .2s,transform .2s}.button-primary{background:var(--accent);color:#fff;margin-top:29px}.button-primary:hover{background:#87391f;transform:translateY(-2px)}.button span{font-size:1.3rem}.hero-note{font-size:.8125rem;margin:10px 0 0 3px;letter-spacing:.07em}.hero-visual{min-height:610px;position:relative;overflow:hidden;margin-right:0}.hero-visual>img{position:absolute;inset:0;object-position:center}.hero-label{position:absolute;bottom:41px;left:34px;background:var(--ink);padding:24px 28px;color:#fff;border-left:3px solid #d18864;max-width:calc(100% - 68px)}.hero-label>span{font-family:var(--serif);font-size:1.375rem;letter-spacing:.12em}.hero-label small{font-size:.625rem;display:block;letter-spacing:.23em;margin-top:7px}.image-credit{position:absolute;bottom:11px;right:15px;background:#142d3cbf;color:#fff;padding:2px 8px;font-size:.75rem}.hero-bottom{grid-column:1/-1;margin:0 5%;padding:20px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;letter-spacing:.07em}.hero-bottom>a{display:flex;gap:35px;align-items:center}.hero-bottom>a>span{font-size:1.3rem;color:var(--accent)}.section{max-width:1280px;margin:auto;padding:106px 5%}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:45px}h2{font-size:clamp(1.8rem,2.75vw,2.75rem);line-height:1.6;letter-spacing:.08em}.section-heading .eyebrow,.about .eyebrow{color:var(--accent);margin-bottom:13px}.section-lead{color:var(--body);font-size:.9375rem;line-height:2;max-width:400px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 46px}.service-card{padding:32px 0;border-top:1px solid var(--line);display:flex;gap:22px}.service-no{font-family:var(--serif);color:var(--accent);font-size:1.25rem;flex-shrink:0;margin-top:2px}.service-card h3{font-size:1.3rem;letter-spacing:.03em;line-height:1.6;margin-bottom:13px}.service-card p{font-size:.9375rem;line-height:1.95;color:var(--body)}.service-card ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 8px;padding:0;margin:20px 0 0}.service-card li{background:var(--light);padding:4px 11px;font-size:.8125rem}.approach{background:var(--ink);color:#fff}.approach-inner{max-width:1280px;margin:auto;padding:76px 5%;display:grid;grid-template-columns:1fr 1.15fr;gap:60px}.approach-title .eyebrow{color:#d4ab91;margin-bottom:24px;font-size:.75rem}.approach h2{font-size:clamp(2rem,3vw,3rem);line-height:1.75}.approach-list article{display:flex;gap:24px;border-bottom:1px solid #45606f;padding:24px 0}.approach-list article:first-child{padding-top:8px}.approach-list article>span{font-family:var(--serif);font-size:1.125rem;color:#d4ab91;margin-top:3px}.approach-list h3{font-size:1.1875rem;font-weight:500;letter-spacing:.07em;margin-bottom:8px}.approach-list p{color:#d1dbe0;font-size:.9375rem;line-height:1.9}.text-link{display:inline-flex;align-items:center;gap:30px;font-size:.875rem;border-bottom:1px solid var(--ink);padding:7px 0;white-space:nowrap}.text-link:hover{color:var(--accent);border-color:var(--accent)}.text-link>span[aria-hidden]{font-size:1.25rem}.works-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:22px}.photo-frame{height:300px;overflow:hidden;background:var(--light)}.work-photo img{transition:transform .4s}.work-photo:hover img{transform:scale(1.025)}.work-photo figcaption{display:flex;flex-direction:column;gap:5px;padding:16px 0 0}.work-photo figcaption>span{font-size:1rem;font-weight:600}.work-photo small{font-size:.75rem;color:#61717a}.works-note{font-size:.75rem;color:#61717a;margin-top:24px}.reputation{max-width:1152px;margin:0 auto 25px;padding:34px 36px;background:var(--light);display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:2px solid var(--ink)}.reputation .eyebrow{font-size:.75rem;color:#586b76}.reputation-title{font-family:var(--serif);font-size:1.375rem;letter-spacing:.05em;margin-top:9px}.rating{display:flex;align-items:center;gap:20px}.rating-value{font-family:Georgia,serif;font-size:3.5rem;line-height:1}.stars{font-size:.875rem;color:var(--accent);letter-spacing:.15em}.rating p{font-size:.75rem;margin-top:3px}.rating-source{display:flex;flex-direction:column;align-items:flex-end;gap:9px}.rating-source small{color:#61717a;font-size:.75rem}.about{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;padding-top:94px;padding-bottom:108px}.about-intro>p:not(.eyebrow){margin-top:26px;font-size:.9375rem;line-height:2.2;color:var(--body)}.area-label{margin-top:30px;padding-left:20px;border-left:3px solid var(--accent)}.area-label span,.area-label strong,.area-label small{display:block}.area-label span{font-size:.75rem;color:#61717a;letter-spacing:.07em}.area-label strong{font-size:.9375rem;font-weight:600;margin:5px 0}.area-label small{font-size:.75rem;color:#61717a}.business-info{margin:0}.business-info>div{display:grid;grid-template-columns:100px 1fr;gap:25px;border-bottom:1px solid var(--line);padding:22px 0;font-size:.9375rem;line-height:1.95}.business-info>div:first-child{border-top:1px solid var(--line)}dt{font-weight:600}dd{margin:0;color:var(--body)}.contact{background:var(--ink);color:#fff}.contact-inner{max-width:1280px;margin:auto;padding:74px 5% 78px;display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}.contact .eyebrow{color:#d4ab91;font-size:.75rem;margin-bottom:17px}.contact h2{font-size:clamp(2rem,2.8vw,2.8rem)}.contact-copy>p:not(.eyebrow){font-size:.875rem;color:#d1dbe0;line-height:2.1;margin-top:20px}.contact-free{display:inline-block;font-size:.8125rem;margin-top:24px;border:1px solid #647d8b;padding:5px 14px;letter-spacing:.05em}.contact-links{display:flex;flex-direction:column;gap:15px}.contact-card{display:flex;align-items:center;justify-content:space-between;padding:22px 25px;background:#fff;color:var(--ink);gap:15px}.contact-card small{display:block;font-size:.75rem;color:#61717a;overflow-wrap:anywhere}.contact-card strong{font-size:1.0625rem;display:block;margin-top:5px;letter-spacing:.02em}.contact-card>span[aria-hidden]{font-size:1.5rem;color:var(--accent)}.contact-card:hover{background:#e9f0f4}.contact-note{font-size:.75rem;color:#b9c9d2}.site-footer{max-width:1600px;margin:auto;display:flex;align-items:center;gap:50px;padding:38px 5%}.site-footer .brand-name{font-size:1.5rem}.site-footer .brand-sub{font-size:.6rem}.footer-notes p{font-size:.8125rem}.footer-notes small{color:#61717a;font-size:.75rem}.back-top{font-size:.8125rem;margin-left:auto;white-space:nowrap}.back-top span{margin-left:16px;color:var(--accent)}
@media(min-width:1500px){.hero-copy{padding-top:72px;padding-bottom:62px}.hero-visual{min-height:680px}}
@media(max-width:1050px){.site-header{padding:0 4%;height:92px}.site-header nav{gap:22px}.site-header nav>a{font-size:.8125rem}.nav-contact{padding:12px 16px;gap:15px}.hero{grid-template-columns:47% 53%}.hero-copy{padding:46px 7% 36px 9%}.hero h1{font-size:3rem}.hero-visual{min-height:590px}.section{padding-left:6%;padding-right:6%}.reputation{margin-left:6%;margin-right:6%;padding:28px 24px}.approach-inner{padding-left:6%;padding-right:6%;gap:40px}.works-grid{gap:16px;grid-template-columns:1.2fr 1fr 1fr}.photo-frame{height:270px}.about{gap:38px}.contact-inner{padding-left:6%;padding-right:6%;gap:38px}.business-info>div{grid-template-columns:86px 1fr;gap:14px}.site-footer{gap:30px}}
@media(max-width:780px){html{scroll-padding-top:25px}.site-header{height:87px;padding:0 6%}.brand-name{font-size:1.75rem}.brand-sub{font-size:.6rem}.menu-toggle{display:flex;gap:12px;align-items:center;background:none;border:0;min-height:48px;padding:8px 0 8px 10px;font-size:.75rem;color:var(--ink)}.menu-lines{display:block;position:relative;width:24px;height:15px;border-top:1px solid;border-bottom:1px solid}.menu-lines:after{content:"";position:absolute;top:6px;left:0;width:24px;border-top:1px solid}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:18px 6% 26px;box-shadow:0 14px 18px #142d3c12;align-items:stretch;gap:4px}.site-header nav.is-open{display:flex;flex-direction:column}.site-header nav>a:not(.nav-contact){padding:13px 0;font-size:.9375rem}.site-header nav>.nav-contact{margin-top:10px;font-size:.9375rem;justify-content:space-between}.hero{grid-template-columns:1fr}.hero-copy{padding:32px 6% 36px}.hero h1{font-size:clamp(2.25rem,6.9vw,3.5rem);line-height:1.55;letter-spacing:.06em;white-space:normal;margin:21px 0 19px}.desktop-break{display:none}.hero .eyebrow{font-size:.75rem}.hero-description{font-size:.9375rem;line-height:2}.hero .button{margin-top:24px;min-height:54px;font-size:.875rem;padding:14px 23px}.hero-note{font-size:.75rem}.hero-visual{min-height:0;height:380px;margin-left:6%}.hero-visual>img{object-position:center}.hero-label{left:0;bottom:28px;padding:17px 22px;max-width:calc(100% - 26px)}.hero-label>span{font-size:1.125rem}.hero-label small{font-size:.6rem}.hero-bottom{margin:0 6%;padding:17px 0;font-size:.75rem;gap:20px}.hero-bottom>span{max-width:50%}.hero-bottom>a{gap:15px}.section{padding:68px 6%}.section-heading{display:block;margin-bottom:30px}.section-heading .eyebrow,.about .eyebrow{font-size:.75rem}.section-heading h2{font-size:1.9rem;line-height:1.65}.section-lead{margin-top:21px;font-size:.875rem}.service-grid{gap:0 24px}.service-card{gap:14px;padding:24px 0}.service-no{font-size:1.1rem}.service-card h3{font-size:1.125rem}.service-card p{font-size:.875rem}.service-card ul{margin-top:15px}.service-card li{font-size:.75rem;padding:3px 8px}.approach-inner{grid-template-columns:1fr;gap:24px;padding-top:52px;padding-bottom:48px}.approach h2{font-size:2rem}.approach-title .eyebrow{margin-bottom:17px}.approach-list article{padding:22px 0}.approach-list article:first-child{padding-top:12px}.approach-list h3{font-size:1.125rem}.approach-list p{font-size:.875rem}.works .section-heading{display:flex;align-items:flex-start;flex-direction:column;gap:15px}.works-grid{grid-template-columns:1fr 1fr;gap:27px 17px}.work-photo-wide{grid-column:1/-1}.photo-frame{height:auto;aspect-ratio:4/5}.work-photo-wide .photo-frame{aspect-ratio:16/10}.work-photo figcaption{padding-top:11px;gap:2px}.work-photo figcaption>span{font-size:.875rem}.work-photo small{font-size:.75rem}.reputation{padding:27px;flex-wrap:wrap;gap:22px}.reputation>div:first-child{width:100%}.reputation-title{font-size:1.3rem}.rating{gap:15px}.rating-value{font-size:3rem}.rating-source{align-items:flex-start;margin-left:auto}.rating-source small{font-size:.75rem}.about{grid-template-columns:1fr;gap:35px}.about-intro>p:not(.eyebrow){font-size:.9375rem;line-height:2}.area-label{margin-top:24px}.business-info>div{padding:18px 0;grid-template-columns:92px 1fr;font-size:.875rem}.contact-inner{grid-template-columns:1fr;padding-top:52px;padding-bottom:52px;gap:35px}.contact h2{font-size:2rem}.contact-copy>p:not(.eyebrow){font-size:.875rem}.contact-card{padding:20px 24px}.contact-card strong{font-size:1rem}.contact-note{font-size:.75rem}.site-footer{padding:30px 6%;gap:21px;flex-wrap:wrap}.site-footer .brand-name{font-size:1.35rem}.footer-notes{flex:1;min-width:180px}.back-top{font-size:.75rem}}
@media(max-width:440px){.draft-note{font-size:.75rem;letter-spacing:.04em}.hero-copy{padding-top:25px}.hero h1{font-size:2.2rem}.hero-visual{height:295px}.hero-bottom{font-size:.75rem}.hero-bottom>span{max-width:53%}.hero-bottom>a{gap:12px}.section-heading h2{font-size:1.75rem}.service-grid{grid-template-columns:1fr}.service-card{padding:25px 0;gap:20px}.service-card h3{font-size:1.2rem}.service-card p{font-size:.9375rem}.service-card li{font-size:.8125rem}.service-no{font-size:1.2rem}.approach h2{font-size:1.95rem}.approach-list article{gap:19px}.reputation{padding:24px;gap:21px}.rating-source{margin-left:0}.works-grid{gap:23px 13px}.about h2{font-size:1.8rem}.contact h2{font-size:1.85rem}.contact-copy>p:not(.eyebrow){font-size:.875rem}.site-footer{gap:20px}.footer-notes{flex-basis:100%;order:3}.back-top{margin-left:auto}.contact-card strong{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Readable Japanese copy at every breakpoint. */
.hero h1{white-space:normal;overflow-wrap:anywhere}.brand-sub,.site-footer .brand-sub,.hero-label small{font-size:.75rem}.section-lead,.service-card p,.approach-list p,.about-intro>p:not(.eyebrow),.contact-copy>p:not(.eyebrow){font-size:1rem}.site-header nav>a{font-size:.875rem}.contact-hint{border-left:1px solid #647d8b;padding-left:18px;margin-top:6px;color:#d1dbe0}.contact-hint>span{font-size:.875rem;color:#fff}.contact-hint p{font-size:1rem;line-height:1.9;margin-top:6px}.contact-links{min-width:0}.contact-card{min-width:0}.contact-card>span:first-child{min-width:0}.hero-description{font-size:1rem}

.business-info>div{font-size:1rem}

/* Direct contact stays readable on narrow screens and at enlarged text sizes. */
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 22px;margin-top:29px}
.hero-actions .button-primary{margin-top:0}
.hero-email{font-size:1rem;text-decoration:underline;text-underline-offset:5px;padding:10px 0}
.hero-email:hover,.hero-contact a:hover,.business-info a:hover{color:var(--accent)}
.hero-contact{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 16px;margin-top:16px}
.hero-contact>a{font-size:1.375rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.hero-contact>span{font-size:.875rem;color:var(--body)}
.business-info dd,.about-intro,.contact-copy{min-width:0}
.business-name-en{display:block;font-size:.875rem;letter-spacing:.08em;color:#61717a}
.business-info a{text-decoration:underline;text-underline-offset:4px}
.business-email{overflow-wrap:anywhere}
.contact-person{font-size:1rem;color:#e5ebef}
.contact-card small{font-size:.875rem}
.contact-card-phone strong{font-size:clamp(1.25rem,2.1vw,1.75rem);letter-spacing:.02em;white-space:nowrap}
.contact-card-email strong{margin-top:0;font-size:1.0625rem}
.contact-address{display:block;font-size:1rem;line-height:1.7;margin-top:5px;overflow-wrap:anywhere}
.contact-card>span[aria-hidden]{flex-shrink:0}
@media(max-width:780px){.hero-actions{margin-top:24px}.hero-actions .button{margin-top:0}.business-info>div{grid-template-columns:82px minmax(0,1fr)}}
@media(max-width:440px){.contact-card{padding:20px 18px;gap:10px}.contact-card-phone strong{font-size:1.25rem}.business-info>div{gap:12px}}

/* Original business-card logo, with adjacent accessible business name. */
.brand{flex-direction:row;align-items:center;gap:12px}.brand-copy{display:flex;flex-direction:column}.brand-mark{width:46px;height:50px;object-fit:contain;flex-shrink:0}.site-footer .brand-mark{width:37px;height:40px}
@media(max-width:780px){.brand{gap:9px}.brand-mark{width:37px;height:40px}.site-header .brand-name{font-size:1.5rem}.site-header .brand-sub{letter-spacing:.1em}}
