:root{color-scheme:light;--primary:#0f4c3a;--primary-hover:#145d48;--secondary:#2f7d66;--accent:#d8b46a;--sage:#bfd8c5;--bg:#faf8f4;--alt:#f4f2ed;--surface:#fff;--heading:#17212b;--body:#4e5a63;--muted:#68747e;--border:#17212b1f;--font-body:Inter, "Segoe UI", "Noto Sans JP", system-ui, sans-serif;--font-heading:"Space Grotesk", "Avenir Next", "Segoe UI", var(--font-body);--radius:1.25rem;--shadow:0 24px 60px #0f4c3a1a;--container:1120px;--pad:clamp(1rem, 4vw, 2rem)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);min-width:320px;color:var(--heading);font-family:var(--font-body);scroll-padding-top:6rem}body{background:var(--bg);margin:0;font-size:16px;line-height:1.7;overflow-x:clip}body,button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5{color:var(--heading);font-family:var(--font-heading);margin:0;line-height:1.08}p{color:var(--body);margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--primary)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.container{width:min(100% - var(--pad) * 2, var(--container));margin-inline:auto}.container-narrow{max-width:780px}.container-wide{max-width:1280px}.skip-link{z-index:1100;background:var(--heading);color:#fff;border-radius:999px;padding:.6rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:50;background:0 0;transition:background .25s,box-shadow .25s;position:fixed;inset:0 0 auto}.site-header.is-scrolled{backdrop-filter:blur(16px);background:#fffffff0;box-shadow:0 8px 30px #17212b14}.header-shell{align-items:center;gap:1.25rem;min-height:82px;display:flex}.brand{flex:none;display:inline-flex}.brand-logo{object-fit:contain;width:auto;display:block}.brand-logo-header{height:3rem}.brand-logo-footer{filter:invert();height:3.5rem}.site-nav{margin-left:auto}.nav-list{gap:clamp(.6rem,1.1vw,1.1rem);margin:0;padding:0;list-style:none;display:flex}.nav-list a{color:var(--body);font-size:.84rem;font-weight:700}.header-action{flex:none;margin-left:.25rem}.menu-toggle,.menu-backdrop,.menu-close{display:none}.menu-toggle{background:0 0;border:0;margin-left:auto;padding:.7rem}.menu-toggle span:not(.sr-only){background:var(--heading);width:25px;height:2px;margin:5px;display:block}.button{text-align:center;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;width:fit-content;font-weight:750;line-height:1.2;transition:background .2s,border-color .2s,color .2s,transform .2s;display:inline-flex}.button-sm{min-height:2.6rem;padding:.7rem 1.2rem;font-size:.88rem}.button-md{min-height:3rem;padding:.85rem 1.5rem}.button-primary{background:var(--primary);color:#fff;box-shadow:0 10px 24px #0f4c3a2e}.button-primary:hover{background:var(--primary-hover);color:#fff;transform:translateY(-1px)}.button-primary:disabled{opacity:.7;cursor:wait;transform:none}.button-secondary{color:var(--primary);background:#ffffffbf;border-color:#0f4c3a40}.button-secondary:hover{border-color:var(--primary);background:#fff}.hero{background:radial-gradient(circle at 85% 25%,#bfd8c58c,#0000 25rem);padding:clamp(8rem,14vw,11rem) 0 clamp(5rem,9vw,8rem);position:relative}.hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:center;gap:clamp(2.5rem,6vw,6rem);display:grid}.eyebrow{color:var(--secondary);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1rem;font-size:.78rem;font-weight:800}.hero h1{letter-spacing:-.045em;max-width:780px;font-size:clamp(3rem,5.6vw,5.4rem)}.hero h1 span{color:var(--primary)}.hero-lede,.lead{max-width:650px;margin-top:1.5rem;font-size:clamp(1.05rem,1.8vw,1.22rem)}.hero-support{max-width:700px;margin-top:.85rem}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.trust-list{flex-wrap:wrap;gap:.55rem;margin:2rem 0 0;padding:0;list-style:none;display:flex}.trust-list li{color:var(--body);background:#ffffffb8;border:1px solid #0f4c3a24;border-radius:999px;padding:.42rem .72rem;font-size:.84rem;font-weight:650}.trust-list li:before{content:"✓";color:var(--secondary);margin-right:.4rem;font-weight:900}.hero-art{place-items:center;min-width:0;min-height:440px;display:grid;position:relative}.hero-image{object-fit:cover;width:100%;height:440px;box-shadow:var(--shadow);border-radius:2rem;display:block}.section{padding:clamp(4.5rem,9vw,7.5rem) 0}.section-alt{background:var(--alt)}.split,.teacher-grid,.schedule-grid,.consultation-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(2.5rem,7vw,6rem);display:grid}.section h2{letter-spacing:-.035em;font-size:clamp(2.2rem,4.5vw,4rem)}.prose{gap:1.2rem;font-size:1.08rem;display:grid}.section-heading{max-width:710px;margin-bottom:3rem}.section-heading>p:last-child{margin-top:1rem;font-size:1.08rem}.section-heading.centered{text-align:center;margin-inline:auto}.section-cta{margin-top:2rem;display:flex}.section-cta.centered{justify-content:center}.teacher-cta .button-secondary{background:#fff}.feature-grid,.testimonial-grid,.pricing-grid,.contact-grid{gap:1.25rem;display:grid}.feature-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.feature-card,.testimonial-card,.course-card,.price-card,.contact-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;padding:clamp(1.5rem,3vw,2rem)}.card-number{color:var(--accent);margin-bottom:2.25rem;font-weight:800;display:block}.feature-card h3,.testimonial-card h3,.price-card h3,.contact-item h3{font-size:1.28rem}.feature-card p,.testimonial-card p{margin-top:.8rem}.teacher-section{background:var(--primary);color:#fff}.teacher-grid{grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr)}.teacher-section h2,.teacher-section h3,.teacher-section p,.teacher-section li{color:#fff}.teacher-section .eyebrow{color:var(--sage)}.teacher-portrait{aspect-ratio:1122/1402;object-fit:cover;object-position:center;border-radius:2rem;width:100%;height:auto;display:block}.teacher-intro{max-width:720px;margin-top:1.25rem;font-size:1.08rem;color:#ffffffd6!important}.teacher-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.teacher-facts li{background:#ffffff0f;border:1px solid #ffffff2e;border-radius:.9rem;gap:.15rem;padding:.9rem;display:grid}.teacher-facts strong{color:var(--sage);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}.teacher-details{grid-template-columns:minmax(0,1.25fr) minmax(210px,.75fr);gap:1rem;margin-top:1.75rem;display:grid}.teacher-details h3{margin-bottom:.85rem;font-size:1.12rem}.specialty-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.specialty-list li{background:#ffffff12;border:1px solid #ffffff2e;border-radius:999px;padding:.42rem .7rem;font-size:.84rem}.language-card{background:var(--sage);border-radius:1rem;padding:1.25rem}.language-card h3,.language-card li{color:var(--primary)}.language-card ul{gap:.35rem;margin:0;padding-left:1.1rem;display:grid}.testimonials-section{background:var(--bg)}.testimonial-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.testimonial-card{flex-direction:column;display:flex}.stars{color:#9b762a;letter-spacing:.15em;margin-bottom:1.2rem;font-size:.9rem}.testimonial-card p{font-style:italic}.course-groups{gap:3.5rem;display:grid}.course-group{border-top:1px solid var(--border);grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr);gap:clamp(2rem,5vw,4.5rem);padding-top:2rem;display:grid}.course-group-heading h3{font-size:clamp(1.8rem,3vw,2.6rem)}.course-group-heading>p:last-child{margin-top:1rem}.language-kicker,.price-language{color:var(--secondary);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.65rem;font-size:.78rem;font-weight:850}.course-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.course-card-grid.single{grid-template-columns:minmax(0,1fr);max-width:620px}.course-card,.price-card{position:relative}.course-card{flex-direction:column;display:flex}.course-card.featured,.price-card.featured{border-color:var(--secondary);box-shadow:var(--shadow)}.course-card-topline{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.badge,.private-only{border-radius:999px;padding:.3rem .75rem;font-size:.75rem;font-weight:800;display:inline-block}.badge{background:var(--sage);color:var(--primary)}.private-only{color:var(--primary);border:1px solid #0f4c3a2e}.course-card h4{font-size:1.35rem}.course-card>p{margin-top:.8rem}.course-price{background:var(--alt);border-radius:.9rem;flex-wrap:wrap;align-items:baseline;gap:.35rem .55rem;margin-top:1.25rem;padding:1rem;display:flex}.course-price>span:first-child,.course-price small{color:var(--muted);flex-basis:100%;font-size:.78rem}.course-price strong{color:var(--primary);font:750 1.35rem/1.2 var(--font-heading)}.price-separator{color:var(--muted);font-size:.8rem}.topic-block{margin-top:1.4rem}.topic-block h5{font-size:.9rem}.tag-list{flex-wrap:wrap;gap:.45rem;margin:.7rem 0 0;padding:0;list-style:none;display:flex}.tag-list li{border:1px solid var(--border);color:var(--body);border-radius:999px;padding:.28rem .58rem;font-size:.78rem}.course-card dl{margin:1.4rem 0}.course-card dl div{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;padding:.75rem 0;display:flex}dt{color:var(--muted)}dd{color:var(--heading);text-align:right;margin:0;font-weight:650}.course-card .button{margin-top:auto}.pricing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.price-card{text-align:center;flex-direction:column;align-items:center;padding:2.25rem;display:flex}.price-card h3{font-size:1.5rem}.price-label{color:var(--muted);margin-top:1.4rem;font-size:.82rem}.price-values{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.35rem .55rem;margin-top:.3rem;display:flex}.price-values strong{color:var(--primary);font:750 clamp(1.5rem, 3vw, 2.15rem) / 1.2 var(--font-heading)}.price-values span,.price-qualifier{color:var(--muted);font-size:.82rem}.price-qualifier{min-height:1.7rem;margin-top:.35rem}.promotion-space{width:100%;min-height:3rem;color:var(--muted);border:1px dashed #0f4c3a33;border-radius:.8rem;margin-top:1.2rem;padding:.65rem;font-size:.78rem}.price-card .button{margin-top:1.5rem}.schedule-placeholder{border-radius:var(--radius);text-align:center;background:#fff;border:2px dashed #0f4c3a40;place-content:center;min-height:350px;padding:2rem;display:grid}.calendar-top{justify-content:center;gap:6rem;margin-bottom:2rem;display:flex}.calendar-top span{background:var(--accent);border-radius:1rem;width:12px;height:30px}.schedule-placeholder strong{font:700 1.5rem var(--font-heading)}.faq-list details{border-top:1px solid var(--border)}.faq-list details:last-child{border-bottom:1px solid var(--border)}.faq-list summary{font:700 1.08rem var(--font-heading);cursor:pointer;justify-content:space-between;gap:1rem;padding:1.35rem 0;list-style:none;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{color:var(--secondary);flex:none;font-size:1.5rem;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{padding:0 2.5rem 1.4rem 0}.consultation{background:var(--primary);color:#fff}.consultation h2,.consultation .lead,.consultation .check-list li{color:#fff}.eyebrow.light{color:var(--sage)}.check-list{gap:.7rem;margin:1.7rem 0 0;padding:0;list-style:none;display:grid}.check-list li:before{content:"✓";color:var(--accent);margin-right:.65rem;font-weight:900}.consultation-form{border-radius:var(--radius);color:var(--heading);background:#fff;padding:clamp(1.5rem,4vw,2.5rem)}.required-note{color:var(--muted);text-align:right;margin-bottom:1rem;font-size:.78rem}.required-note span,.form-grid label>span{color:#9b3030}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.form-grid label{min-width:0;font-size:.88rem;font-weight:700}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;color:var(--heading);background:#fff;border:1px solid #b9c2bd;border-radius:.65rem;margin-top:.35rem;padding:.75rem;display:block}.form-grid input[type=hidden]{display:none}.form-grid textarea{resize:vertical}.form-grid input:focus-visible,.form-grid select:focus-visible,.form-grid textarea:focus-visible{border-color:var(--primary);outline-offset:1px;outline:3px solid #d8b46ab8}.form-helper{color:var(--muted);margin-top:.35rem;font-size:.78rem;font-weight:400;line-height:1.5;display:block}.consultation-form>.button{width:100%;margin-top:1.2rem}#form-message{min-height:1.7rem;color:var(--body);text-align:center;white-space:pre-line;margin-top:.75rem;font-size:.9rem}#form-message:not(:empty){border:1px solid var(--border);background:var(--alt);border-radius:.8rem;padding:.9rem 1rem}#form-message.is-success{color:#0b4936;background:#e8f3ec;border-color:#0f4c3a40}#form-message.is-error{color:#7d2424;background:#fff1f1;border-color:#9b303040}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-item{gap:1rem;display:flex}.contact-item>span{color:var(--secondary);flex:none;font-size:1.5rem}.contact-item p{overflow-wrap:anywhere;margin-top:.5rem}.contact-item a{color:var(--primary);text-underline-offset:.2em;text-decoration:underline 1px}.social-placeholders{grid-column:1/-1}.site-footer{color:#fff;background:#092f25}.footer-shell{grid-template-columns:minmax(0,1fr) auto;gap:2rem;padding-block:3.5rem;display:grid}.footer-brand{max-width:620px}.footer-brand p,.footer-meta{color:#ffffffc2;margin-top:.8rem}.footer-nav,.footer-social{flex-wrap:wrap;gap:.8rem 1.4rem;display:flex}.footer-nav{justify-content:flex-end}.footer-nav a,.footer-social a{color:#fff}.footer-social span{color:#ffffffb8}.footer-social{grid-column:2;justify-content:flex-end}.footer-meta{border-top:1px solid #ffffff26;grid-column:1/-1;padding-top:1.5rem}@media (width<=1040px){body.is-menu-open{touch-action:none;width:100%;position:fixed;overflow:hidden}.site-header{z-index:1000}.site-header.is-menu-open{backdrop-filter:none}.header-action{display:none}.menu-toggle{display:block}.menu-backdrop{z-index:1;opacity:0;visibility:hidden;background:#17212b47;border:0;transition:opacity .25s,visibility 0s linear .25s;display:block;position:fixed;inset:0}.menu-backdrop.is-open{opacity:1;visibility:visible;transition-delay:0s}.site-nav{z-index:2;width:min(88vw,400px);height:100dvh;min-height:100vh;padding:max(1rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) 2rem;overscroll-behavior:contain;background:var(--bg);visibility:hidden;-webkit-overflow-scrolling:touch;margin:0;transition:transform .25s,visibility 0s linear .25s;position:fixed;inset:0 0 0 auto;overflow-y:auto;transform:translate(100%);box-shadow:-20px 0 50px #00000026}.site-nav.is-open{visibility:visible;transition-delay:0s;transform:translate(0,0)}.menu-close{width:44px;height:44px;color:var(--heading);cursor:pointer;background:0 0;border:0;place-items:center;margin-left:auto;padding:0;font-size:2rem;line-height:1;display:grid}.nav-list{gap:0;margin-top:1.5rem;display:grid}.nav-list a{border-bottom:1px solid var(--border);padding:1rem 0;font-size:1.1rem;display:block}}@media (width<=900px){.hero-grid,.split,.teacher-grid,.schedule-grid,.consultation-grid,.course-group{grid-template-columns:minmax(0,1fr)}.hero-art{min-height:360px}.hero-image{height:360px}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-portrait{width:min(100%,520px);max-height:620px}.course-group-heading{max-width:680px}.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-card:last-child{grid-column:1/-1;justify-self:center;width:min(100%,50% - .625rem)}.footer-shell{grid-template-columns:minmax(0,1fr)}.footer-nav,.footer-social{grid-column:1;justify-content:flex-start}.footer-meta{grid-column:1}}@media (width<=700px){.testimonial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-facts,.teacher-details{grid-template-columns:minmax(0,1fr)}}@media (width<=620px){.brand-logo-header{height:2.6rem}.hero{padding-top:7.5rem}.hero h1{font-size:clamp(2.65rem,12.5vw,4rem)}.hero-actions .button{width:100%}.hero-art{min-height:280px}.hero-image{border-radius:1.4rem;height:280px}.feature-grid,.testimonial-grid,.course-card-grid,.pricing-grid,.contact-grid,.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .full{grid-column:auto}.section-cta .button{width:100%}.social-placeholders{grid-column:auto}.price-card:last-child{grid-column:auto;width:100%}.course-card dl div{display:grid}dd{text-align:left}.calendar-top{gap:4rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
