@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root{--ink:#193e31;--green:#174b3b;--paper:#fffef9;--muted:#606b62;--line:#d6ddd4;--lime:#dce990;--soft:#f1f4ec;--serif:'Noto Serif JP','Yu Mincho',serif;--sans:'Noto Sans JP','Yu Gothic',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.85}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #af721c;outline-offset:5px}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500}h2{font-family:var(--serif);font-size:clamp(1.7rem,2.4vw,2.4rem);line-height:1.7;letter-spacing:.04em}.section-wrap{width:min(1240px,88%);margin-inline:auto}.site-header{width:min(1360px,92%);height:114px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:inline-flex;flex-direction:column;line-height:1;flex-shrink:0}.brand-small{font-size:.7rem;letter-spacing:.14em;margin-bottom:6px}.brand-name{font-family:Georgia,serif;font-size:2.75rem;letter-spacing:-.055em}.brand-dot{color:#96b449}.site-header nav{display:flex;gap:30px;font-size:.86rem;font-weight:500}.site-header nav a{padding-block:10px}.site-header nav a:hover{color:#6a852f}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;border-radius:99px;background:var(--green);color:white;min-height:54px;padding:12px 24px;font-size:.9rem;font-weight:500;transition:background .2s,transform .2s}.button:hover{background:#2e654e;transform:translateY(-2px)}.header-book{font-size:.82rem;gap:10px;min-height:48px}.hero{position:relative;display:grid;grid-template-columns:1.03fr 1fr;align-items:center;min-height:650px;padding:42px 0 76px;gap:46px}.eyebrow{font-family:Arial,sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.19em;margin-bottom:27px}.hero h1{font-family:var(--serif);font-size:clamp(2.1rem,3.3vw,3.25rem);line-height:1.75;letter-spacing:.055em;white-space:nowrap;margin-bottom:27px}.underline{background:linear-gradient(transparent 79%,var(--lime) 79%,var(--lime) 94%,transparent 94%)}.hero-description{font-size:.98rem;line-height:2.15;color:var(--muted);margin-bottom:30px}.hero .primary{min-width:233px;justify-content:space-between}.hero-meta{display:flex;align-items:center;gap:15px;font-size:.78rem;color:var(--muted);margin-top:27px}.hero-meta span+span{border-left:1px solid #bfc9bd;padding-left:15px}.hero-visual{position:relative;aspect-ratio:1.02;min-width:0;border-radius:48% 48% 8px 8px;background:#e5ecd8;overflow:hidden}.hero-note{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:35px}.note-label{font-size:.9rem;letter-spacing:.1em}.hero-note p{font-family:var(--serif);font-size:2.2rem;line-height:1.8;margin:22px 0}.note-bottom{font-size:.6rem;letter-spacing:.12em}.scroll-note{position:absolute;bottom:18px;left:0;display:flex;gap:18px;font:10px Arial,sans-serif;letter-spacing:.15em}.scroll-note span{font-size:18px}.about{display:grid;grid-template-columns:1fr 1.08fr;gap:80px;padding:110px 0 103px;border-top:1px solid var(--line)}.about .eyebrow{margin-bottom:20px}.about h2{margin-bottom:0}.about-copy{padding-top:39px;font-size:.94rem;line-height:2.1;color:#46594d}.about-copy p{margin-bottom:21px}.about-foot{padding-top:17px;border-top:1px solid var(--line);font-size:.8rem}.services{background:var(--soft);padding:91px 0 94px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:48px}.section-heading h2{margin:0}.section-heading .eyebrow{margin-bottom:14px}.section-aside{font-size:.82rem;white-space:nowrap;padding-bottom:9px;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.service{border-top:1px solid #a8b9a5;padding-top:27px}.service-no{font:11px Arial,sans-serif;letter-spacing:.12em;color:#617356}.service h3{font-family:var(--serif);font-size:1.5rem;margin:22px 0 16px}.service p{font-size:.9rem;line-height:2;color:#506152;margin-bottom:23px}.service a{font-size:.85rem;display:inline-flex;align-items:center;gap:42px;border-bottom:1px solid #a1b698;padding-bottom:6px}.service a:hover{color:#738527}.site-footer{display:flex;align-items:center;justify-content:space-between;padding-block:50px;gap:30px}.site-footer p{font-size:.8rem;margin:0;color:var(--muted)}.site-footer small{font:11px Arial,sans-serif;letter-spacing:.04em;color:var(--muted)}.skip-link{position:absolute;left:20px;top:-70px;background:var(--green);color:white;padding:10px 20px;z-index:20}.skip-link:focus{top:10px}
.hero-photo{width:100%;height:100%;object-fit:cover;object-position:57% center}.photo-caption{position:absolute;inset:auto 0 0;background:linear-gradient(transparent,rgba(16,46,28,.62));color:white;padding:64px 25px 20px;display:flex;flex-direction:column;gap:5px}.photo-caption span:first-child{font:10px Arial,sans-serif;letter-spacing:.17em}.photo-caption span:last-child{font-size:.84rem;letter-spacing:.09em}
@media(min-width:1500px){.hero{min-height:710px}.hero h1{font-size:3.5rem}}
@media(max-width:1050px){.site-header nav{gap:18px;font-size:.78rem}.header-book{font-size:.75rem;padding:12px 17px}.hero{gap:28px;min-height:560px}.hero h1{font-size:clamp(1.85rem,3.5vw,2.7rem)}.about{gap:45px}.service-grid{gap:25px}.section-aside{white-space:normal}}
@media(max-width:760px){html{scroll-padding-top:20px}.site-header{height:92px;width:88%;gap:15px}.site-header nav{display:none}.brand-name{font-size:2.4rem}.brand-small{font-size:.62rem}.header-book{font-size:.72rem;min-height:44px;gap:8px;padding:10px 14px}.hero{grid-template-columns:1fr;padding:30px 0 60px;gap:32px;min-height:0}.hero .eyebrow{font-size:.65rem;margin-bottom:22px}.hero h1{font-size:clamp(1.85rem,6.7vw,2.65rem);line-height:1.75;margin-bottom:20px}.hero-description{font-size:.9rem;line-height:2}.hero-meta{margin-top:22px}.hero-visual{width:100%;aspect-ratio:1.08;border-radius:46% 46% 7px 7px}.scroll-note{bottom:13px}.about{grid-template-columns:1fr;gap:25px;padding:66px 0}.about h2{font-size:1.7rem}.about-copy{padding-top:0;font-size:.9rem}.services{padding:62px 0}.section-heading{display:block;margin-bottom:31px}.section-heading h2{font-size:1.65rem}.section-aside{display:block;margin-top:15px}.service-grid{grid-template-columns:1fr;gap:37px}.service{padding-top:22px}.service h3{margin-top:14px}.service p{margin-bottom:16px}.site-footer{flex-wrap:wrap;padding-block:32px;gap:23px}.site-footer p{font-size:.74rem}.site-footer small{width:100%}}
.prices{padding:100px 0 65px}.table-caption{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-top:52px;margin-bottom:21px}.table-caption h3{font-size:1.17rem;margin:0}.table-caption>span{font-size:.78rem;color:var(--muted)}.price-table-scroll{overflow-x:auto;scrollbar-color:#84977d #eef1e7}.price-table{width:100%;border-collapse:collapse;text-align:center;min-width:620px;font-variant-numeric:tabular-nums}.price-table thead{background:var(--green);color:white}.price-table thead th{font-size:.86rem;font-weight:500;padding:20px 14px;line-height:1.6}.price-table thead th:first-child{text-align:left;padding-left:25px;width:31%}.price-table thead th span{display:block;font-size:.75rem;opacity:.85;font-weight:400;margin-top:4px}.price-table tbody tr{border-bottom:1px solid var(--line)}.price-table tbody tr:nth-child(even){background:#f5f6ee}.price-table tbody th{font-weight:500;text-align:left;font-size:.9rem;padding:20px 25px}.price-table small{display:block;font-size:.76rem;color:var(--muted);font-weight:400;margin-top:2px}.price-table td{font-family:Arial,sans-serif;font-size:1.35rem;padding:16px 12px}.price-table td>span{font-family:var(--sans);font-size:.78rem;margin-left:4px}.price-table .consult-cell{font-family:var(--sans);font-size:.85rem}.price-notice{font-size:.8rem;color:var(--muted);margin-top:16px}.mobile-table-hint{display:none}.cat-menu{display:grid;grid-template-columns:1fr 1.3fr;gap:65px;background:#f3f1e6;border-radius:5px;padding:40px 45px;margin-top:43px}.cat-menu .eyebrow{font-size:.67rem;margin-bottom:13px;color:#727751}.cat-menu h3{font-family:var(--serif);font-size:1.5rem;margin-bottom:13px}.cat-menu p{font-size:.84rem;color:#58604e;margin-bottom:0;line-height:1.9}.cat-menu strong{font-weight:500}.cat-prices{margin:0;align-self:center}.cat-prices>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #d8dbc7}.cat-prices>div:last-child{border-bottom:0}.cat-prices dt{font-size:.85rem}.cat-prices dd{margin:0;font-family:Arial,sans-serif;font-size:1.4rem;white-space:nowrap}.cat-prices dd span{font-family:var(--sans);font-size:.76rem;margin-left:4px}.other-services{display:grid;grid-template-columns:1fr 1fr;gap:44px;padding:35px 0 100px}.detail-panel{padding:32px 0 0;border-top:1px solid #9daf94}.detail-panel .eyebrow{margin-bottom:20px}.detail-title{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.detail-title h2{font-size:1.72rem;letter-spacing:.02em;margin-bottom:13px}.tag{border:1px solid #b8c5ac;padding:3px 10px;border-radius:5px;font-size:.7rem;margin-bottom:13px}.detail-intro{color:#566653;font-size:.88rem;line-height:2}.training-list{list-style:none;margin:24px 0;padding:0}.training-list li{display:flex;flex-direction:column;border-left:2px solid #bacd9d;padding-left:15px;margin-bottom:15px;font-size:.85rem}.training-list strong{font-weight:500}.training-list span{font-size:.8rem;color:var(--muted);margin-top:3px}.lesson-price{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;gap:20px}.lesson-price>span{font-size:.85rem}.lesson-price p{font:2.15rem Arial,sans-serif;margin:0}.lesson-price p span{font-family:var(--sans);font-size:.8rem;margin-left:7px}.free-consult{font-size:.87rem;background:var(--lime);padding:9px 16px;text-align:center;margin:23px 0 0;border-radius:3px}.daycare-prices{margin:30px 0}.daycare-prices>div{padding:24px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.daycare-prices>div:last-child{border-bottom:1px solid var(--line)}.daycare-prices dt{font-size:1rem}.daycare-prices dt span{display:block;font-size:.78rem;color:var(--muted);margin-top:5px}.daycare-prices dd{font:2rem Arial,sans-serif;margin:0;text-align:right}.daycare-prices dd span{font-family:var(--sans);font-size:.78rem;display:block;margin-top:6px}.detail-note{font-size:.78rem;color:var(--muted)}.access{background:#edf1e7;padding:85px 0}.access-inner{display:grid;grid-template-columns:1fr 1.18fr;gap:70px}.access-title>p:not(.eyebrow){font-size:.9rem;margin-top:24px}.map-link{display:inline-flex;gap:28px;border-bottom:1px solid #99ab90;padding-bottom:5px;font-size:.84rem;margin-top:10px}.map-link:hover{color:#638039}.shop-details{margin:6px 0 0}.shop-details>div{display:grid;grid-template-columns:105px 1fr;gap:15px;padding:17px 0;border-bottom:1px solid #ced7c7}.shop-details>div:first-child{padding-top:0}.shop-details dt{font-size:.85rem;color:var(--muted)}.shop-details dd{margin:0;font-size:.9rem}.shop-details dd>span{display:block;font-size:.78rem;color:#65725e;margin-top:5px}.shop-details a{text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.shop-details .external-arrow{display:inline;margin-left:5px}.contact{padding:92px 0 65px;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.contact .eyebrow{margin-bottom:20px}.contact h2{font-size:1.62rem;margin-bottom:16px}.contact p{font-size:.84rem;color:var(--muted);line-height:2}.contact-hours{display:block;font-size:.79rem;letter-spacing:.05em;margin-bottom:9px}.contact-phone>a{font:clamp(1.75rem,3vw,2.7rem) Arial,sans-serif;letter-spacing:-.02em;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--green);padding-bottom:16px;white-space:nowrap}.contact-phone>a span{border-radius:50%;background:var(--lime);width:44px;height:44px;display:flex;justify-content:center;align-items:center;font-size:24px;flex-shrink:0}.contact-phone p{font-size:.75rem;line-height:1.9;margin:14px 0 0}.source-note{font-size:.72rem;color:#737b6f;margin-bottom:22px;line-height:1.8}.site-footer{border-top:1px solid var(--line)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1050px){.cat-menu{gap:35px;padding:35px}.other-services{gap:35px}.detail-title h2{font-size:1.5rem}.access-inner{gap:45px}.contact{gap:35px}.contact h2{font-size:1.4rem}}
@media(max-width:760px){.prices{padding:65px 0 25px}.table-caption{display:block;margin-top:30px;margin-bottom:14px}.table-caption>span{display:block;margin-top:6px}.mobile-table-hint{display:block;font-size:.74rem;color:var(--muted);margin:12px 0 8px}.price-table thead th{padding:17px 10px}.price-table tbody th{padding:16px 18px}.price-table td{font-size:1.2rem}.price-table small{font-size:.76rem}.cat-menu{grid-template-columns:1fr;gap:24px;margin-top:32px;padding:27px 24px}.cat-menu h3{font-size:1.4rem}.cat-prices dt{font-size:.8rem}.cat-prices dd{font-size:1.3rem}.other-services{grid-template-columns:1fr;gap:47px;padding:25px 0 66px}.detail-panel{padding-top:26px}.detail-title h2{font-size:1.6rem}.lesson-price p{font-size:2rem}.access{padding:64px 0}.access-inner{grid-template-columns:1fr;gap:38px}.access-title h2{font-size:1.8rem}.shop-details>div{grid-template-columns:77px 1fr;gap:10px}.shop-details dd{font-size:.84rem}.shop-details dt{font-size:.78rem}.shop-details dd>span{font-size:.76rem}.contact{grid-template-columns:1fr;gap:24px;padding:62px 0 37px}.contact h2{font-size:1.45rem}.contact-phone>a{font-size:clamp(1.6rem,7.1vw,2.6rem)}.source-note{font-size:.75rem}.site-footer p{max-width:190px}}
@media(max-width:370px){.header-book{font-size:.65rem;padding:10px}.site-header{width:90%}.hero h1{font-size:1.72rem}.section-wrap{width:90%}.contact-phone>a span{width:37px;height:37px}.cat-menu{padding:25px 17px}.detail-title h2{font-size:1.45rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
/* Readable type at every viewport. */
.eyebrow,.hero .eyebrow,.cat-menu .eyebrow,.service-no,.scroll-note,.photo-caption span:first-child,.brand-small,.source-note,.site-footer small{font-size:.75rem}
.hero-description,.about-copy,.service p,.detail-intro,.contact>div>p{font-size:1rem}
.header-book,.site-header nav,.hero-meta,.section-aside,.about-foot,.service a,.table-caption>span,.price-notice,.cat-menu p,.cat-prices dt,.training-list li,.training-list span,.lesson-price>span,.free-consult,.detail-note,.map-link,.shop-details dt,.shop-details dd,.shop-details dd>span,.contact-hours,.tag,.contact-phone p{font-size:.875rem}
.price-table thead th,.price-table tbody th,.price-table .consult-cell,.daycare-prices dt{font-size:.875rem}
@media(max-width:1050px) and (min-width:761px){.site-header nav{gap:14px}.header-book{padding-inline:15px;font-size:.75rem}.site-header{gap:20px}.site-header nav{font-size:.75rem}}
@media(max-width:760px){.header-book{font-size:.75rem}.about-copy,.service p,.detail-intro,.contact>div>p{font-size:1rem}.hero-description{font-size:1rem}.shop-details>div{grid-template-columns:77px minmax(0,1fr)}}
@media(max-width:370px){.header-book{padding-inline:9px;font-size:.75rem}.brand-name{font-size:2.15rem}}
