:root{--bg:#f7f5ef;--paper:#fffefa;--ink:#1b302d;--muted:#63716c;--deep:#15362e;--green:#265949;--sage:#e8eee7;--cream:#e8dcbe;--accent:#b67f47;--line:#dce3d9;--shadow:0 24px 70px rgba(26,55,45,.085)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;font-feature-settings:"palt";line-height:1.85;-webkit-font-smoothing:antialiased}a{color:inherit}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a86a31;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.47;letter-spacing:.025em}h1,h2,.art-core,.price-number,.final-cta h2{font-family:"Noto Serif CJK JP","Hiragino Mincho ProN","Yu Mincho",serif}p{line-height:1.95}.wrap{max-width:1160px;padding-left:28px;padding-right:28px;margin:0 auto}.section{padding:116px 0}.skip-link{position:absolute;top:-100px;left:12px;z-index:200;background:#fff;padding:10px}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:100;background:rgba(247,245,239,.94);backdrop-filter:blur(18px);border-bottom:1px solid #e8e7df}.header-inner{height:78px;display:flex;align-items:center;gap:28px}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}.brand-symbol{border:1px solid var(--green);background:var(--green);color:#fff;width:38px;height:38px;border-radius:50%;font-size:18px;display:grid;place-items:center;font-family:serif}.brand-type{display:flex;flex-direction:column;line-height:1.15;letter-spacing:.13em}.brand-type strong{font-size:19px;letter-spacing:.19em}.brand-type small{font-family:Georgia,serif;font-size:8px;color:var(--muted);letter-spacing:.18em;margin-top:6px}.desktop-nav{display:flex;gap:28px;margin-left:auto;align-items:center}.desktop-nav a{font-size:12px;white-space:nowrap;text-decoration:none;color:#40564e}.desktop-nav a:hover{text-decoration:underline;text-underline-offset:5px}.header-cta{white-space:nowrap;margin-left:10px;padding:11px 18px;background:var(--deep);font-weight:700;border-radius:3px;color:#fff;text-decoration:none;font-size:13px;transition:background .2s,transform .2s}.header-cta:hover,.button-primary:hover{background:#33735e;transform:translateY(-2px)}.hero{background:radial-gradient(ellipse at 74% 43%,#eef0e7 0,transparent 44%),linear-gradient(160deg,#f9f7f0,#f5f3e9);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.14fr .86fr;min-height:676px;align-items:center;gap:16px;padding-top:76px;padding-bottom:88px}.eyebrow{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:700;letter-spacing:.13em;color:var(--green);margin-bottom:28px}.eyebrow-line{width:30px;height:1px;background:var(--accent)}.hero h1{font-size:clamp(36px,3.9vw,59px);font-weight:700;letter-spacing:.035em;line-height:1.56;margin-bottom:26px}.hero h1 em{font-style:normal;color:#5a7467}.hero-lead{font-size:16px;line-height:2.1;color:#40554d;margin-bottom:12px}.hero-statement{font-weight:700;color:var(--deep);margin:0 0 32px;font-size:17px}.hero-actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:17px 24px;text-decoration:none;font-size:15px;font-weight:700;border-radius:3px;line-height:1.35;transition:background .2s,transform .2s;max-width:100%;text-align:center}.button span{font-size:18px;font-weight:400}.button-primary{background:var(--deep);color:white;box-shadow:0 12px 24px rgba(20,54,46,.14)}.text-link{display:inline-flex;gap:6px;align-items:center;color:var(--green);font-size:13px;text-decoration:underline;text-underline-offset:6px;text-decoration-color:#9dac9b;font-weight:700}.text-link:hover{text-decoration-color:var(--green)}.hero-facts{display:flex;gap:9px 16px;flex-wrap:wrap;margin-top:44px}.hero-facts span{font-size:11px;color:var(--green);padding-right:16px;border-right:1px solid #bfccc0;white-space:nowrap}.hero-facts span:last-child{border:0;padding:0}.small-note{color:var(--muted);font-size:11px;margin:13px 0 0}.hero-art{padding:12px 0 0}.hero-art-inner{position:relative;width:min(100%,460px);aspect-ratio:1/1;margin:auto;border-radius:50%;background:radial-gradient(circle at center,#fdfaf0 0 18%,#e5ebe2 18% 26%,transparent 26% 100%);display:grid;place-items:center}.orbit{position:absolute;inset:8%;border:1px solid rgba(58,90,74,.26);border-radius:50%}.orbit-two{inset:19%;border-style:dashed;border-color:rgba(65,92,76,.28)}.orbit-three{inset:0%;border-color:rgba(58,90,74,.08)}.art-core{position:relative;text-align:center;z-index:2;font-size:25px;color:var(--green);line-height:2}.art-core span{display:block;font-size:20px}.art-core strong{display:block;font-size:37px;line-height:1.45}.art-label{position:absolute;z-index:3;padding:9px 16px;font-size:13px;letter-spacing:.08em;background:#fffefa;color:#29483d;box-shadow:0 12px 35px rgba(23,55,44,.08);border:1px solid #e1e7db;white-space:nowrap}.label-a{top:10%;left:1%;transform:rotate(-5deg)}.label-b{right:-2%;top:30%;transform:rotate(5deg)}.label-c{bottom:14%;left:0%;transform:rotate(-3deg)}.art-spark{position:absolute;color:#c19d6b;font-size:26px}.spark-a{left:12%;top:36%}.spark-b{right:19%;bottom:19%}.art-caption{text-align:center;font-size:12px;color:var(--muted);letter-spacing:.13em;margin-top:5px}.strip{display:flex;align-items:center;justify-content:space-around;gap:14px;overflow:hidden;padding:18px 8px;background:var(--deep);color:#d6e0d3;font:12px Georgia,serif;letter-spacing:.23em;white-space:nowrap}.strip span:nth-child(even){color:#c69b5a;font-size:16px}.section-top{display:flex;align-items:center;gap:22px;margin-bottom:24px}.section-index{font-size:11px;font-weight:800;letter-spacing:.14em;color:#537264;white-space:nowrap}.section-rule{height:1px;flex:1;background:var(--line)}.section-heading{margin-bottom:50px}.section-heading.duo{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:end}.kicker{font-size:12px;color:#8a724e;letter-spacing:.16em;font-weight:700;margin-bottom:16px}.section h2{font-size:clamp(30px,3vw,44px);line-height:1.55;letter-spacing:.02em;margin-bottom:0}.section h2 em{font-style:normal;color:#617d6f}.heading-aside{font-size:14px;color:var(--muted);line-height:2.05;max-width:360px;margin-bottom:4px}.worries{background:#fffefa}.worry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.worry-card{padding:31px 28px 34px;background:#f7f8f3;border:1px solid #e7eae2;min-height:324px;display:flex;flex-direction:column}.worry-number{font:14px Georgia,serif;color:#83988c;letter-spacing:.1em}.worry-icon{height:58px;width:58px;display:grid;place-items:center;border:1px solid #9cb5a4;border-radius:50%;color:#3b6756;font:25px Georgia,serif;margin:16px 0 22px}.worry-card h3{font-size:18px;line-height:1.7;margin-bottom:13px}.worry-card p{font-size:13px;color:#53635c;line-height:2;margin-bottom:0}.worries-outro{text-align:center;font-size:16px;margin:46px 0 0;color:#466053}.story-section{background:#ecece4}.story-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:8%;align-items:start}.story-intro{position:sticky;top:120px;padding-top:6px}.story-intro .kicker{margin-top:38px}.story-intro h2{font-size:clamp(27px,3vw,41px);margin-bottom:26px}.story-intro>p:not(.kicker){font-size:14px;line-height:2.2;color:#526259}.story-disclaimer{font-size:11px;color:#67746d}.story-scenes{display:grid;gap:13px}.scene{background:#fffefa;border:1px solid #d9e2d6;padding:16px;display:grid;grid-template-columns:110px minmax(0,1fr);column-gap:20px;align-items:center;position:relative;min-height:170px}.scene-index{position:absolute;left:18px;top:11px;color:#8c9e91;font:11px Georgia,serif;letter-spacing:.04em}.scene strong{font-size:15px}.scene p{font-size:12px;color:#64716b;line-height:1.9;margin:9px 0 0}.scene-visual{height:112px;display:grid;place-items:center;position:relative;overflow:hidden;border-radius:2px;margin-top:17px}.books{background:linear-gradient(165deg,#d6e4db,#f2ede0)}.book{display:block;height:55px;width:14px;background:#648472;transform:rotate(-7deg);position:absolute;bottom:26px;box-shadow:2px 2px 2px #98a69b}.b1{left:24px}.b2{left:40px;background:#c2a275;height:65px;transform:rotate(2deg)}.b3{left:56px;background:#3c7563;transform:rotate(-3deg);height:52px}.b4{left:72px;background:#a9b9a9;transform:rotate(10deg);height:70px}.speech{background:#e6e8e2;color:#315646;font-weight:700;font-size:12px;line-height:1.7}.speech span{border-radius:50%;background:#fffefa;padding:13px 17px;text-align:center;box-shadow:0 6px 15px #d2dbd0}.question{background:#2f6253;color:#fff;font-family:serif;text-align:center;font-size:16px;line-height:1.7}.question::before{content:"?";position:absolute;font-size:130px;opacity:.08;right:-15px;top:-54px}.dawn{background:linear-gradient(165deg,#f4e7c9,#d9e8dc);color:#406755;text-align:center;font-family:serif;font-size:17px;line-height:1.8;font-weight:700}.philosophy{background:var(--deep);color:#f7f3e7;overflow:hidden}.philosophy-inner{position:relative}.section-index-light{color:#bccfc1}.quote-mark{font:140px/1 Georgia,serif;color:#b7cbb4;opacity:.24;position:absolute;top:0;right:45px}.philosophy h2{font-size:clamp(24px,3.1vw,44px);line-height:1.95;letter-spacing:.055em;padding:55px 0 70px;max-width:980px;position:relative;z-index:1}.philosophy h2 em{font-style:normal;color:#eed4a8}.philosophy-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:45px;border-top:1px solid rgba(245,240,220,.24);padding-top:26px}.signature{white-space:nowrap;letter-spacing:.16em;font-size:16px;font-weight:700}.philosophy-footer p{max-width:590px;font-size:13px;color:#c7d8cf;margin:0}.foundation{background:#fffefa}.foundation-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:8%;align-items:center}.foundation-diagram{background:#eff3ed;border:1px solid #e3e9e0;min-height:383px;padding:35px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.foundation-caption{font-size:11px;color:#718576;margin-bottom:12px;letter-spacing:.12em}.foundation-block{height:62px;display:grid;place-items:center;font-weight:700;letter-spacing:.05em;text-align:center;max-width:100%;font-size:15px}.foundation-block.top{width:57%;background:#dfe8df;border:1px solid #b8c8b9;color:#355e4d}.foundation-block.middle{width:78%;background:#b8cfbf;color:#264d3b}.foundation-block.bottom{width:100%;background:#295c4b;color:#fff}.foundation-caption-under{text-align:center;font-size:11px;color:#6a8072;margin-top:16px}.foundation-copy h3{font-size:25px;margin-bottom:24px}.foundation-copy p{font-size:14px;color:#4d6257;line-height:2.2;margin-bottom:20px}.foundation-copy p strong{color:var(--deep)}.foundation-note{margin-top:47px;padding:25px 29px;display:flex;gap:23px;background:#f8f7ef;border-left:3px solid var(--accent)}.foundation-note p{font-size:13px;margin:0}.note-asterisk{font-size:30px;line-height:1;color:var(--accent)}.curriculum{background:#edf2eb}.lesson-list{border-top:1px solid #cbd7ce}.lesson{border-bottom:1px solid #cbd7ce;display:grid;grid-template-columns:150px minmax(0,1fr) 135px;gap:28px;padding:32px 9px;align-items:start}.lesson-step{display:flex;flex-direction:column}.lesson-step>span{font:10px Georgia,serif;letter-spacing:.12em;color:#7e9485}.lesson-step strong{font:44px Georgia,serif;color:#3e6a57;line-height:1.25;margin:5px 0}.lesson-step small{font-size:12px;white-space:nowrap;color:#6b7a71}.lesson-body h3{font-size:22px;margin-bottom:10px}.lesson-body p{font-size:13px;color:#4d6659;margin-bottom:0;max-width:590px}.lesson-tag{border-radius:20px;background:#fffefa;padding:7px 10px;white-space:nowrap;font-size:11px;text-align:center;color:#436653;margin-top:15px}.course-caution{font-size:11px;color:#718073;margin:26px 0 0;max-width:840px}.teacher{background:#fffefa}.teacher-grid{display:grid;grid-template-columns:37% 1fr;gap:9%}.teacher-side{display:flex;flex-direction:column;align-items:flex-start}.teacher-monogram{margin-top:44px;background:#e4eae0;border:1px solid #d2ded1;width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;gap:18px;font-family:serif;color:#355e4b;font-size:34px;position:relative;overflow:hidden}.teacher-monogram::before,.teacher-monogram::after{content:"";position:absolute;border-radius:50%;border:1px solid #a6bba9;width:90%;height:90%}.teacher-monogram::after{width:63%;height:63%;border-style:dashed}.teacher-monogram span,.teacher-monogram strong{position:relative;z-index:1}.teacher-monogram strong{font-size:40px}.teacher-english{font:12px Georgia,serif;letter-spacing:.2em;color:#8b9b8d;padding-top:12px}.teacher-main{padding-top:18px}.teacher-main h2{margin-bottom:28px}.teacher-main>p:not(.kicker):not(.teacher-footnote){font-size:14px;line-height:2.15;color:#526357}.teacher-links{display:flex;flex-wrap:wrap;gap:24px;margin-top:26px}.teacher-footnote{font-size:10px;color:#849085;margin-top:30px}.price{background:#f2efdf}.price-grid{display:grid;grid-template-columns:.82fr 1fr;align-items:center;gap:8%}.price-lead h2{margin:26px 0}.price-lead>p:not(.kicker){font-size:14px;color:#5e6559}.price-card{padding:38px 40px;background:#fffefa;box-shadow:var(--shadow);border:1px solid #eee9dd}.price-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #e3e6db;padding-bottom:20px;font-size:14px;font-weight:700}.price-card-top span{background:#e9eee8;color:#3d6551;font-size:11px;padding:5px 12px;white-space:nowrap}.price-number{display:flex;align-items:baseline;gap:5px;margin:24px 0 30px;color:var(--deep)}.price-number strong{font-size:clamp(42px,5vw,64px);font-weight:700;line-height:1.1}.price-number span{font-size:17px}.detail-list{margin:0 0 26px}.detail-list>div{display:grid;grid-template-columns:100px 1fr;gap:8px;padding:13px 0;border-top:1px solid #e9ece6}.detail-list dt{font-size:12px;color:#64746b}.detail-list dd{margin:0;font-size:12px;font-weight:700}.button-block{width:100%}.price-fine{font-size:10px;color:#718176;margin:16px 0 0}.other-path{background:#fffefa}.other-path-grid{display:grid;grid-template-columns:.94fr 1.06fr;gap:8%}.other-path h2{margin-top:24px}.path-info{padding-top:25px}.path-info>p{font-size:14px;color:#536b5c}.path-option{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid #d5e2d7;border-bottom:1px solid #d5e2d7;padding:22px 0;margin:25px 0}.path-option div{display:flex;flex-direction:column}.path-option strong{font-size:17px}.path-option span{font-size:12px;color:#688173;margin-top:5px}.path-option a{font-size:12px;white-space:nowrap;text-underline-offset:4px;color:#32614e}.path-caution{font-size:11px!important;color:#718174!important}.faq{background:#f4f5ef}.faq-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:8%}.faq h2{margin-top:22px}.faq-list{border-top:1px solid #cfd9cf}.faq-list details{border-bottom:1px solid #cfd9cf}.faq-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 0;font-weight:700;font-size:14px;line-height:1.65}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{color:#688771;font-size:24px;font-weight:300;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{font-size:13px;color:#52665b;line-height:2.1;padding:0 24px 25px 0;margin:0}.final-cta{background:var(--deep);color:#fff;text-align:center;padding:110px 0 114px;position:relative;overflow:hidden}.final-cta::before,.final-cta::after{content:"";border:1px solid rgba(255,255,255,.12);border-radius:50%;height:530px;width:530px;position:absolute;left:-270px;top:-280px}.final-cta::after{left:auto;right:-265px;top:120px}.final-cta-inner{position:relative;z-index:1}.final-mark{color:#e9d2a9;font-size:31px;margin-bottom:24px}.kicker-light{color:#ddc8a0}.final-cta h2{font-size:clamp(38px,5vw,61px);line-height:1.6;margin:18px 0 19px}.final-cta-inner>p:not(.kicker):not(.final-disclaimer){font-size:14px;line-height:2.25;color:#d7e5db;margin-bottom:32px}.button-cream{background:#f1e7cf;color:var(--deep)}.button-cream:hover{background:#fff6e1;transform:translateY(-2px)}.final-disclaimer{font-size:11px;color:#b8cdc0;margin:18px 0 0}.site-footer{padding:54px 0 26px;background:#f9f8f1}.footer-grid{display:flex;align-items:start;justify-content:space-between;gap:26px}.brand-footer .brand-symbol{width:34px;height:34px}.site-footer p{font-size:12px;color:#6c7c70;margin:19px 0 0}.footer-links{display:flex;gap:24px;flex-wrap:wrap}.footer-links a{font-size:12px;text-decoration:underline;text-decoration-color:#aabcae;text-underline-offset:5px}.footer-bottom{border-top:1px solid #dfe6dc;margin-top:44px;padding-top:16px;display:flex;justify-content:space-between;gap:15px;color:#738275}.footer-bottom small{font-size:10px}
@media(max-width:1000px){.desktop-nav{gap:12px}.desktop-nav a{font-size:11px}.header-inner{gap:12px}.hero-grid{min-height:630px}.hero h1{font-size:43px}.hero-art-inner{max-width:390px}.art-core{font-size:21px}.art-core span{font-size:17px}.art-core strong{font-size:30px}.art-label{font-size:11px;padding:7px 10px}.worry-card{padding:23px 19px}.story-layout,.foundation-grid,.teacher-grid,.price-grid,.other-path-grid,.faq-grid{gap:6%}}
@media(max-width:760px){html{scroll-padding-top:68px}.wrap{padding-left:21px;padding-right:21px}.header-inner{height:64px}.brand-symbol{height:32px;width:32px;font-size:16px}.brand-type strong{font-size:16px}.brand-type small{font-size:7px}.desktop-nav{display:none}.header-cta{margin-left:auto;font-size:11px;padding:10px 12px}.hero-grid{display:flex;flex-direction:column;align-items:stretch;min-height:0;gap:18px;padding-top:49px;padding-bottom:56px}.eyebrow{font-size:11px;margin-bottom:17px}.hero h1{font-size:clamp(30px,7.3vw,46px);line-height:1.62;margin-bottom:16px}.hero-lead{font-size:13px;line-height:2.05}.hero-lead br{display:none}.hero-statement{font-size:14px;margin-bottom:24px}.hero-actions{gap:15px}.hero-actions .button{width:100%}.hero-facts{margin-top:29px;gap:5px 9px}.hero-facts span{font-size:10px;padding-right:10px}.small-note{font-size:10px}.hero-art{padding:0}.hero-art-inner{width:68%;max-width:270px}.art-core span{font-size:12px}.art-core strong{font-size:20px}.art-label{font-size:9px;padding:5px 9px}.art-caption{font-size:10px}.strip{font-size:9px;justify-content:flex-start;gap:13px}.section{padding:72px 0}.section-top{margin-bottom:24px}.section-heading,.section-heading.duo{display:block;margin-bottom:31px}.section h2{font-size:clamp(25px,6.8vw,37px)}.heading-aside{margin-top:20px;font-size:13px}.worry-grid{grid-template-columns:1fr;gap:10px}.worry-card{min-height:0;padding:20px 22px 22px;display:grid;grid-template-columns:62px 1fr;column-gap:12px}.worry-number{grid-column:1/-1;margin-bottom:2px}.worry-icon{grid-column:1;grid-row:2/4;height:48px;width:48px;font-size:21px;margin:11px 0 0}.worry-card h3{grid-column:2;margin:4px 0 10px;font-size:16px}.worry-card p{grid-column:2;font-size:12px}.worries-outro{font-size:13px;margin-top:26px}.story-layout{display:block}.story-intro{position:static;margin-bottom:27px}.story-intro .kicker{margin-top:25px}.story-intro h2{font-size:29px;margin-bottom:13px}.story-intro>p:not(.kicker){font-size:13px}.scene{grid-template-columns:90px 1fr;gap:12px;padding:13px;min-height:141px}.scene-visual{height:93px;margin-top:16px}.scene strong{font-size:13px}.scene p{font-size:11px;line-height:1.7}.scene-index{left:12px;top:7px}.philosophy h2{font-size:clamp(21px,5.2vw,31px);line-height:2.05;padding:38px 0 42px}.quote-mark{right:18px;top:0;font-size:100px}.philosophy-footer{display:block}.philosophy-footer p{margin-top:18px;font-size:12px}.foundation-grid,.teacher-grid,.price-grid,.other-path-grid,.faq-grid{display:block}.foundation-diagram{min-height:300px;padding:22px;margin-bottom:35px}.foundation-block{font-size:12px;height:49px}.foundation-copy h3{font-size:20px}.foundation-copy p{font-size:13px}.foundation-note{margin-top:27px;padding:17px;gap:12px}.foundation-note p{font-size:11px}.lesson{grid-template-columns:69px 1fr;gap:13px;padding:22px 0}.lesson-step strong{font-size:32px}.lesson-step small{font-size:10px}.lesson-body h3{font-size:17px;margin:6px 0 10px}.lesson-body p{font-size:12px}.lesson-tag{grid-column:2;justify-self:start;margin-top:-2px;padding:5px 11px}.course-caution{font-size:10px}.teacher-side{display:block}.teacher-monogram{width:210px;margin:24px auto 10px}.teacher-english{text-align:center;display:block;margin-bottom:24px}.teacher-main{padding-top:0}.teacher-main>p:not(.kicker):not(.teacher-footnote){font-size:13px}.teacher-links{gap:18px}.price-lead{margin-bottom:24px}.price-card{padding:25px 20px}.price-card-top{font-size:12px}.price-number{margin:20px 0}.price-number strong{font-size:45px}.detail-list>div{grid-template-columns:74px 1fr}.detail-list dt,.detail-list dd{font-size:11px}.other-path h2{margin-bottom:25px}.path-info{padding-top:0}.path-info>p{font-size:13px}.path-option strong{font-size:14px}.path-option{align-items:flex-start}.path-option span{font-size:11px}.path-option a{font-size:11px}.faq h2{margin-bottom:28px}.faq-list summary{padding:19px 0;font-size:13px}.faq-list details p{font-size:12px}.final-cta{padding:79px 0 95px}.final-cta h2{font-size:37px}.final-cta-inner>p:not(.kicker):not(.final-disclaimer){font-size:12px}.final-cta-inner>p br{display:none}.final-cta .button{width:100%}.footer-grid,.footer-bottom{display:block}.footer-links{margin-top:32px;gap:14px 18px}.footer-bottom small{display:block;margin-bottom:8px}.site-footer{padding-bottom:42px}}
@media(max-width:375px){.header-cta{font-size:10px}.hero h1{font-size:29px}.hero-art-inner{width:77%}.scene{grid-template-columns:79px 1fr;gap:9px}.scene strong{font-size:12px}.scene p{font-size:10px}.price-number strong{font-size:39px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important}}

/* v2 visual refinement: easier Japanese typography and a small number of photos */
:root { --ink:#20322d; --muted:#51685d; --deep:#173e32; --green:#255644; }
body {
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  font-weight:500;
  font-feature-settings:"palt" 0;
  letter-spacing:0;
  line-height:1.85;
}
h1,h2,h3,.art-core,.price-number,.final-cta h2 {
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  letter-spacing:0;
}
h1,h2,h3 { font-weight:750; }
p {line-height:1.9;}
.section-index,.kicker {letter-spacing:.06em;}
.hero-grid {grid-template-columns:1.14fr .86fr;gap:42px;}
.hero h1 {line-height:1.46;letter-spacing:0;}
.hero-lead {font-size:16px;color:#354c41;}
.hero-photo {margin:0;min-width:0;}
.hero-photo-frame {height:505px;border-radius:20px 20px 5px 20px;overflow:hidden;position:relative;box-shadow:0 24px 60px rgba(18,54,42,.15);background:#d5e2d6;}
.hero-photo-frame img {display:block;width:100%;height:100%;object-fit:cover;object-position:66% center;}
.hero-photo-frame::after {content:"";pointer-events:none;position:absolute;inset:0;border:1px solid rgba(255,255,255,.35);border-radius:inherit;}
.hero-photo figcaption {display:flex;flex-direction:column;gap:4px;padding:16px 5px 0;}
.hero-photo figcaption strong {font-size:16px;color:#2e5c47;font-weight:800;}
.hero-photo figcaption span {font-size:11px;color:#586a5f;line-height:1.7;}
.story-photo {margin:25px 0 20px;}
.story-photo img {display:block;width:100%;height:220px;object-fit:cover;object-position:center;border-radius:7px;box-shadow:0 11px 30px rgba(20,42,30,.11);}
.story-photo figcaption {font-size:11px;color:#627268;margin:8px 0 0;}
.story-intro {position:static;}
.worry-card p,.scene p,.teacher-main>p:not(.kicker):not(.teacher-footnote),.foundation-copy p,.path-info>p {font-size:14px;}
.hero-facts span,.small-note,.course-caution,.teacher-footnote,.price-fine,.path-caution,.footer-bottom small {font-size:12px;}
.story-disclaimer {display:block;line-height:1.7;}
@media(max-width:1000px){.hero-grid{gap:25px}.hero-photo-frame{height:445px}.hero h1{font-size:39px}}
@media(max-width:760px){
  .hero-grid{gap:30px;}
  .hero h1{font-size:clamp(31px,7.3vw,43px);line-height:1.5;}
  .hero-lead{font-size:15px;}
  .hero-photo-frame{height:300px;border-radius:14px;}
  .hero-photo-frame img{object-position:66% center;}
  .hero-photo figcaption strong{font-size:14px;}
  .hero-photo figcaption span{font-size:11px;}
  .story-photo img{height:220px;}
  .worry-card p,.scene p,.teacher-main>p:not(.kicker):not(.teacher-footnote),.foundation-copy p,.path-info>p{font-size:14px;line-height:1.88;}
  .heading-aside,.story-intro>p:not(.kicker){font-size:14px;}
  .scene{grid-template-columns:85px 1fr;}
  .scene strong{font-size:14px;}
  .section-index,.kicker{font-size:12px;}
  .hero-facts span,.small-note{font-size:11px;}
  .story-disclaimer,.story-photo figcaption{font-size:11px;}
}
@media(max-width:375px){.hero-photo-frame{height:250px}.hero h1{font-size:29px}.scene p{font-size:13px}}


/* v3: user's real instructional photos and teacher portrait */
.hero-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(26px,4vw,56px); }
.hero-photo-frame { height:490px; border-radius:8px 40px 8px 40px; background:#d9e1d9; }
.hero-photo-frame img { object-fit:cover; object-position:30% 50%; }
.hero-photo figcaption { padding:15px 0 0; }
.hero-photo figcaption strong { color:var(--deep); }
.hero-photo figcaption span { font-size:12px; line-height:1.8; }
.teacher-side { min-width:0; }
.teacher-portrait { margin:18px 0 0; max-width:375px; }
.teacher-portrait img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:10px 50px 10px 10px; box-shadow:0 20px 40px rgba(18,54,42,.13); display:block; }
.teacher-portrait figcaption { font-weight:700; color:#315744; margin-top:12px; font-size:13px; }
.classroom-section { padding:72px 0; background:#e8eee7; }
.classroom-layout { display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(28px,6vw,75px); }
.classroom-photo { margin:0; }
.classroom-photo img { width:100%; height:360px; object-fit:cover; object-position:50% 45%;border-radius:7px; display:block; box-shadow:0 20px 38px rgba(21,55,44,.10); }
.classroom-photo figcaption { padding-top:9px; font-size:11px;line-height:1.6;color:#53685b; }
.classroom-copy h2 { font-size:clamp(25px,2.7vw,35px); line-height:1.55; margin:20px 0; }
.classroom-copy p { font-size:14px;color:#445b50; }
.classroom-copy .classroom-note { font-size:12px; color:#5e7066; margin:12px 0 0; }
@media(max-width:1000px) { .hero-photo-frame {height:410px;} .classroom-photo img{height:320px;} }
@media(max-width:760px) {
  .hero-grid {gap:30px;}
  .hero-photo-frame { height:285px; border-radius:8px 25px 8px 25px; }
  .hero-photo-frame img {object-position:30% 45%;}
  .hero-photo figcaption strong {font-size:14px;}
  .hero-photo figcaption span {font-size:11px;}
  .teacher-portrait {max-width:300px;margin:15px auto 28px;}
  .teacher-portrait figcaption{text-align:center;}
  .classroom-section {padding:60px 0;}
  .classroom-layout {display:block;}
  .classroom-photo img {height:auto;max-height:320px; aspect-ratio: 4/3; object-fit:cover;}
  .classroom-copy {margin-top:28px;}
  .classroom-copy h2 {font-size:26px;}
}

/* v4: documentary photography, accessible typography, study screen preview */
:root { --bg:#f8f7f2; --paper:#fffefd; --ink:#21332d; --deep:#143a30; --green:#245c47; --muted:#54675f; --line:#d9e4d9; }
html { scroll-padding-top:90px; }
body { font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif; font-weight:400; color:var(--ink); }
h1,h2,h3,.price-number,.final-cta h2 { font-family:"Noto Sans CJK JP","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif; letter-spacing:-.012em; font-weight:750; }
.hero h1 { line-height:1.43; }
.section h2 { line-height:1.48; }
.hero h1 em { color:#377254; }
.philosophy h2 { font-family:"Noto Sans CJK JP","Noto Sans JP",sans-serif; font-weight:650; }
.price-number { font-variant-numeric:tabular-nums; }
.hero-photo-frame { border-radius:10px 32px 10px 10px; box-shadow:0 26px 62px rgba(18,54,42,.14); }
.hero-photo-frame img { object-position:27% center; }
.classroom-photo img {height:365px;object-position:center 49%;}
.classroom-photo figcaption,.hero-photo figcaption span {color:#586b62;}
.worry-card { box-shadow:0 9px 24px rgba(20,50,35,.025); }
.worry-card h3 {font-size:19px;line-height:1.58;}
.story-photo img {object-position:center;}
.lesson-media {display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr); gap:clamp(24px,4vw,64px); align-items:center; margin-top:51px; padding:25px; background:#fffefd; border:1px solid #dce5d9; border-radius:12px; box-shadow:0 16px 42px rgba(16,54,37,.055);}
.lesson-media-screen {position:relative;overflow:hidden;border-radius:9px;background:#27453d;aspect-ratio:962/562;box-shadow:0 14px 35px rgba(25,40,34,.12);}
.lesson-media-screen img {display:block;width:100%;height:100%;object-fit:cover;}
.lesson-media-screen::after {content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,42,34,.67),transparent 52%);pointer-events:none;}
.video-play {position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;background:rgba(255,253,246,.93);box-shadow:0 0 0 7px rgba(255,253,246,.18);width:66px;height:66px;color:#204c3d;border-radius:50%;padding-left:4px;font-size:21px;}
.video-label {position:absolute;z-index:1;left:20px;bottom:13px;color:#fff;font-size:12px;font-weight:700;letter-spacing:.015em;}
.lesson-media-copy h3 {font-size:clamp(21px,2vw,28px);line-height:1.5;margin:12px 0 17px;}
.lesson-media-copy p {font-size:15px;line-height:1.85;color:#40584d;}
.lesson-media-copy .lesson-media-note {font-size:11px;color:#67756a;line-height:1.75;margin-bottom:0;}
.section-index {font-size:12px;}
.button {border-radius:7px;}
.hero-photo-frame img,.classroom-photo img,.teacher-portrait img {filter:contrast(1.015) saturate(.94);}
@media(max-width:1000px){.lesson-media{gap:22px;padding:19px}.lesson-media-copy h3{font-size:22px}}
@media(max-width:760px){
 .hero-photo-frame {height:290px;}
 .lesson-media {grid-template-columns:1fr; margin-top:29px; padding:13px;gap:21px;}
 .lesson-media-copy{padding:4px 8px 14px;}
 .lesson-media-copy h3 {font-size:21px;}
 .lesson-media-copy p {font-size:14px;}
 .video-play {width:52px;height:52px;font-size:18px;box-shadow:0 0 0 5px rgba(255,253,246,.14);}
 .video-label {font-size:10px;left:11px;bottom:8px;}
 .worry-card h3 {font-size:16px;}
 .classroom-photo img {height:auto;max-height:360px;}
}

/* The instructional screenshot is a non-interactive illustration, not a video player. */
.video-label{bottom:16px;left:16px;padding:7px 11px;background:rgba(19,54,42,.88);border-radius:4px;font-size:12px;}


/* v4.2 official Rokugyoku Juku branding: original user-supplied logo */
.header-inner {height:84px;}
.brand {gap:12px;}
.brand-logo {display:block; width:auto; height:60px; max-width:50px; object-fit:contain; flex-shrink:0;}
.brand-type strong {font-size:19px; letter-spacing:.14em;}
.brand-type small {margin-top:4px; font-size:9px; letter-spacing:.105em;}
.site-header {border-bottom:1px solid #e6e9e1;}
.brand-footer .brand-logo {height:70px;max-width:59px;}
.closing-logo {display:block;width:auto;height:73px;max-width:56px;margin:0 auto 19px;filter:drop-shadow(0 4px 9px rgba(5,25,17,.14));}
.final-cta .kicker {margin-top:0;}
@media(max-width:1000px) {
 .brand-logo {height:53px;max-width:46px;}
 .brand-type strong {font-size:17px;}
 .header-inner {gap:12px;}
}
@media(max-width:760px) {
 html {scroll-padding-top:74px;}
 .header-inner {height:74px;gap:8px;}
 .brand {gap:6px;min-width:0;}
 .brand-logo {height:47px;max-width:38px;}
 .brand-type strong {font-size:16px; letter-spacing:.10em;}
 .brand-type small {font-size:7px; letter-spacing:.07em;}
 .header-cta {flex-shrink:0;font-size:11px;padding:10px 11px;}
 .brand-footer .brand-logo {height:64px;max-width:53px;}
 .closing-logo {height:65px;max-width:51px;}
}
@media(max-width:359px) {
 .header-cta {font-size:10px;padding:9px 8px;}
 .brand-type strong {font-size:15px;}
 .brand-type small {font-size:6px;}
 .brand-logo {height:42px;max-width:34px;}
}

/* v4.3: source-grounded contract links and display */
.contract-facts{color:#536359;font-size:12px;line-height:1.9;padding:12px 0 17px;margin:0;}
.contract-box{grid-column:1/-1;border:1px solid #d4ddcf;border-left:5px solid #64866b;background:#f7f9f4;padding:23px 26px;margin-top:20px}
.contract-box h3{font-size:19px;line-height:1.45;color:#204435;margin:0 0 12px}
.contract-box p{font-size:14px;line-height:1.8;margin:0 0 12px}
.contract-box ul{font-size:13px;line-height:1.85;padding-left:22px;margin:12px 0 20px}
.contract-box li{margin:8px 0}
.contract-links{display:flex;flex-wrap:wrap;gap:10px 21px;border-top:1px solid #dbe2d8;padding-top:17px}
.contract-links a{font-size:13px;font-weight:700;text-underline-offset:4px;color:#245d48}
.contract-links a:hover{color:#93642e}.contract-links a:focus-visible,.footer-legal-links a:focus-visible{outline:3px solid #eebf6d;outline-offset:4px}
.footer-legal-links{width:min(1110px,calc(100% - 42px));margin:20px auto 0;padding-top:17px;border-top:1px solid rgba(240,235,214,.25);display:flex;gap:16px 23px;flex-wrap:wrap}
.footer-legal-links a{font-size:13px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.contract-box{padding:20px 19px;margin-top:14px}.contract-box h3{font-size:18px}.contract-links{display:grid;gap:14px}.footer-legal-links{display:grid;gap:14px}.contract-facts{font-size:12px}}
