*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;line-height:1.9;letter-spacing:.035em}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.demo{background:var(--ink);color:white;text-align:center;padding:7px 16px;font-size:11px}.demo a{text-decoration:underline;margin-left:18px}header{max-width:1240px;margin:auto;padding:25px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font-size:23px;font-weight:700;letter-spacing:.08em}.brand small{display:block;font-size:9px;letter-spacing:.22em}nav{display:flex;align-items:center;gap:30px;font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;padding:16px 26px;background:var(--accent);color:white;border:0;border-radius:5px;font-weight:700;font-size:14px}.btn:after{content:'↗';font-size:20px}.btn:hover{filter:brightness(.9)}.hero{max-width:1320px;margin:auto;padding:48px 6% 70px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:30px}.eyebrow{font-size:11px;letter-spacing:.2em;color:var(--accent);font-weight:700}.hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(36px,4.4vw,64px);line-height:1.5;font-weight:500;letter-spacing:.07em;margin:20px 0 25px}.hero h1 em{font-style:normal;color:var(--accent)}.hero p{font-size:14px;line-height:2.2;margin-bottom:28px}.fine{font-size:11px!important;opacity:.7}.art{position:relative;min-width:0}.art svg{width:100%;height:auto;display:block}.art-label{position:absolute;bottom:7%;right:0;background:white;padding:15px 24px;box-shadow:0 10px 50px #263d3210;border-radius:4px;font-size:13px}.ribbon{display:flex;justify-content:center;gap:60px;padding:24px;background:var(--tint);font-size:13px}.section{padding:90px 7%;max-width:1240px;margin:auto}h2{font-family:"Yu Mincho",serif;font-size:clamp(27px,3vw,40px);line-height:1.6;font-weight:500;margin:16px 0 30px}h3{font-size:19px;line-height:1.8}.split{display:grid;grid-template-columns:1fr 1.2fr;gap:75px}.issues{list-style:none;margin:0;padding:0}.issues li{padding:20px 0;border-bottom:1px solid #8b9b913a;font-size:15px}.issues li:before{content:'✓';margin-right:18px;color:var(--accent)}.wash{background:var(--tint)}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.feature{border-top:1px solid var(--accent);padding:25px 0}.num{font-size:13px;color:var(--accent);letter-spacing:.15em}.feature p,.step p{font-size:14px;opacity:.85}.feature .symbol{font-size:36px;margin:12px 0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.step{padding:25px;background:var(--paper);border-radius:8px}.faq{max-width:800px;margin:auto}details{border-bottom:1px solid #82978c40;padding:22px 0}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;font-size:15px}summary:after{content:'＋';color:var(--accent)}details[open] summary:after{content:'−'}details p{font-size:14px;opacity:.85;padding:10px 20px}.cta{background:var(--ink);color:#fff;text-align:center;padding:70px 24px}.cta .eyebrow{color:#d5e6d7}.cta p{font-size:14px}.cta .btn{margin-top:15px;background:var(--paper);color:var(--ink)}footer{padding:35px 6%;font-size:11px;display:flex;justify-content:space-between;gap:25px}.clinic .hero{background:var(--tint);max-width:none;padding-left:max(6%,calc((100vw - 1160px)/2));padding-right:max(6%,calc((100vw - 1160px)/2));}.clinic .art svg{border-radius:50% 50% 5px 5px}.wellness .hero{grid-template-columns:1fr 1fr}.wellness .hero h1{font-weight:700}.wellness .btn{border-radius:40px}.wellness .art{transform:rotate(-3deg)}.wellness .ribbon{background:var(--accent);color:white}dialog{border:0;border-radius:14px;padding:35px;max-width:540px;width:calc(100% - 32px);color:var(--ink);background:var(--paper)}dialog::backdrop{background:#142c2888}dialog h2{font-size:27px}.close{float:right;border:0;background:none;font-size:23px}.choices{display:grid;gap:12px}.choice{background:white;border:1px solid #9caaa4;padding:14px;text-align:left;border-radius:5px;color:var(--ink)}.choice[aria-pressed=true]{border:2px solid var(--accent);background:var(--tint)}#result{padding:16px 0;font-size:14px;min-height:80px}.gallery{--ink:#243d36;--paper:#f7f7f0;--accent:#346857;--tint:#eaf0e7}.gallery .intro{padding:65px 7% 40px;max-width:1240px;margin:auto}.intro h1{font-family:"Yu Mincho",serif;font-size:clamp(32px,4vw,55px);line-height:1.6;font-weight:500}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.sample{display:block;border-bottom:1px solid #bdc9c0;padding-bottom:28px}.sample:hover .mini{transform:translateY(-6px)}.mini{height:275px;overflow:hidden;padding:30px 25px;position:relative;transition:transform .25s;background:var(--tint);color:var(--ink)}.mini strong{font-family:"Yu Mincho",serif;font-size:27px;position:relative;z-index:1}.mini svg{width:190px;position:absolute;right:-12px;bottom:-20px;opacity:.9}.sample h2{font-family:inherit;font-size:22px;margin:20px 0 8px}.sample p{font-size:13px}.tag{font-size:10px;letter-spacing:.12em}.notes{font-size:14px;max-width:850px}.notes li{margin:10px 0}@media(max-width:760px){header{padding:18px 6%}.brand{font-size:19px}nav>a:not(.btn){display:none}nav .btn{padding:10px 14px;font-size:11px;gap:10px}.hero,.wellness .hero{grid-template-columns:1fr;padding:30px 7% 45px;gap:0}.hero h1{font-size:40px}.hero p{font-size:13px}.art{max-width:440px;width:100%;margin:15px auto 0}.ribbon{gap:14px;padding:20px 10px;font-size:10px;flex-wrap:wrap}.section{padding:58px 7%}.split,.three,.steps,.gallery-grid{grid-template-columns:1fr;gap:25px}.split{gap:5px}.three{gap:5px}.feature{padding:20px 0}.feature .symbol{float:right;margin:0}footer{flex-direction:column}.art-label{font-size:11px}.gallery .intro{padding-top:35px}.mini{height:260px}.mini svg{width:240px}.demo{font-size:10px}.demo a{margin-left:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.wellness .hero h1{font-size:clamp(30px,3.4vw,46px)}@media(max-width:760px){.hero h1{font-size:clamp(28px,7.8vw,40px)}.wellness .hero h1{font-size:clamp(26px,7.1vw,36px)}header nav .btn{max-width:155px;line-height:1.5;gap:8px}}
@media(max-width:760px){.clinic header nav{display:none}.brand{white-space:nowrap}}

/* Client proposal: readable Japanese line breaks on narrow screens. */
.client-lp .mobile-break{display:none}
.client-lp .heading-line{display:inline-block}
.client-lp .copy-unit{display:inline-block}
.client-lp p{line-break:strict;overflow-wrap:break-word;text-wrap:pretty}
.client-lp summary{gap:16px;align-items:flex-start;line-break:strict}
.client-lp summary:after{flex-shrink:0}
@media(max-width:760px){
.client-lp .mobile-break{display:block}
.client-lp .hero h1{font-size:clamp(24px,7.3vw,40px);letter-spacing:.035em;line-height:1.65}
.client-lp h2{font-size:clamp(21px,6.1vw,30px);letter-spacing:.02em;line-height:1.7}
.client-lp h2 .heading-line,.client-lp h1 .heading-line{white-space:nowrap}
.client-lp header{flex-direction:column;align-items:flex-start;gap:14px}
.client-lp header nav{display:none}
.client-lp .brand{font-size:clamp(18px,5.3vw,23px)}
.client-lp .demo{padding:10px 12px;line-height:1.7;font-size:10px}
.client-lp .demo a{display:block;margin:4px 0 0}
.client-lp .btn{white-space:nowrap;max-width:100%;gap:24px;padding:16px 22px}
.client-lp .hero p{font-size:13px;letter-spacing:.015em;line-height:2.05}
.client-lp .ribbon{display:grid;grid-template-columns:1fr;gap:10px;justify-items:start;padding:22px 7%;font-size:12px}
.client-lp .ribbon span{white-space:nowrap}
.client-lp .feature .symbol{float:none;font-size:26px;margin:10px 0 4px}
.client-lp h3{font-size:18px;letter-spacing:.01em;text-wrap:balance}
.client-lp .issues li{position:relative;padding-left:25px;line-break:strict;text-wrap:pretty}
.client-lp .issues li:before{position:absolute;left:0;margin:0}
.client-lp .cta{padding:55px 7%}
.client-lp dialog{padding:28px 22px}
.client-lp dialog h2{font-size:clamp(20px,5.9vw,27px)}
.client-lp .art-label{padding:12px 14px;font-size:10px}
.client-lp footer{gap:14px;text-wrap:pretty;line-break:strict}
}
