: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:#75808a;--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;font-family:var(--font-body);color:var(--heading);scroll-padding-top:6rem}body{background:var(--bg);margin:0;font-size:16px;line-height:1.7}body,button,input,select,textarea{font:inherit}h1,h2,h3{font-family:var(--font-heading);color:var(--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}.site-main{overflow:hidden}.skip-link{z-index:100;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:all .25s;position:fixed;inset:0 0 auto}.site-header.is-scrolled{backdrop-filter:blur(16px);background:#ffffffeb;box-shadow:0 8px 30px #17212b14}.header-shell{align-items:center;gap:1.5rem;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(.7rem,1.4vw,1.35rem);margin:0;padding:0;list-style:none;display:flex}.nav-list a{color:var(--body);font-size:.88rem;font-weight:650}.header-action{margin-left:.5rem}.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:all .2s;display:inline-flex}.button-sm{min-height:2.6rem;padding:.7rem 1.25rem;font-size:.9rem}.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-secondary{color:var(--primary);background:#ffffffbf;border-color:#0f4c3a40}.hero{background:radial-gradient(circle at 85% 25%,#bfd8c58c,#0000 25rem);padding:clamp(8rem,15vw,12rem) 0 clamp(5rem,9vw,8rem);position:relative}.hero-grid{grid-template-columns:1.15fr .85fr;align-items:center;gap:clamp(3rem,8vw,7rem);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;font-size:clamp(3rem,6.7vw,6.2rem)}.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-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.trust-list{color:var(--body);flex-wrap:wrap;gap:.7rem 1.4rem;margin:2rem 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.trust-list li:before{content:"✓";color:var(--secondary);margin-right:.45rem;font-weight:800}.hero-art{place-items:center;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:1fr 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:690px;margin-bottom:3rem}.section-heading>p:last-child{margin-top:1rem;font-size:1.08rem}.section-heading.centered{text-align:center;margin-inline:auto}.card-grid,.pricing-grid,.contact-grid{gap:1.25rem;display:grid}.card-grid.four{grid-template-columns:repeat(4,1fr)}.card-grid.two,.pricing-grid{grid-template-columns:repeat(2,1fr)}.feature-card,.course-card,.price-card,.contact-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:clamp(1.5rem,3vw,2rem)}.card-number{color:var(--accent);margin-bottom:2.5rem;font-weight:800;display:block}.feature-card h3,.course-card h3,.price-card h3,.contact-item h3{font-size:1.28rem}.feature-card p,.course-card>p,.price-card>p{margin-top:.8rem}.teacher-section{background:var(--primary);color:#fff}.teacher-section h2,.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}.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}.course-card,.price-card{position:relative}.course-card.featured,.price-card.featured{border-color:var(--secondary);box-shadow:var(--shadow)}.badge{background:var(--sage);color:var(--primary);border-radius:999px;margin-bottom:1rem;padding:.3rem .75rem;font-size:.77rem;font-weight:800;display:inline-block}.course-card dl{margin:1.5rem 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{text-align:right;color:var(--heading);margin:0;font-weight:650}.price-card{text-align:center;padding:2.5rem}.price{font:700 clamp(1.5rem,3vw,2.2rem)/1.2 var(--font-heading);color:var(--primary)!important}.price-card .button{margin-top:1.5rem}.schedule-placeholder{text-align:center;border-radius:var(--radius);background:#fff;border:2px dashed #0f4c3a40;place-content:center;min-height:350px;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{cursor:pointer;font:700 1.08rem var(--font-heading);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);font-size:1.5rem;transition:all .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>*>*>div>p{color:#fff}.eyebrow.light{color:var(--sage)}.consultation-form{border-radius:var(--radius);color:var(--heading);background:#fff;padding:clamp(1.5rem,4vw,2.5rem)}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-grid label{font-size:.88rem;font-weight:700}.form-grid label span{color:#a33}.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 #ccd2ce;border-radius:.65rem;margin-top:.35rem;padding:.75rem;display:block}.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}.contact-grid{grid-template-columns:repeat(2,1fr)}.contact-item{gap:1rem;display:flex}.contact-item>span{color:var(--secondary);font-size:1.5rem}.site-footer{color:#fff;background:#092f25}.footer-shell{grid-template-columns:1fr auto;gap:2rem;padding-block:3.5rem;display:grid}.footer-brand p,.footer-meta{color:#ffffffb3;margin-top:.8rem}.footer-nav,.footer-social{flex-wrap:wrap;gap:1.5rem;display:flex}.footer-nav a,.footer-social a{color:#fff}.footer-social{grid-column:2}.footer-meta{border-top:1px solid #ffffff26;grid-column:1/-1;padding-top:1.5rem}@media (width<=900px){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;-webkit-overflow-scrolling:touch;background:var(--bg);visibility:hidden;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;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}.hero-grid,.split,.teacher-grid,.schedule-grid,.consultation-grid{grid-template-columns:1fr}.teacher-portrait{aspect-ratio:auto;height:430px}.hero-art{min-height:330px}.hero-image{height:330px}.card-grid.four{grid-template-columns:repeat(2,1fr)}}@media (width<=620px){.brand-logo-header{height:2.6rem}.hero{padding-top:7.5rem}.hero h1{font-size:clamp(2.7rem,13vw,4rem)}.hero-actions .button{width:100%}.hero-art{min-height:280px}.hero-image{height:280px}.card-grid.four,.card-grid.two,.pricing-grid,.contact-grid,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.footer-shell{grid-template-columns:1fr}.footer-social,.footer-meta{grid-column:1}.course-card dl div{display:grid}dd{text-align:left}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}
