@font-face{font-family:'Noto Sans JP';src:url('assets/NotoSansJP-variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--aqua:#81d8d0;--turquoise:#24b6b0;--pale:#e9f8f6;--ink:#163d3c;--muted:#486665;--rule:#bddbd7;--line:#06c755}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:150px;background:#f1f9f8}body{max-width:940px;margin:0 auto;background:#fff;color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:15px;line-height:1.95;box-shadow:0 0 35px #173e3d0c}h1,h2,h3,p{margin:0}p+p{margin-top:18px}a{color:inherit;text-underline-offset:5px}img{max-width:100%;height:auto}h1{font-size:clamp(34px,5vw,56px);line-height:1.5;letter-spacing:.035em;font-weight:750}h2{font-size:clamp(27px,3.5vw,38px);line-height:1.6;font-weight:750;letter-spacing:.03em;margin-bottom:25px}h3{font-size:22px;line-height:1.65;font-weight:700}a:focus-visible,summary:focus-visible{outline:3px solid #006cbb;outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;z-index:100;background:#fff;padding:12px}.skip:focus{top:10px}.preview{text-align:center;background:var(--pale);font-size:10px;letter-spacing:.1em;padding:5px 12px}.preview span{margin-left:16px;letter-spacing:0}header{position:sticky;top:0;z-index:10;background:#fffffffa;border-bottom:1px solid var(--rule);padding:14px 5%;display:flex;justify-content:space-between;align-items:center;gap:24px}header img{width:100px;display:block}nav{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap;font-size:11px;font-weight:600}nav a{text-decoration:none}.nav-apply{padding:9px 14px;background:var(--line);color:#07341d;border-radius:5px;white-space:nowrap}.wrap{width:88%;margin:0 auto}.hero{padding:44px 0 40px;display:flex;flex-direction:column;gap:32px}.hero-copy{width:100%}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:700;color:#08716c;margin-bottom:18px}.opening{font-size:12px;font-weight:650;background:var(--pale);border-left:4px solid var(--turquoise);padding:9px 14px;display:table;margin-bottom:26px}.hero h1{border-left:8px solid var(--aqua);padding-left:20px}.lead{font-size:18px;font-weight:600;margin-top:25px}.small{font-size:12px;margin-top:15px;color:var(--muted)}.actions{display:flex;gap:14px;margin-top:25px}.button{display:flex;justify-content:center;align-items:center;gap:18px;min-height:58px;padding:15px 24px;text-decoration:none;font-size:14px;font-weight:700;border:1px solid var(--ink);border-radius:6px;background:#fff}.button.dark{background:var(--aqua);border-color:var(--aqua);color:var(--ink)}.button.dark:hover{background:#a7e6df}.button.line-guide{background:var(--line);border-color:var(--line);color:#07341d}.button.line-guide:hover,.nav-apply:hover{background:#05b54d}.hero-visual{aspect-ratio:16/9;min-height:260px;background:var(--pale);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:36px;position:relative;overflow:hidden}.hero-visual>img{width:200px;height:auto}.photo-note{font-size:12px;margin-top:22px;text-align:center;color:var(--muted)}.photo-note span{display:block;font-size:9px;letter-spacing:.16em}.visual-bottom{display:flex;justify-content:space-between;position:absolute;left:20px;right:20px;bottom:12px;font-size:8px;letter-spacing:.1em}.quick{display:flex;justify-content:space-around;background:var(--aqua);padding:18px 10px;gap:10px;font-size:13px;font-weight:650}.quick span:before{content:'＋';margin-right:6px}.section{padding-top:80px;padding-bottom:80px}.heading{text-align:center;margin-bottom:36px}.heading .eyebrow{margin-bottom:12px}.heading h2{margin-bottom:20px}.heading p{font-size:14px}.reasons{display:grid;gap:30px}.reasons article{position:relative;background:var(--pale);padding:30px 34px;border-top:4px solid var(--aqua);border-radius:5px}.number{display:inline-block;color:#08716c;font-size:19px;font-weight:700;letter-spacing:.07em}.reasons h3{margin:10px 0 18px}.reasons h3 br{display:none}.reasons p{font-size:14px}.reasons a{display:inline-block;margin-top:22px;font-size:12px;font-weight:700}.about,.jobs{background:var(--pale)}.split{display:flex;flex-direction:column;gap:36px}.split>div{width:100%}.about .placeholder{order:2}.placeholder{aspect-ratio:16/10;min-height:260px;background:#d6efeb;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);overflow:hidden}.placeholder p{font-size:17px;font-weight:600}.placeholder span{font-size:11px;margin-top:8px}.placeholder:before{content:'PHOTO';font-size:10px;letter-spacing:.2em;border-bottom:2px solid var(--turquoise);padding-bottom:8px;margin-bottom:14px}.photo-frame{position:relative;overflow:hidden;aspect-ratio:16/10;background:var(--pale);padding:0}.photo-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 40%}.compact{margin-top:25px}dl{margin:0}dl>div{display:grid;grid-template-columns:125px 1fr;gap:22px;border-top:1px solid var(--rule);padding:20px 0;font-size:14px}dt{font-weight:650}dd{margin:0}dd small{display:block;margin-top:9px}.note,small{font-size:12px;color:var(--muted);line-height:1.9}.note{margin-top:20px}.job-jump{display:flex;justify-content:center;gap:16px;margin:0 0 28px}.job-jump a{background:#fff;border:1px solid var(--ink);padding:11px 30px;border-radius:5px;text-decoration:none;font-size:13px;font-weight:650}.contracts{display:grid;gap:30px}.contracts article{background:#fff;padding:34px;border-top:5px solid var(--turquoise)}.contracts h3{font-size:28px}.contracts .eyebrow{font-size:10px}.pay{margin:22px 0;line-height:1.6;padding:20px 24px;background:var(--pale)}.pay strong{font-size:60px;line-height:1.1;font-weight:750}.pay span{font-size:14px;font-weight:600}.benefits{background:#fff;padding:34px;margin-top:30px}.benefits h3{margin-bottom:25px}.conditions-note{font-size:11px}.faq h2{text-align:center;margin-bottom:36px}.faq>.eyebrow{text-align:center}details{border-bottom:1px solid var(--rule);padding:24px 0}details:first-of-type{border-top:1px solid var(--rule)}summary{position:relative;padding:0 40px 0 40px;cursor:pointer;list-style:none;font-weight:650}summary::-webkit-details-marker{display:none}summary:before{content:'Q';position:absolute;left:0;top:0;color:#08716c;font-weight:800}summary:after{content:'＋';position:absolute;right:5px;color:#08716c}details[open] summary:after{content:'−'}details p{padding:18px 35px 0 40px;color:var(--muted);font-size:14px}.entry{text-align:center;background:var(--aqua)}.entry>.wrap>.eyebrow{color:var(--ink)}.entry h2{font-size:clamp(30px,4vw,42px)}.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;list-style:none;padding:0;margin:35px 0}.flow li{background:#ffffffd9;padding:20px 10px;border-radius:5px}.flow span{font-size:11px;font-weight:750;color:#08716c}.flow h3{font-size:18px;margin:10px 0}.flow p{font-size:11px}.line-cta{background:var(--line);color:#07341d;border:0;border-radius:6px;gap:14px;margin:0 auto;max-width:600px;padding:12px 20px;font-size:19px;min-height:84px}.line-cta:hover{outline:2px solid #006b2d;outline-offset:3px}.line-icon-space{display:inline-flex;flex:0 0 60px;align-items:center;justify-content:center;width:60px;height:60px}.line-icon{display:block;width:40px;height:40px;max-width:none;object-fit:contain;filter:none;transform:none;box-shadow:none}.entry-note{font-size:11px;color:var(--ink);margin-top:18px}.instagram{display:inline-block;margin-top:20px;font-size:12px}footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:35px;padding-bottom:145px;font-size:10px}footer img{width:90px}footer small{font-size:10px}footer a{font-size:11px}.fixed-entry{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(940px,100%);background:var(--line);color:#07341d;z-index:20;text-align:center;padding:8px 15px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -3px 14px #163d3c15}.fixed-entry p{font-size:11px;font-weight:600;margin:0}.fixed-entry a{display:flex;justify-content:center;align-items:center;gap:14px;text-decoration:none;font-size:23px;font-weight:800;min-height:60px}.fixed-entry a:hover{text-decoration:underline}.fixed-entry .line-icon-space{width:60px;height:60px}
@media(min-width:761px){.hero-copy{padding:0 18px}.hero-visual{aspect-ratio:16/8}.reasons article{padding:34px 40px}.reasons h3{font-size:25px}.split h2{text-align:center}.split .eyebrow{text-align:center}.split{max-width:760px}.entry .wrap{width:86%}}
@media(max-width:760px){html{scroll-padding-top:120px}body{font-size:14px}header{padding:10px 5%;gap:12px}header img{width:78px}nav{gap:8px;font-size:10px}nav>a:not(.nav-apply){display:none}.nav-apply{padding:9px 12px;white-space:normal}.preview{font-size:8px}.preview span{margin-left:8px}.wrap{width:88%}.hero{padding-top:30px;gap:28px}.hero h1{font-size:clamp(30px,8vw,43px);padding-left:14px;border-left-width:6px}.opening{font-size:10px;padding:8px 10px;margin-bottom:24px}.eyebrow{font-size:10px}.lead{font-size:16px}.small{font-size:11px}.actions{gap:10px;flex-direction:column}.button{min-height:52px;font-size:13px;padding:12px 16px}.hero-visual{min-height:230px;aspect-ratio:4/3;padding:25px}.hero-visual>img{width:160px}.photo-note{font-size:10px;margin-top:18px}.visual-bottom{font-size:7px;left:12px;right:12px}.quick{font-size:10px;padding:16px 7px;gap:4px}.quick span:before{margin-right:2px}.section{padding:60px 0}h2{font-size:28px}.heading{margin-bottom:28px}.reasons{gap:24px}.reasons article{padding:24px}.reasons h3{font-size:21px}.reasons h3 br{display:block}.reasons p{font-size:13px}.placeholder{min-height:220px}.contracts article,.benefits{padding:26px 20px}.contracts h3{font-size:26px}dl>div{grid-template-columns:80px 1fr;gap:14px;font-size:13px;padding:18px 0}.pay{padding:18px 16px}.pay strong{font-size:52px}.pay span{font-size:12px}.job-jump a{flex:1;text-align:center;padding:10px 12px}.benefits h3{font-size:20px}.flow{gap:8px}.flow li{padding:18px 7px}.flow h3{font-size:15px}.flow p{font-size:10px}.entry .line-cta{font-size:16px;gap:5px;padding:10px 12px;min-height:80px}.line-cta>span:nth-child(2){max-width:200px}.entry-note{font-size:10px}.fixed-entry{padding-top:7px}.fixed-entry p{font-size:10px}.fixed-entry a{font-size:21px;gap:10px}.faq summary{font-size:14px;padding-left:32px}.faq details p{padding-left:32px;padding-right:10px}footer{flex-wrap:wrap;font-size:9px;gap:20px;padding-bottom:150px}footer small{font-size:9px}}
@media(max-width:360px){.quick{font-size:9px}.contracts dl>div,.benefits dl>div{grid-template-columns:1fr;gap:6px}.line-cta>span:nth-child(2){font-size:14px}.entry .line-cta{gap:0}.fixed-entry a{font-size:18px}.reasons article{padding:22px 20px}.flow{grid-template-columns:1fr}.flow li{padding:14px}.flow h3{font-size:18px}.flow p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* v4: semantic line grouping only; no palette/content/link changes. */
.hero-line{display:block;max-width:100%;text-wrap:balance}
.phrase,.text-unit{display:inline-block;max-width:100%;white-space:normal;overflow-wrap:break-word;vertical-align:baseline}
h1,h2,h3,summary{line-break:strict;word-break:normal;overflow-wrap:break-word;text-wrap:balance}
p,dd,dt,small{line-break:strict;word-break:normal;overflow-wrap:break-word;text-wrap:pretty}
.hero-copy,.line-cta-copy,.fixed-entry-copy,.contracts dd,.benefits dd{min-width:0}
.entry .line-cta .line-cta-copy{flex:1 1 auto;max-width:360px;text-align:center;line-height:1.7}
.line-cta>span:last-child{flex:0 0 auto}
.fixed-entry-copy{max-width:100%;text-wrap:balance}
.flow p{text-wrap:balance}
@media(max-width:760px){.hero h1{font-size:clamp(28px,7.5vw,43px)}.entry .line-cta .line-cta-copy{max-width:240px;font-size:clamp(13px,3.7vw,16px)}.entry h2{font-size:clamp(25px,6.6vw,32px)}.heading h2{font-size:clamp(25px,6.7vw,28px)}}
@media(max-width:360px){.entry .line-cta{padding-left:8px;padding-right:8px}.entry .line-cta .line-cta-copy{font-size:13px}.fixed-entry-copy{font-size:18px}}

/* Photo slots preserve their established aspect ratio and fall back to original markup. */
[data-photo-slot].photo-loaded{position:relative;padding:0;overflow:hidden}
[data-photo-slot].photo-loaded::before{display:none}
[data-photo-slot].photo-loaded>[hidden]{display:none!important}
[data-photo-slot].photo-loaded>.slot-photo{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:inherit}

/* Approved team portrait; original composition, no name/title overlay. */
.team-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,6vw,80px);align-items:center}
.team-photo{margin:0;min-width:0;overflow:hidden}
.team-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.team-section .button{margin-top:20px}
@media(max-width:760px){.team-section{grid-template-columns:minmax(0,1fr);gap:28px}.team-section h2{font-size:clamp(28px,8vw,40px)}}

/* Omit unfilled editorial photo slots until approved photography arrives. */
.about .split{grid-template-columns:1fr;max-width:900px}.training{grid-template-columns:1fr;max-width:900px}

.treatment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.treatment-grid figure{margin:0}.treatment-grid picture{display:block}.treatment-grid img{display:block;width:100%;height:auto;aspect-ratio:1498/1123;object-fit:contain}.treatment-grid figcaption{font-size:12px;letter-spacing:.12em;margin-top:12px;color:#666}@media(max-width:760px){.treatment-grid{grid-template-columns:1fr;gap:32px}}

.hero-visual.hero-treatment{aspect-ratio:1498/1123;min-height:0;padding:0;background:#243431;isolation:isolate}.hero-treatment-photo{position:absolute;inset:0;display:block}.hero-treatment-photo img{display:block;width:100%;height:100%;object-fit:contain}.hero-contrast{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.14),rgba(0,0,0,.42) 50%,rgba(0,0,0,.3));z-index:1}.hero-visual .hero-official-logo{position:relative;z-index:2;width:42%;max-width:240px;height:auto;filter:drop-shadow(0 2px 5px rgba(0,0,0,.2))}.hero-treatment .visual-bottom{z-index:2;color:#fff;text-shadow:0 1px 3px #222}

/* Keep the official white logo between the two eyebrow photographs. */
.hero-visual .hero-official-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:32%;max-width:190px}
