@charset "UTF-8";
:root{--paper:#fbfaf7;--cream:#f1eee6;--ink:#333c34;--muted:#62685d;--green:#4b5b40;--olive:#e8e8de;--line:#d6d8cb;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Yu Gothic",Meiryo,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.95;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a,button,input,textarea,summary{-webkit-tap-highlight-color:transparent}a:hover{text-decoration:none;color:var(--green)}button,input,textarea{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}img{display:block;width:100%;height:auto;object-fit:cover}p{margin:0 0 1.5rem}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.6;letter-spacing:.055em;margin:0 0 1.5rem}h1{font-size:clamp(2rem,3.5vw,3.6rem)}h2{font-size:clamp(1.65rem,2.5vw,2.55rem)}h3{font-size:1.3rem}ul{padding-left:1.3em}hr{border:0;border-top:1px solid var(--line);margin:2rem 0}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #a45e2d;outline-offset:5px}input:focus,textarea:focus{outline:2px solid var(--green);outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);overflow:hidden}.wrap{width:min(1180px,calc(100% - 112px));margin-inline:auto}.narrow{max-width:790px}.section{padding-block:104px}.soft{background:var(--cream)}.dark{background:var(--green);color:white}.eyebrow{font-family:Georgia,serif;font-size:.8rem;letter-spacing:.19em;font-weight:400;line-height:1.5;margin-bottom:1.3rem;color:var(--muted)}.small{font-size:.875rem}.lead{color:var(--muted);line-height:2.1}.split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.split>div{min-width:0}.section-copy{max-width:485px}.section-copy>p:not(.eyebrow){line-height:2.2}.site-header{height:98px;padding-inline:40px;display:flex;align-items:center;gap:26px;background:var(--paper);position:relative;z-index:10;border-bottom:1px solid #ecece4}.brand{white-space:nowrap;display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.2}.brand>span{font-family:Georgia,serif;font-size:1.85rem;letter-spacing:.045em}.brand b{font-weight:400;font-size:1.15rem;letter-spacing:.14em}.brand small{font-size:.63rem;letter-spacing:.19em;margin-top:.55rem}.desktop-nav{display:flex;gap:27px;margin-left:auto;align-items:center}.desktop-nav a{font-size:.875rem;white-space:nowrap;position:relative;padding:14px 0}.desktop-nav a[aria-current],.desktop-nav a:hover{color:var(--green)}.desktop-nav a[aria-current]:after{content:"";position:absolute;bottom:5px;left:0;right:0;height:1px;background:var(--green)}.header-book{background:var(--green);color:white;padding:15px 21px;font-size:.875rem;white-space:nowrap}.header-book:hover{color:#fff;background:#37482e}.header-book span{margin-left:16px}.menu-toggle,.mobile-nav,.mobile-cta{display:none}.skip{position:fixed;top:-90px;left:20px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;min-height:57px;padding:14px 26px;border:1px solid var(--green);background:var(--green);color:white;font-size:.94rem;text-align:left;line-height:1.7;transition:background .2s,color .2s}.button span{font-family:Arial,sans-serif;font-size:1.2rem}.button:hover{background:#35462f;color:white}.button.outline{background:transparent;color:var(--green)}.button.outline:hover{background:var(--green);color:white}.text-link{display:inline-block;font-size:.94rem;line-height:1.8;padding:8px 0;border-bottom:1px solid #828d77}.text-link span{margin-left:16px}.hero{display:grid;grid-template-columns:44% 56%;min-height:730px;height:min(850px,calc(100svh - 98px));background:var(--olive)}.hero-copy{padding:76px clamp(30px,5vw,88px) 48px;position:relative;display:flex;flex-direction:column;justify-content:center}.hero-copy>.eyebrow{font-size:.76rem;margin-bottom:23px}.hero-location{font-size:.875rem;letter-spacing:.08em;margin-bottom:25px}.hero h1{font-size:clamp(2.3rem,3.75vw,4.1rem);line-height:1.7;letter-spacing:.12em;margin-bottom:24px;white-space:nowrap}.hero-description{font-size:1rem;line-height:2.1;margin-bottom:26px}.hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:13px}.hero-actions .text-link{font-size:.875rem}.hero-photo{position:relative;overflow:hidden}.hero-photo>img{height:100%;object-position:50% 49%}.photo-caption{position:absolute;bottom:25px;left:32px;right:25px;color:#fff;font-family:Georgia,serif;font-size:.875rem;letter-spacing:.08em;text-shadow:0 1px 6px #222;z-index:1;margin:0}.hero-photo:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#0005)}.hero-note{position:absolute;right:38px;bottom:39px;text-align:right}.hero-note>span{font-family:Georgia,serif;font-size:.63rem;letter-spacing:.12em}.hero-note p{font-size:.81rem;margin:4px 0 0}.hero-note strong{font-family:Georgia,serif;font-weight:400;font-size:1.4rem;margin-left:8px}.quick-strip{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:87px;border-bottom:1px solid var(--line);font-size:.875rem}.quick-strip p{margin:0}.quick-strip a{white-space:nowrap}.quick-strip a span{margin-left:20px}.concept{padding-top:125px}.photo-stack{position:relative;padding-right:40px}.photo-stack>img{height:550px;object-position:50% 50%}.image-word{position:absolute;right:0;bottom:-25px;font-size:4.6rem;font-style:italic;font-family:Georgia,serif;color:var(--green);line-height:1}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:40px}.section-top h2,.section-top>p{margin-bottom:0}.section-top>p{font-size:.94rem;color:var(--muted)}.lesson-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.lesson-card{background:var(--paper)}.lesson-card>img{height:345px;object-position:50% 50%}.lesson-info{padding:34px 38px 38px}.lesson-info .eyebrow{margin-bottom:12px}.lesson-info h3{font-size:1.7rem;margin-bottom:15px}.lesson-info p{font-size:.94rem}.price-line{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:17px;margin-bottom:12px}.price-line strong{font-family:Georgia,serif;font-size:2rem;font-weight:400}.price-line small{font-family:var(--sans);font-size:1rem;margin-left:7px}.instructor-teaser .portrait{height:530px;object-position:center 40%}.instructor-name{font-family:var(--serif);font-size:1.4rem;margin-top:30px;margin-bottom:9px}.instructor-name span{font-family:Georgia,serif;font-size:.875rem;margin-left:20px}.schedule-band{display:flex;justify-content:space-between;gap:40px;align-items:center}.dark .eyebrow{color:#e4e9de}.dark .button.outline{border-color:#dfe6d8;color:white}.dark .button:hover{background:white;color:var(--green)}.schedule-band p:last-child{margin:0}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.service-card{position:relative;display:block}.service-card img{height:258px;transition:filter .25s}.service-card:hover img{filter:brightness(.9)}.service-card .eyebrow{display:block;margin-top:21px;margin-bottom:8px;font-size:.7rem}.service-card h3{font-size:1.1rem;letter-spacing:0;margin-right:10px}.service-arrow{position:absolute;right:0;bottom:0}.access-photo{height:450px}.detail-list{margin:24px 0 30px}.detail-list>div{display:grid;grid-template-columns:105px 1fr;gap:20px;border-bottom:1px solid var(--line);padding:15px 0}.detail-list dt{font-size:.875rem;color:var(--muted)}.detail-list dd{margin:0;overflow-wrap:anywhere}.booking-cta{padding:88px 0;text-align:center;background:var(--olive)}.booking-cta h2{font-size:clamp(1.65rem,2.2vw,2.3rem)}.booking-cta .button{min-width:285px}.site-footer{padding:70px 0 24px;background:#fbfaf7}.footer-top{display:grid;grid-template-columns:1fr 1.1fr .45fr;gap:70px}.footer-top p{font-size:.875rem;margin-top:23px;margin-bottom:12px}.footer-top p.small{margin-top:6px}.footer-top nav{display:grid;grid-template-columns:1fr 1fr;gap:13px 25px;align-content:start;font-size:.875rem}.footer-social{display:flex;flex-direction:column;gap:12px;font-size:.875rem}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:50px;padding-top:23px;font-size:.8rem}.breadcrumb{padding-top:27px;display:flex;gap:15px;font-size:.75rem;color:var(--muted)}.page-intro{padding-top:65px;padding-bottom:60px}.page-intro h1{margin-bottom:25px}.page-intro .lead{margin-bottom:0}.page-visual{height:460px;overflow:hidden}.page-visual img{height:100%;object-position:50% 47%}.price-panel{padding:40px;background:var(--olive)}.big-price{font-family:Georgia,serif;font-size:3.4rem;line-height:1.5;margin:20px 0}.big-price small{font-family:var(--sans);font-size:1rem;padding-left:12px}.faq{margin-top:40px;border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:1rem;padding:23px 0}.faq summary::-webkit-details-marker{display:none}.faq summary span{font-size:1.4rem}.faq details[open] summary span{transform:rotate(45deg)}.faq details p{color:var(--muted);padding-right:25px}.faq a,.policy a,.checkbox a{text-decoration:underline;text-underline-offset:4px}.profile{align-items:start;padding-bottom:40px}.profile .portrait{height:600px}.profile h2{font-size:2.7rem}.profile-motto{font-family:var(--serif);font-size:1.3rem}.qualifications{border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.qualifications h3{font-size:1rem;margin-bottom:10px}.qualifications ul{font-size:.94rem;line-height:2.1}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.gallery img{height:350px}.price-section{display:grid;grid-template-columns:1fr 1.6fr;gap:70px;padding-block:55px;border-top:1px solid var(--line)}.price-section:first-child{border-top:0}.price-table table{width:100%;border-collapse:collapse;text-align:left}.price-table th,.price-table td{padding:19px 12px;border-bottom:1px solid var(--line);font-size:1rem;font-weight:400}.price-table thead th{color:var(--muted);font-size:.875rem}.price-table td:last-child{text-align:right;white-space:nowrap;font-family:Georgia,var(--sans);font-size:1.1rem}.table-note{display:block;font-size:.8rem;color:var(--muted)}.price-table .text-link{margin-top:20px}.price-footnote{padding:35px 0 70px;font-size:.875rem}.anchor-nav{display:flex;gap:10px;flex-wrap:wrap}.anchor-nav a{border:1px solid var(--line);font-size:.875rem;padding:9px 16px}.service-detail>img{height:490px}.service-detail p{line-height:2.1}.service-price{font-weight:600}.schedule-content{padding-bottom:50px}.schedule-content>img{height:560px}.steps{list-style:none;counter-reset:step;padding:0;margin-top:45px}.steps li{counter-increment:step;position:relative;padding:0 0 25px 67px;border-bottom:1px solid var(--line);margin-top:25px}.steps li:before{content:"0"counter(step);position:absolute;left:0;top:0;font-family:Georgia,serif;font-size:1.8rem;color:var(--green)}.steps h3{margin-bottom:10px}.steps p{margin:0}.contact-options{display:grid;grid-template-columns:1fr 1fr;gap:50px}.contact-options article{padding:40px;border:1px solid var(--line)}.contact-options article.line-contact{background:var(--olive);border-color:transparent}.contact-options h2{font-size:1.6rem}.phone{font-family:Georgia,serif;font-size:clamp(1.7rem,2.3vw,2.3rem);white-space:nowrap}form label:not(.checkbox){display:block;margin:27px 0 9px;font-size:.94rem}.required{font-size:.75rem;margin-left:14px;border:1px solid var(--green);padding:2px 7px}input:not([type=checkbox]),textarea{width:100%;padding:13px 16px;border:1px solid #979e8e;border-radius:0;background:white;color:var(--ink);font-size:1rem}textarea{resize:vertical}.checkbox{display:flex;gap:14px;align-items:flex-start;margin:28px 0}.checkbox input{width:21px;height:21px;flex-shrink:0;margin-top:5px;accent-color:var(--green)}.checkbox span{font-size:.94rem}.form-buttons{display:flex;gap:15px;flex-wrap:wrap}#confirm-message{white-space:pre-wrap}#form-status:not(:empty){padding:20px;border:1px solid var(--line);margin-top:25px;background:var(--cream)}.form-buttons button:disabled{opacity:.6;cursor:wait}.access-intro>img{height:530px}.sub-name{display:block;font-family:var(--sans);font-size:.875rem;letter-spacing:.04em;margin-top:5px}.map{height:460px;background:var(--cream)}.map iframe{width:100%;height:100%;border:0}.entrance-section{padding-bottom:100px}.entrance-section>img{height:380px}.policy{padding-bottom:100px}.policy h2{font-size:1.5rem;margin-top:40px}.policy p{line-height:2.1}
@media(min-width:1500px){.hero-copy{padding-left:max(6vw,calc((100vw - 1300px)/2))}.hero h1{font-size:4rem}}
@media(max-width:1150px){.site-header{padding-inline:24px;gap:20px}.desktop-nav{gap:18px}.desktop-nav a{font-size:.8rem}.brand>span{font-size:1.6rem}.brand b{font-size:1rem}.header-book{padding:14px 15px}.wrap{width:calc(100% - 72px)}.split{gap:50px}.hero-copy{padding:50px 35px}.hero h1{font-size:3.4vw}.hero-note{display:none}.hero{min-height:680px}.service-grid{gap:18px}.service-card img{height:220px}.footer-top{gap:35px}.service-card h3{font-size:1rem}}
@media(max-width:940px){.desktop-nav{display:none}.header-book{margin-left:auto}.menu-toggle{display:flex;gap:15px;align-items:center;border:0;background:transparent;color:var(--ink);font-size:.875rem;padding:14px 0 14px 15px}.mobile-nav:not([hidden]){display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--paper);padding:16px 36px 30px;box-shadow:0 15px 20px #0001;max-height:calc(100svh - 90px);overflow:auto}.mobile-nav a{padding:11px 0;border-bottom:1px solid var(--line);font-size:.94rem}.hero{min-height:620px;grid-template-columns:46% 54%;height:auto}.hero h1{font-size:3.5vw}.hero-copy{padding:45px 30px}.hero-copy>.eyebrow{font-size:.65rem}.hero-location{font-size:.75rem}.hero-description{font-size:.9rem}.hero-actions .button{font-size:.85rem;padding:12px 17px;gap:18px}.photo-caption{left:20px;font-size:.75rem}.section{padding-block:75px}.concept{padding-top:80px}.photo-stack>img{height:470px}.section-top{gap:25px}.lesson-card>img{height:280px}.lesson-info{padding:27px}.lesson-grid{gap:28px}.service-grid{grid-template-columns:repeat(2,1fr);gap:30px}.service-card img{height:300px}.schedule-band{align-items:flex-start;flex-direction:column}.instructor-teaser .portrait{height:450px}.footer-top{grid-template-columns:1fr 1fr}.footer-social{grid-column:2;flex-direction:row;gap:25px}.price-section{gap:35px;grid-template-columns:1fr 1.5fr}.price-section h2{font-size:1.6rem}.contact-options{gap:25px}.contact-options article{padding:27px}.phone{font-size:1.8rem}.gallery img{height:260px}.profile .portrait{height:500px}.contact-options .button{padding:14px 18px}}
@media(max-width:700px){html{scroll-padding-top:25px}.wrap{width:calc(100% - 44px)}.site-header{height:80px;padding-inline:22px;gap:12px}.brand>span{font-size:1.55rem}.brand b{font-size:.9rem}.brand small{font-size:.56rem;margin-top:5px}.header-book{display:none}.menu-toggle{margin-left:auto;font-size:.75rem;gap:12px}.menu-toggle span{font-size:1.2rem}.mobile-nav:not([hidden]){padding-inline:22px}.hero{position:relative;display:flex;flex-direction:column;min-height:0}.hero-copy{padding:37px 27px 35px;z-index:1}.hero-copy>.eyebrow{font-size:.63rem;margin-bottom:17px}.hero-location{font-size:.75rem;margin-bottom:13px}.hero h1{font-size:clamp(2rem,8vw,3.1rem);line-height:1.6;margin-bottom:18px;letter-spacing:.1em}.hero-description{font-size:.875rem;line-height:1.95;margin-bottom:22px}.hero-actions{flex-direction:row;align-items:center;gap:19px;flex-wrap:wrap}.hero-actions .button{font-size:.85rem;padding:13px 17px;min-height:51px}.hero-actions .text-link{font-size:.75rem}.hero-actions .text-link span{margin-left:7px}.hero-photo{height:440px}.hero-photo>img{object-position:50% 46%}.photo-caption{bottom:19px;font-size:.72rem}.quick-strip{display:block;padding-block:22px;font-size:.8rem}.quick-strip p{margin-bottom:9px}.quick-strip a{display:flex;justify-content:space-between}.split{grid-template-columns:1fr;gap:35px}.section{padding-block:65px}.concept{padding-top:65px}.photo-stack{padding-right:27px;margin-bottom:18px}.photo-stack>img{height:440px}.image-word{font-size:3.8rem}.section-copy{max-width:none}h2{font-size:1.75rem;line-height:1.75}.eyebrow{font-size:.75rem;margin-bottom:15px}.section-copy>p:not(.eyebrow){line-height:2.1}.section-top{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:28px}.section-top>p{font-size:.875rem}.lesson-grid{grid-template-columns:1fr;gap:30px}.lesson-card>img{height:320px}.lesson-info{padding:26px}.lesson-info h3{font-size:1.5rem}.instructor-teaser .section-copy{order:1}.instructor-teaser .portrait{height:460px}.instructor-name span{display:block;margin-left:0}.schedule-band{gap:28px}.schedule-band .button{font-size:.875rem}.service-grid{gap:25px 16px}.service-card img{height:210px}.service-card .eyebrow{font-size:.61rem;letter-spacing:.08em;margin-top:14px}.service-card h3{font-family:var(--sans);font-size:.875rem;line-height:1.8;margin-bottom:12px}.service-arrow{display:none}.access-photo{height:360px}.detail-list>div{grid-template-columns:88px 1fr;gap:15px}.detail-list dd{font-size:.94rem}.booking-cta{padding:65px 0}.booking-cta h2{font-size:1.6rem}.booking-cta p:not(.eyebrow){font-size:.875rem}.booking-cta .button{min-width:0;font-size:.875rem}.site-footer{padding:50px 0 95px}.footer-top{grid-template-columns:1fr;gap:30px}.footer-top nav{gap:13px 15px;font-size:.8rem}.footer-social{grid-column:auto;font-size:.8rem}.footer-bottom{margin-top:33px;font-size:.75rem}.mobile-cta{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1.2fr;z-index:20;box-shadow:0 -2px 12px #0001;padding-bottom:env(safe-area-inset-bottom);background:var(--paper)}.mobile-cta a{display:flex;align-items:center;justify-content:center;min-height:58px;font-size:.875rem;background:var(--paper)}.mobile-cta a:last-child{background:var(--green);color:#fff}.breadcrumb{padding-top:20px;font-size:.7rem;gap:11px}.page-intro{padding-top:42px;padding-bottom:37px}.page-intro h1{font-size:2rem;line-height:1.75}.page-intro .lead{font-size:.94rem}.page-visual{height:340px}.price-panel{padding:28px}.big-price{font-size:2.8rem}.faq summary{font-size:.94rem;padding-block:20px}.profile .portrait{height:460px}.profile h2{font-size:2rem}.profile{padding-bottom:0}.gallery{grid-template-columns:repeat(2,1fr);gap:15px}.gallery img{height:245px}.price-section{grid-template-columns:1fr;gap:5px;padding-block:37px}.price-section h2{font-size:1.6rem}.price-table th,.price-table td{padding:16px 7px;font-size:.875rem}.price-table td:last-child{font-size:1rem}.price-table thead th{font-size:.8rem}.table-note{font-size:.75rem}.price-footnote{padding-block:25px 55px}.anchor-nav{gap:8px}.anchor-nav a{font-size:.75rem;padding:8px 10px}.service-detail>img{height:390px}.service-detail p{line-height:2.1}.service-price{font-size:.94rem}.schedule-content>img{height:420px}.schedule-content{padding-bottom:0}.steps li{padding-left:52px}.steps h3{font-size:1.15rem}.steps p{font-size:.94rem}.contact-options{grid-template-columns:1fr;gap:22px}.contact-options article{padding:27px}.phone{font-size:2rem}.form-buttons .button{font-size:.875rem;padding:13px 17px}.access-intro>img{height:360px}.map{height:340px}.entrance-section{padding-bottom:65px}.entrance-section>img{height:310px}.policy{padding-bottom:65px}.policy h2{font-size:1.35rem}.policy p{font-size:.94rem}}
@media(max-width:370px){.hero-copy{padding-inline:22px}.hero-actions{gap:10px}.hero-actions .text-link{font-size:.7rem}.hero-photo{height:380px}.service-card img{height:170px}.brand>span{font-size:1.4rem}.gallery img{height:210px}.phone{font-size:1.75rem}.button{gap:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
