/* v149: purpose-first navigation, shared accessible menus, readable mobile routes. */
:root{--entry-ink:#282924;--entry-red:#9b352b;--entry-line:#dedbd4;--entry-paper:#fffefa;scroll-behavior:smooth}
html,body{overflow-x:hidden}*{box-sizing:border-box}
[id]{scroll-margin-top:110px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #9b352b;outline-offset:5px}
.skip-entry{position:fixed;top:-100px;left:16px;background:white;color:#222;padding:12px;z-index:3000}.skip-entry:focus{top:12px}
.entry-header{position:sticky;top:0;z-index:1200;background:rgba(255,254,250,.98);border-bottom:1px solid var(--entry-line);color:var(--entry-ink)}
.entry-header-inner{max-width:1320px;margin:auto;min-height:86px;padding:12px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.entry-logo{text-decoration:none;color:var(--entry-ink);display:flex;align-items:baseline;gap:14px;flex-shrink:0}.entry-logo>span{font-family:'Zen Old Mincho',serif;font-size:30px;font-weight:600;letter-spacing:.13em}.entry-logo small{font-family:'Noto Sans JP',sans-serif;font-size:12px;letter-spacing:.03em;color:#66675f}
.entry-menu{display:flex;align-items:center;gap:22px}.entry-menu a{color:var(--entry-ink);text-decoration:none;font-size:14px;font-weight:600;line-height:1.5;padding:12px 0}.entry-menu a:hover,.entry-menu a[aria-current]{color:var(--entry-red)}.entry-menu .entry-contact{background:var(--entry-red);color:white;padding:12px 20px;border-radius:4px}.entry-toggle{display:none}
.revision-149 .home-entry{max-width:1320px;margin:0 auto;padding:54px 36px 48px!important;display:grid;grid-template-columns:1.13fr 1fr;gap:54px;align-items:center;background:var(--entry-paper);color:var(--entry-ink)}
.entry-kicker{font-size:14px;letter-spacing:.11em;color:var(--entry-red);font-weight:600;margin:0 0 16px}
.home-entry h1{font-family:'Zen Old Mincho',serif;font-size:clamp(30px,3vw,43px);font-weight:600;line-height:1.6;letter-spacing:.015em;margin:0 0 18px;text-wrap:balance}
.entry-intro{font-size:16px;color:#56584f;line-height:1.9;margin:0 0 28px}
.purpose-list{border-top:1px solid var(--entry-line)}.purpose-list>a{display:grid;grid-template-columns:24px 1fr 20px;align-items:center;gap:12px;padding:17px 4px;text-decoration:none;color:var(--entry-ink);border-bottom:1px solid var(--entry-line);transition:background .15s}.purpose-list>a:hover{background:#f2eee6}.purpose-number{font-size:12px;letter-spacing:.06em;color:var(--entry-red)}.purpose-list strong{display:block;font-size:17px;line-height:1.6;font-weight:700}.purpose-list small{display:block;font-size:13px;color:#606258;line-height:1.8;margin-top:3px}.purpose-list>a>span:last-child{color:var(--entry-red);font-size:22px}
.entry-help{font-size:14px;line-height:1.8;margin:20px 0 0;color:#555}.entry-help a,.entry-background a,.entry-related a{color:var(--entry-red);text-underline-offset:4px}
.home-entry-photo{margin:0;align-self:stretch;display:flex;flex-direction:column;padding-top:8px}.home-entry-photo img{width:100%;height:100%;min-height:420px;max-height:610px;object-fit:cover;object-position:34% 50%;border-radius:1px}.home-entry-photo figcaption{font-size:14px;line-height:1.8;padding:14px 0;color:#56584f}.home-entry-photo figcaption span{display:block;font-size:12px;color:#6c6d65}
.home-page{background:var(--entry-paper)}.home-page .hub-position{padding:64px 24px}.home-page .hub-voices{padding:64px 24px}.home-page .hub-voices-grid{gap:18px}.home-page .about-hub{padding:56px 24px}
.home-more,.home-details{max-width:1100px;margin:0 auto;padding:0 24px}.home-more>summary,.home-details>details>summary{list-style:none;cursor:pointer;padding:25px 4px;border-top:1px solid var(--entry-line);font-family:'Zen Old Mincho',serif;font-size:23px;color:var(--entry-ink);display:flex;justify-content:space-between;align-items:center;gap:16px}.home-more>summary::after,.home-details>details>summary::after{content:'＋';font-family:sans-serif;font-size:22px;color:var(--entry-red)}.home-more[open]>summary::after,.home-details>details[open]>summary::after{content:'−'}.home-more>summary::-webkit-details-marker,.home-details summary::-webkit-details-marker{display:none}.home-more>section,.home-details section{padding:32px 0!important}.home-more .container,.home-details .container{padding-left:0;padding-right:0}.home-details{margin-top:32px;margin-bottom:64px}.home-details>details>summary{font-family:'Noto Sans JP',sans-serif;font-size:17px}.entry-background{max-width:950px;margin:24px auto 50px;padding:24px;display:grid;grid-template-columns:140px 1fr;gap:32px;align-items:center}.entry-background>img{width:140px;height:180px;object-fit:cover}.entry-background .hub-hero-sub{font-size:16px;text-align:left!important;margin:10px 0!important;color:#45463f!important}.entry-background .hub-hero-trust{margin:16px 0!important}.entry-background .entry-kicker{font-size:14px}.entry-background a{font-size:14px}
.page-shortcuts{max-width:1120px;margin:0 auto;padding:20px 24px;display:flex;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--entry-line);background:white}.page-shortcuts a,.choice-links a{display:inline-block;border:1px solid #c7c2b9;color:var(--entry-ink);background:white;padding:12px 18px;border-radius:4px;text-decoration:none;font-size:15px;line-height:1.6}.page-shortcuts a:hover,.choice-links a:hover{border-color:var(--entry-red);color:var(--entry-red)}.page-shortcuts a:first-child{border-color:var(--entry-red);color:var(--entry-red);font-weight:700}
.choice-intro{max-width:980px;margin:0 auto 36px;text-align:left}.choice-intro>p{font-size:17px;font-weight:600;color:var(--entry-ink);margin:0 0 16px}.choice-links{display:flex;flex-wrap:wrap;gap:10px}.choice-intro .choice-note{font-size:14px;font-weight:400;line-height:1.8;margin:18px 0 0}.choice-note a{color:var(--entry-red)}
.specific-note{max-width:950px;margin:30px auto 0;border-left:3px solid var(--entry-red);padding:22px 28px;background:#f5f2ec;text-align:left}.specific-note h3{font-size:20px;margin-bottom:12px}.specific-note p{font-size:16px;line-height:1.9;color:#45463f}.specific-note a{font-size:15px;color:var(--entry-red)}
body.revision-149.detail-page .hub-hero{padding-top:28px!important;padding-bottom:30px!important;min-height:0!important}body.revision-149.detail-page .hub-hero-grid{gap:40px}body.revision-149.detail-page .hub-hero-title{font-size:clamp(27px,3vw,40px)!important;line-height:1.6!important;letter-spacing:.02em!important}body.revision-149.detail-page .hub-hero-sub{font-size:16px!important;line-height:1.9!important}body.revision-149.detail-page .hero-check{margin-top:18px}body.revision-149.detail-page .hub-hero-cta{margin-top:20px}body.revision-149.detail-page .hero{padding:36px 24px!important}body.revision-149.detail-page .hero-title{font-size:clamp(27px,3.5vw,44px)!important;line-height:1.6!important;letter-spacing:.015em!important}body.revision-149.detail-page .hero-title::after{display:none!important}body.revision-149.detail-page .hero-plain{font-size:17px;line-height:1.9;max-width:720px;margin:20px auto!important}body.revision-149.detail-page .hero-image{max-width:700px;margin:24px auto}body.revision-149.detail-page .hero-image img{max-height:260px;width:auto;max-width:100%;object-fit:contain}body.revision-149.detail-page .hero-tagline{font-size:16px!important}body.revision-149.detail-page .hero-solution{font-size:16px!important;line-height:1.9}body.revision-149.detail-page .hero-benefits{font-size:15px}body.revision-149.detail-page .plans{padding-top:40px!important}body.revision-149.detail-page .lesson-cat{scroll-margin-top:110px}
.revision-149 .floating-line{bottom:18px!important;right:18px!important}.revision-149 .section-subtitle{line-height:1.9}.revision-149 .services .lesson-card p{font-size:16px;line-height:1.85}
@media(max-width:1100px){.entry-header-inner{padding:12px 24px;gap:16px}.entry-menu{gap:15px}.entry-logo small{display:none}.home-entry{gap:32px}.purpose-list strong{font-size:16px}}
@media(max-width:900px){
 .entry-header-inner{min-height:70px;padding:10px 20px}.entry-logo>span{font-size:27px}.entry-logo small{display:block;font-size:11px}.entry-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;color:var(--entry-ink);padding:4px 9px;min-width:48px;min-height:48px;cursor:pointer}.entry-toggle-icon{font-size:25px;line-height:1}.entry-toggle-text{font-size:11px}
 .entry-menu{position:absolute;top:100%;left:0;right:0;background:var(--entry-paper);padding:12px 24px 24px;box-shadow:0 20px 25px #29282120;display:none;max-height:calc(100dvh - 70px);overflow:auto;gap:0}.entry-header.menu-open .entry-menu{display:flex;flex-direction:column;align-items:stretch}.entry-menu a{padding:17px 8px;font-size:16px;border-bottom:1px solid var(--entry-line)}.entry-menu .entry-contact{margin-top:14px;text-align:center;border:0;padding:15px}
 .home-entry{grid-template-columns:1fr;padding:25px 24px 35px;gap:22px}.home-entry-copy{display:contents}.entry-kicker{margin:0 0 8px;font-size:13px}.home-entry h1{font-size:31px;line-height:1.5;margin:0}.entry-intro{margin:0;font-size:15px;line-height:1.8}.home-entry-photo{grid-row:4;margin:0;padding:0}.home-entry-photo img{height:180px;min-height:0;max-height:none;object-position:50% 57%}.home-entry-photo figcaption{display:none}.purpose-list{grid-row:5}.purpose-list>a{padding:15px 0}.entry-help{margin:0}.home-entry{row-gap:12px}.purpose-list small{font-size:13px}.purpose-list strong{font-size:16px}
 .home-more>summary{font-size:20px}.entry-background{grid-template-columns:85px 1fr;gap:18px;padding:22px}.entry-background>img{width:85px;height:120px}.entry-background .hub-hero-trust{display:block}body.revision-149.detail-page .hub-hero-grid{display:flex!important;flex-direction:column!important;gap:20px}body.revision-149.detail-page .hub-hero-visual{width:100%!important}body.revision-149.detail-page .hub-hero-photo{height:170px!important;max-width:100%;margin:0!important}body.revision-149.detail-page .hub-hero-photo img{height:170px!important;object-fit:cover}body.revision-149.detail-page .hub-hero-text{width:100%;text-align:left}body.revision-149.detail-page .hub-hero-eyebrow{font-size:12px!important}body.revision-149.detail-page .hub-hero-title{text-align:left!important;font-size:28px!important}body.revision-149.detail-page .hub-hero-sub{text-align:left!important}body.revision-149.detail-page .hero-check{display:none}.page-shortcuts{padding:16px 20px;gap:8px}.page-shortcuts a{padding:11px 14px;font-size:14px}body.revision-149.detail-page .hero-title{text-align:left!important;font-size:29px!important}body.revision-149.detail-page .hero .container{padding:0!important}body.revision-149.detail-page .hero-tagline,body.revision-149.detail-page .hero-solution,body.revision-149.detail-page .hero-benefits{display:none}body.revision-149.detail-page .hero-plain{text-align:left!important;font-size:16px!important}body.revision-149.detail-page .hero-image{margin:18px auto}body.revision-149.detail-page .hero-image img{max-height:160px}body.revision-149.detail-page .hero-cta{margin-top:20px}.specific-note{margin:24px 20px 0;padding:20px}.specific-note h3{font-size:18px}.choice-links a{font-size:14px;padding:12px}.entry-background .hub-hero-sub{font-size:14px}.home-page .hub-stats{padding:32px 20px}
}
@media(max-width:420px){.home-entry{padding:20px 18px 30px;gap:10px}.home-entry h1{font-size:27px}.home-entry-photo img{height:116px;object-position:50% 60%}.purpose-list>a{grid-template-columns:20px 1fr 16px;gap:8px;padding:12px 0}.purpose-list strong{font-size:15px}.purpose-list small{font-size:12px;letter-spacing:-.025em}.entry-intro{font-size:14px}.entry-help{font-size:13px;margin-top:4px}.entry-header-inner{min-height:66px;padding:8px 18px}.entry-logo>span{font-size:25px}.entry-logo small{font-size:10px}.home-more,.home-details{padding:0 20px}.home-more>summary{font-size:18px}.page-shortcuts a{font-size:14px}body.revision-149.detail-page .hub-hero-title{font-size:25px!important}body.revision-149.detail-page .hub-hero-photo,body.revision-149.detail-page .hub-hero-photo img{height:145px!important}}
@media(max-width:900px){.revision-149 .home-entry{grid-template-columns:1fr;padding:25px 24px 35px!important;gap:12px}}
@media(max-width:420px){.revision-149 .home-entry{padding:20px 18px 30px!important;gap:10px}}
/* Keep the menu reachable even when legacy overflow rules create a scroll container. */
body.revision-149{padding-top:86px!important}
.revision-149 .entry-header{position:fixed;inset:0 0 auto 0}
@media(max-width:900px){
 body.revision-149{padding-top:70px!important}
 body.revision-149.detail-page .hub-hero-photo{width:100%!important;aspect-ratio:auto!important;height:170px!important}
 body.revision-149.detail-page .hub-hero-photo img{width:100%!important;max-width:none!important;height:170px!important}
 body.revision-149.detail-page .hero-check{display:none!important}
 body.revision-149.detail-page .hero-benefits{display:none!important}
 body.revision-149.detail-page .hero-title{max-width:none!important;width:100%!important;font-size:27px!important;letter-spacing:0!important}
}
@media(max-width:420px){body.revision-149{padding-top:66px!important}body.revision-149.detail-page .hub-hero-photo,body.revision-149.detail-page .hub-hero-photo img{height:145px!important}}
.revision-149 .diag-box,.revision-149 .mid-cta-qr{color:var(--entry-ink)!important}
.revision-149 .why-now-tag,.revision-149 .mid-cta-tag{color:var(--entry-red)!important;background:#fff!important}
.revision-149 .copyright-credit-text strong{color:#282924!important;background:transparent!important}
.brand-explanation{max-width:950px;margin:20px auto 45px;padding:0 24px}.brand-explanation>summary{cursor:pointer;font-size:18px;padding:20px 0;border-top:1px solid var(--entry-line);color:var(--entry-ink)}
body.revision-149 .brand-explanation .hero-tagline,body.revision-149 .brand-explanation .hero-solution,body.revision-149 .brand-explanation .hero-benefits{display:block!important;font-size:16px!important;color:var(--entry-ink)!important;text-align:left!important;margin:20px 0!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
