:root{--ink:#1b2941;--text:#34434c;--muted:#536a70;--line:#d6e1df;--accent:#235c60;--tint:#f2f7f5;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--text);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.95;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:.3em}img{max-width:100%;height:auto;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink);font-weight:600;line-height:1.6;overflow-wrap:anywhere}h1,h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif}h1{font-size:clamp(2rem,3vw,2.8rem)}h2{font-size:clamp(1.65rem,2.4vw,2.25rem)}h3{font-size:1.35rem}p{margin-bottom:1.3em}a,summary{touch-action:manipulation}a:focus-visible,summary:focus-visible{outline:3px solid #d19127;outline-offset:5px}.wrap{width:min(1120px,calc(100% - 64px));margin-inline:auto}.narrow{max-width:820px}.section{padding:96px 0}.tinted{background:var(--tint)}.eyebrow{display:block;font-size:.875rem;font-weight:600;letter-spacing:.12em;color:var(--accent);margin-bottom:14px}.section-head{margin-bottom:36px}.section-head h2{margin:0}.section-intro{font-size:1.2rem;max-width:760px;margin-bottom:40px}.button,.outline-button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:15px 25px;border-radius:4px;text-decoration:none;font-weight:600;font-size:1rem;line-height:1.6;text-align:center;transition:background .15s}.button{background:var(--accent);color:white;border:1px solid var(--accent)}.button:hover{background:#163e42}.outline-button{border:1px solid var(--accent);color:var(--accent)}.outline-button:hover{background:var(--tint)}.text-link{display:inline-block;font-weight:600;color:var(--accent);padding:9px 0}.center{text-align:center;margin-top:40px}.small{font-size:.875rem;line-height:1.8}.skip{position:fixed;left:12px;top:-80px;z-index:100;background:white;padding:10px}.skip:focus{top:10px}header{background:rgba(255,255,255,.98);position:sticky;top:0;z-index:20;border-bottom:1px solid #e8eceb}.header-inner{max-width:1600px;min-height:88px;padding:18px 30px;margin:auto;display:flex;align-items:center;gap:30px}.logo{display:block;flex-shrink:0;width:180px}.desktop-nav{display:flex;gap:22px;align-items:center;margin-left:auto}.desktop-nav a{font-size:.875rem;font-weight:600;text-decoration:none;white-space:nowrap}.desktop-nav a:hover{text-decoration:underline}.header-cta .button{max-width:265px;min-height:48px;font-size:.875rem;padding:11px 16px}.mobile-menu{display:none}.hero{position:relative;isolation:isolate;background:#f3f3e9;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.75) 36%,rgba(255,255,255,0) 66%);z-index:0}.hero-inner{min-height:720px;display:flex;align-items:center;position:relative;z-index:1;padding-block:58px}.hero-copy{max-width:590px;width:54%}.hero h1{letter-spacing:.035em;margin-bottom:24px;line-height:1.65}.hero-sub{font-weight:600;font-size:1.12rem;line-height:1.85;color:var(--ink)}.hero-copy>p:not(.hero-sub){font-size:1rem;line-height:1.95}.hero .button{margin-top:10px}.problems{border-bottom:1px solid var(--line)}.problems ul{list-style:none;padding:0;margin:0}.problems li{padding:21px 0 21px 25px;border-bottom:1px solid var(--line);position:relative}.problems li:before{content:"";position:absolute;left:0;top:34px;width:6px;height:6px;background:#79b9ab;border-radius:50%}.service-feature{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:center}.service-feature img{width:100%;max-height:530px;object-fit:cover;object-position:center 48%;border-radius:3px}.service-feature h3{font-size:1.85rem}.price{font-size:1.35rem;color:var(--accent);font-weight:600;margin-bottom:10px}.secondary-service{display:grid;grid-template-columns:1fr auto;align-items:end;gap:45px;margin-top:64px;border-block:1px solid var(--line);padding:38px 0}.secondary-service>div{max-width:760px}.reasons{display:grid;grid-template-columns:1fr 1fr;gap:48px 60px}.reason{display:flex;gap:24px;border-top:1px solid var(--line);padding-top:30px}.number{font-family:Georgia,serif;color:var(--accent);font-size:2.5rem;line-height:1.3}.reason p{font-size:1rem}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.case-card{padding:36px;background:#f7f9f8;border-top:3px solid #78b4a7}.case-card .eyebrow{font-size:.875rem;letter-spacing:0}.case-card h3{font-family:"Yu Mincho",serif;font-size:1.45rem}.case-card blockquote{margin:25px 0;padding:0;border:0}.case-card blockquote p{font-size:1rem}.faq-item{border-top:1px solid var(--line)}.faq-item:last-child{border-bottom:1px solid var(--line)}.faq-item summary{cursor:pointer;list-style:none;position:relative;font-weight:600;color:var(--ink);padding:25px 45px 25px 36px}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:before{content:"Q";position:absolute;left:0;color:var(--accent);font-family:Georgia,serif;font-size:1.3rem}.faq-item summary:after{content:"＋";position:absolute;right:3px;font-size:1.3rem;font-weight:400}.faq-item[open] summary:after{content:"−"}.faq-item>div{padding:0 36px 18px}.contact{background:#e8f1ee;padding:85px 0;text-align:center}.contact p{max-width:730px;margin:0 auto 25px}.contact .small{margin-top:18px;max-width:600px}.contact h2{margin-bottom:28px}footer{padding:58px 0 20px}.footer-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:70px}.footer-grid .logo{width:200px;margin-bottom:25px}.footer-grid p{font-size:.875rem}.footer-grid nav{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;font-size:.875rem}.footer-grid nav .button{font-size:.875rem}.copyright{border-top:1px solid var(--line);margin-top:40px;padding-top:20px;font-size:.875rem;color:var(--muted)}.page-heading{padding-top:35px;padding-bottom:30px}.breadcrumb{display:block;font-size:.875rem;margin-bottom:45px;color:var(--muted)}.page-heading h1{margin-bottom:10px}.service-index{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:30px}.service-index a{border:1px solid var(--line);padding:8px 14px;font-size:.875rem;text-decoration:none}.service-detail{display:grid;grid-template-columns:280px 1fr;gap:55px;padding:64px 0;border-top:1px solid var(--line);scroll-margin-top:110px}.service-label h2{font-size:1.7rem;margin-top:15px}.service-detail p{white-space:normal}.service-detail .sample{margin:30px 0 0;display:flex;gap:30px;align-items:center}.sample img{width:220px;border:1px solid var(--line)}.sample figcaption{font-size:.875rem;max-width:280px}.payment{margin-bottom:60px;font-size:.875rem}.case-detail{padding:25px 0 65px;margin-bottom:40px;border-bottom:1px solid var(--line)}.case-detail h2{font-size:1.85rem;margin-bottom:35px}.case-detail .eyebrow{letter-spacing:0}.case-flow{display:grid;gap:12px}.case-flow h3{font-size:1rem;margin-bottom:8px;color:var(--accent)}.case-detail blockquote{background:var(--tint);border-left:3px solid #78b4a7;margin:15px 0 0;padding:25px 30px}.case-detail blockquote p:last-child{margin:0}.about-layout{display:grid;grid-template-columns:.8fr 1.3fr;gap:75px;align-items:start;padding-bottom:100px}.about-layout>img{width:100%;position:sticky;top:120px;border-radius:3px}.about-copy h2{font-size:1.6rem;margin-bottom:32px}.about-copy p{line-height:2.1;margin-bottom:30px}
@media(min-width:1600px){.hero-inner{min-height:770px}.hero-image{object-position:center 58%}}@media(max-width:1200px){.desktop-nav{gap:15px}.header-inner{gap:20px;padding-inline:24px}.header-cta{display:none}.hero-copy{width:58%}.hero-image{object-position:59% center}}
@media(max-width:850px){html{scroll-padding-top:85px}.wrap{width:calc(100% - 40px)}.header-inner{min-height:73px;padding:16px 20px;justify-content:space-between}.logo{width:160px}.desktop-nav{display:none}.mobile-menu{display:block}.mobile-menu summary{cursor:pointer;font-size:.875rem;padding:7px 10px;border:1px solid var(--line);border-radius:3px;list-style:none}.mobile-menu nav{position:absolute;top:100%;left:0;right:0;background:white;box-shadow:0 15px 20px #1b294115;padding:18px 24px;display:flex;flex-direction:column;max-height:calc(100dvh - 74px);overflow-y:auto}.mobile-menu nav>a{padding:12px 0;text-decoration:none;border-bottom:1px solid var(--line)}.mobile-menu nav>.button{padding:14px;margin-top:15px}.hero-inner{min-height:660px}.hero-copy{width:65%;max-width:570px}.hero h1{font-size:2.1rem}.hero:after{background:linear-gradient(90deg,#ffffffed 0%,#ffffffcc 43%,#ffffff00 85%)}.section{padding:65px 0}.service-feature{gap:35px;grid-template-columns:.8fr 1fr}.reasons{gap:35px;grid-template-columns:1fr}.secondary-service{display:block}.case-card{padding:25px}.service-detail{grid-template-columns:220px 1fr;gap:25px}.about-layout{gap:35px}.footer-grid{gap:40px}}
@media(max-width:600px){h1{font-size:2rem}h2{font-size:1.6rem}h3{font-size:1.25rem}.hero{padding-top:225px;background:#f9fbf8}.hero-image{height:280px;object-position:70% center}.hero:after{height:90px;top:190px;bottom:auto;background:linear-gradient(0deg,#f9fbf8,transparent)}.hero-inner{min-height:0;padding:25px 0 45px}.hero-copy{width:100%;max-width:none}.hero h1{font-size:1.9rem;letter-spacing:.02em;line-height:1.65}.hero-sub{font-size:1.05rem}.hero-copy>p:not(.hero-sub){font-size:1rem}.hero .button{width:100%;padding:16px 20px}.section-head{margin-bottom:25px}.section{padding:55px 0}.section-intro{font-size:1.08rem}.problems li{padding-block:17px}.problems li:before{top:30px}.service-feature{display:flex;flex-direction:column;gap:30px}.service-feature img{height:auto;max-height:480px;width:100%;object-fit:contain;background:#edf0f0}.service-feature h3{font-size:1.65rem}.secondary-service{margin-top:35px;padding:30px 0}.reason{gap:16px;padding-top:25px}.number{font-size:2rem}.reasons{gap:20px}.case-grid{grid-template-columns:1fr;gap:22px}.case-card h3{font-size:1.35rem}.case-card{padding:27px 22px}.faq-item summary{padding:22px 30px 22px 30px}.faq-item>div{padding:0 0 15px 30px}.contact{padding:55px 0}.contact h2{font-size:1.65rem}.contact .button{width:100%}.contact p{text-align:left}.contact .small{text-align:left}.footer-grid{grid-template-columns:1fr;gap:22px}.footer-grid nav{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.page-heading{padding-top:22px;padding-bottom:15px}.breadcrumb{margin-bottom:30px}.service-detail{grid-template-columns:1fr;gap:20px;padding:40px 0}.service-label{display:flex;align-items:baseline;gap:16px}.service-label h2{margin:0;font-size:1.5rem}.service-detail .sample{align-items:flex-start;gap:20px}.sample img{width:150px}.sample figcaption{flex:1}.case-detail h2{font-size:1.6rem}.case-detail{padding-bottom:35px}.case-detail blockquote{padding:22px}.about-layout{display:flex;flex-direction:column;gap:35px;padding-bottom:55px}.about-layout>img{position:static;max-height:500px;object-fit:contain;background:#e9edef}.about-copy h2{font-size:1.5rem}.service-index{gap:8px}.service-index a{padding:7px 10px}.outline-button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Readability refinements: preserve copy and section order. */
.reason h3{padding-bottom:14px;margin-bottom:20px;border-bottom:1px solid #d6e1df;font-size:1.4rem}
.reason p{margin-bottom:1.1em}.reason p:last-child{margin-bottom:0}
.secondary-service p{margin-bottom:1.1em}.secondary-service>div{max-width:700px}
.service-detail>div:last-child{max-width:710px}.service-detail p{margin-bottom:1.4em}
.service-fact{background:#f2f7f5;border-left:3px solid #79b9ab;padding:16px 20px}
.service-fact strong{display:block;color:#235c60;margin-bottom:5px}
.process{margin:35px 0}.process h3{font-size:1.15rem;margin-bottom:18px}
.process ol{list-style:none;counter-reset:process;padding:0;margin:0}
.process li{counter-increment:process;position:relative;padding:15px 0 15px 46px;border-top:1px solid #d6e1df}
.process li:before{content:counter(process,decimal-leading-zero);position:absolute;left:0;color:#235c60;font-family:Georgia,serif;font-size:1.35rem}
.step-separator{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.option-note{padding-top:24px;border-top:1px solid #d6e1df}
.service-detail .sample{padding:24px;background:#f7f9f8}
.about-copy{max-width:640px}.case-card blockquote p+p{margin-top:24px}
@media(max-width:1200px){body{padding-bottom:88px}.header-cta{display:block;position:fixed;bottom:0;left:0;right:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid #d6e1df;text-align:center}.header-cta .button{max-width:520px;width:100%;min-height:50px;font-size:1rem}footer{padding-bottom:30px}}
@media(max-width:600px){.hero{padding-top:180px}.hero-image{height:230px}.hero:after{top:145px}.hero-inner{padding-top:22px}.service-feature img{max-height:320px}.about-layout>img{max-height:360px}.reason{display:block}.reason .number{display:block;margin-bottom:12px;font-size:1.6rem}.reason h3{font-size:1.3rem}.reasons{gap:30px}.service-detail .sample{flex-direction:column;padding:20px;gap:18px}.sample img{width:200px}.sample figcaption{max-width:none}.service-fact{padding:15px 17px}.process li{padding-left:38px}.contact .button{margin-top:8px}}

.note-entry{margin:24px 0 36px}.note-entry .outline-button{background:#fff}.note-entry .outline-button:hover{background:var(--tint)}

/* Supplied first-view photo: person on the left, live copy on the right. */
.hero{background:#f7f7f3}
.hero-image{object-position:left top}
.hero:after{background:linear-gradient(90deg,transparent 38%,rgba(247,247,243,.82) 53%,rgba(247,247,243,.96) 72%)}
.hero-inner{min-height:clamp(640px,calc(100svh - 88px),720px);justify-content:flex-end;padding-block:32px}
.hero-inner{width:min(1296px,calc(100% - 96px))}
.hero-copy{width:70%;max-width:880px}
.hero h1{font-size:clamp(1.85rem,2.55vw,2.45rem);line-height:1.6}
.hero-question,.hero-answer{display:block;white-space:nowrap}
.hero-question{font-size:clamp(2.15rem,3.1vw,2.8rem);letter-spacing:.01em;margin-bottom:12px}
.hero-sub{max-width:680px}
@media(max-width:1000px){
.hero{padding-top:0}
.hero-image{position:relative;inset:auto;height:clamp(230px,36vw,340px);object-fit:cover;object-position:left top}
.hero:after{display:none}
.hero-inner{width:calc(100% - 40px);min-height:0;padding-block:32px 45px}
.hero-question,.hero-answer{white-space:normal}
.hero-question{font-size:clamp(2.15rem,4.8vw,2.8rem)}
.hero-copy{width:100%;max-width:none}
.hero h1{font-size:clamp(1.9rem,4.2vw,2.25rem)}
}

/* Typography is contained in the approved hero image. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.hero.hero-banner{padding:0;background:#faf9f5;overflow:hidden}
.hero-banner:after{display:none}
.hero-banner .hero-image{position:relative;inset:auto;display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.hero-action{padding:0 24px 30px;text-align:center}
.hero-action .button{min-width:300px;margin:0;padding:16px 32px}
@media(min-width:1001px){.hero-action{position:absolute;left:54%;right:3%;bottom:5%;padding:0;text-align:left}}
@media(max-width:600px){.hero-action{padding:20px 20px 28px}.hero-action .button{width:100%;min-width:0}}

/* Brand descriptor and movable hero labels. */
.logo{text-decoration:none;width:224px}
.logo img{width:180px}
.logo-tagline{display:block;margin-top:6px;color:var(--accent);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:14px;font-weight:600;line-height:1.5;white-space:nowrap;letter-spacing:0}
.footer-grid .logo{width:224px}.footer-grid .logo img{width:200px}
.hero-visual{position:relative}
.hero-name{position:absolute;left:4%;top:83%;margin:0;padding:5px 12px;color:var(--ink);background:rgba(255,255,255,.92);border-radius:3px;font-size:clamp(14px,1.35vw,22px);font-weight:600;line-height:1.5}
@media(min-width:1001px){.hero-banner .hero-action{left:55.25%;right:auto;top:81.7%;bottom:auto;transform:translateY(-50%);padding:0}.hero-action .button{min-width:300px}}
@media(max-width:850px){.logo{width:224px}.logo img{width:160px}.header-inner{gap:12px}}
@media(max-width:600px){.hero-name{left:3%;top:auto;bottom:4%;padding:3px 7px;font-size:14px}.hero-action{padding-top:16px}}
