
:root{--ink:#303e3b;--green:#2e4845;--paper:#fcfaf5;--gold:#99743c;--line:#e1dfd5;--heart:#C96F7A;--body:#6F8F55;--words:#5F91B0;--family:#CA8D32}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;font-size:16px;line-height:1.95}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #CA8D32;outline-offset:4px}h1,h2,h3,.serif{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-weight:500}p{margin:0 0 20px}h1{font-size:clamp(32px,3.8vw,51px);line-height:1.65;letter-spacing:.03em;margin:0 0 25px}h2{font-size:32px;line-height:1.7;margin:0 0 25px}h3{font-size:24px;line-height:1.7;margin:0 0 16px}.wrap{max-width:1180px;padding:0 40px;margin:auto}header{background:var(--paper);border-bottom:1px solid var(--line)}.header{max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:23px 40px;gap:25px}.logo{font-family:'Yu Mincho',serif;font-size:29px;letter-spacing:.12em;white-space:nowrap}.moon{display:inline-block;width:23px;height:23px;border-radius:50%;background:#dcc08b;vertical-align:middle;margin-right:12px}.tag{display:block;font:12px/1.7 sans-serif;letter-spacing:.05em;margin-left:35px}nav{display:flex;align-items:center;gap:23px;font-size:14px}nav a{padding:7px 0;white-space:nowrap}nav a[aria-current]{border-bottom:2px solid var(--gold)}nav .nav-cta{padding:9px 16px;border:1px solid var(--green)}a:hover{color:var(--gold)}.hero{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;max-width:1400px;margin:auto;min-height:580px}.hero-copy{padding:55px 45px 55px max(40px,calc((100vw - 1180px)/2 + 40px))}.eyebrow{font-size:14px;color:var(--gold);letter-spacing:.08em;margin-bottom:23px}.hero .photo{height:580px;margin:0}.photo{position:relative;margin:0;overflow:hidden;background:#eee9dd}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo figcaption{position:absolute;bottom:10px;right:12px;background:rgba(255,255,255,.9);color:#46534b;padding:2px 8px;font-size:12px}.buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{display:inline-block;padding:13px 21px;background:var(--green);color:white;border:1px solid var(--green);font-size:15px;line-height:1.8;text-align:center}.button:hover{background:#41645f;color:white}.button.secondary{background:transparent;color:var(--green)}.button.secondary:hover{background:#eef0e8}.section{padding:78px 0}.label{font-size:14px;color:var(--gold);letter-spacing:.12em;margin-bottom:12px}.center{text-align:center}.muted{color:#626b65}.small{font-size:14px}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.split .photo{height:430px}.green{background:var(--green);color:#fff}.green .label{color:#dec28a}.green p{color:#edf0e9}.quote{font-size:30px;line-height:1.8}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.card{border-top:3px solid var(--accent,var(--gold));padding:22px 0}.card h3{color:var(--ink)}.num{font-family:Georgia,serif;font-size:20px;color:var(--gold);margin-bottom:15px}.card .photo{height:240px;margin-bottom:24px}.card p{margin-bottom:15px}.family{margin-top:32px;padding:25px 30px;background:#f7efdf;border-left:4px solid var(--family);display:grid;grid-template-columns:.7fr 1.3fr;gap:25px;align-items:center}.family h3,.family p{margin:0}.foundation{border:1px solid var(--line);background:white;padding:30px;max-width:850px;margin:auto}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.pillar{background:var(--paper);text-align:center;border-top:4px solid var(--accent);padding:22px 12px}.pillar strong{font-family:'Yu Mincho',serif;font-size:30px;font-weight:500;display:block;color:var(--ink)}.pillar span{font-size:14px}.family-base{text-align:center;background:#f6ecd7;border-bottom:4px solid var(--family);padding:19px;margin-top:18px}.family-base small{display:block;font-size:14px}.page-heading{padding:48px 0 40px}.page-heading h1{margin-bottom:15px}.breadcrumb{font-size:14px;color:#67716a;margin-bottom:30px}.widephoto{height:420px}.flow{list-style:none;padding:0;margin:0}.flow li{display:grid;grid-template-columns:40px 1fr;gap:20px;padding:21px 0;border-bottom:1px solid var(--line)}.flow li:first-child{padding-top:0}.flow strong{font-size:19px;font-weight:500}.flow p{font-size:15px;margin:7px 0 0;color:#616b64}.tint{background:#f0f1e7}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.detail{padding:27px;background:var(--paper)}.detail h3{font-size:21px}.detail p{margin:0}.info{margin-top:27px;padding:22px 25px;background:#f4efe4;border-left:3px solid var(--gold)}.info p:last-child{margin-bottom:0}.teacher-photo{height:440px;border:1px solid var(--line);background:#eeeee4;display:flex;align-items:center;justify-content:center;text-align:center;color:#667168}.teacher-photo img{width:100%;height:100%;object-fit:cover}.teacher-photo .moon{width:60px;height:60px;margin:0 0 20px}.teacher-name{font-size:30px;font-family:'Yu Mincho',serif;margin:0 0 15px}.specs{display:flex;gap:20px;flex-wrap:wrap;margin:23px 0}.spec{border:1px solid var(--line);padding:20px 28px;text-align:center;background:white}.spec strong{display:block;font-size:27px;font-family:'Yu Mincho',serif;font-weight:500}.spec span{font-size:14px}details{padding:19px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer;font-size:17px}details p{padding-top:15px;margin:0;font-size:16px}.cta{padding:65px 0;background:#eaece0}.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:30px}.cta h2{font-size:29px;margin-bottom:12px}.cta p{margin:0}.cta .buttons{margin:0}.reservation{display:block;margin-top:27px}.reservation.disabled{background:#dedfd6;color:#515b54;border-color:#c7cbbf;cursor:default}.booking-note{font-size:14px;margin:15px 0 0}.event-list{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.event{border:1px solid var(--line);padding:24px;background:white}.event h3{font-size:22px}.event p{font-size:15px}.event-badge{font-size:14px;color:#796336}.footer{padding:40px 0}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.footer nav{flex-wrap:wrap;gap:12px 22px;justify-content:flex-end}.footer .belief{font-size:14px;margin-top:18px}.asset-note{font-size:12px;color:#637067;border-top:1px solid var(--line);padding-top:18px;margin-top:25px}.page-bottom{font-size:14px;color:#66716b;text-align:center;padding:20px;border-top:1px solid var(--line)}[hidden]{display:none!important}@media(max-width:1050px){.header{padding:20px 25px}nav{gap:13px;flex-wrap:wrap;justify-content:flex-end}.hero-copy{padding:40px 30px}.hero{min-height:540px}.hero .photo{height:540px}.split{gap:35px}.wrap{padding:0 30px}h1{font-size:39px}}@media(max-width:760px){.header{display:block;padding:18px 22px}.logo{font-size:25px}.header nav{justify-content:flex-start;margin-top:15px;gap:7px 17px}.header nav a{font-size:14px}.header .nav-cta{padding:4px 10px}.hero{display:flex;flex-direction:column}.hero-copy{width:100%;padding:35px 23px 40px}.hero .photo{width:100%;height:340px}.eyebrow{margin-bottom:18px}h1{font-size:34px}h2{font-size:27px}.wrap{padding:0 23px}.section{padding:50px 0}.split{grid-template-columns:1fr;gap:28px}.split .photo{height:310px}.cards{grid-template-columns:1fr;gap:24px}.cards .card .photo{height:290px}.family{display:block;padding:23px}.family h3{margin-bottom:14px}.quote{font-size:27px}.foundation{padding:20px 15px}.pillars{gap:8px}.pillar{padding:18px 6px}.pillar span{font-size:14px;line-height:1.8;display:block}.family-base{padding:17px 8px}.page-heading{padding:30px 0}.widephoto{height:300px}.details-grid{grid-template-columns:1fr}.teacher-photo{height:350px}.cta{padding:45px 0}.cta-inner{display:block}.cta .buttons{margin-top:23px}.specs{gap:10px}.spec{flex:1;padding:15px 12px}.event-list{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:20px}.footer nav{justify-content:flex-start}.buttons .button{padding:12px 17px}.breadcrumb{margin-bottom:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Responsive refinements: original palette and composition retained. */
h1,h2,h3{text-wrap:balance;overflow-wrap:break-word}button,summary{-webkit-tap-highlight-color:transparent}.mobile-menu{display:none}.headline-line{display:block}.hero h1 .headline-line{white-space:nowrap}.hero-copy{padding:55px 40px}.hero h1{font-size:clamp(30px,3.1vw,44px)}.photo img{object-fit:contain}.photo{background:#f1eee5}.booking-status{padding:20px 22px;background:#f2eee3;border-left:3px solid var(--gold);margin-top:27px}.booking-status p{margin:0}.reservation[hidden]{display:none}.info{overflow-wrap:break-word}.button{min-height:46px}.mobile-menu summary{min-height:44px;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}
@media(max-width:1050px) and (min-width:761px){.hero-copy{padding:40px 30px}.hero h1{font-size:clamp(29px,3.5vw,38px)}}
@media(max-width:760px){.header{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}.header>.desktop-nav{display:none}.mobile-menu{display:block;border:0;padding:0;flex:0 1 auto}.mobile-menu summary{padding:8px 11px;font-size:15px;color:var(--green);border:1px solid #cbd1c3;cursor:pointer;display:flex;align-items:center;gap:8px}.mobile-menu[open]{flex-basis:100%;order:2}.mobile-menu[open] summary{width:max-content;margin-left:auto}.mobile-menu nav{display:grid;grid-template-columns:1fr;gap:0;margin:12px 0 0;background:#f3f1e7;border:1px solid var(--line);padding:8px 16px}.mobile-menu nav a{padding:12px 4px;white-space:normal;border-bottom:1px solid var(--line);font-size:16px}.mobile-menu nav a:last-child{border-bottom:0}.mobile-menu nav .nav-cta{border:0;padding:12px 4px}.hero-copy{padding:35px 23px 40px}.hero h1{font-size:clamp(27px,7.8vw,34px);letter-spacing:.015em}.page-heading h1{font-size:clamp(27px,7.7vw,32px);letter-spacing:.015em}.pillars{grid-template-columns:1fr;gap:16px}.pillar{padding:18px 16px;display:grid;grid-template-columns:60px 1fr;align-items:center;text-align:left}.pillar strong{font-size:28px}.pillar span{font-size:16px;line-height:1.8}.family-base{font-size:18px;line-height:1.8;padding:20px 14px}.family-base small{font-size:15px;margin-top:8px;line-height:1.9}.family{line-height:1.95}.hero .photo,.split .photo,.widephoto,.cards .card .photo{height:auto;aspect-ratio:auto;width:100%}.photo img{height:auto;object-fit:contain}.photo figcaption{bottom:7px;right:7px}.footer nav a{white-space:normal}.cta h2{font-size:26px}.cta .button{width:100%}.specs{gap:8px}.spec{padding:15px 8px}.spec strong{font-size:24px}}
@media(max-width:360px){.header{padding:16px}.logo{font-size:22px}.tag{font-size:12px}.mobile-menu summary{padding:7px 8px;font-size:14px}.wrap{padding:0 20px}.hero-copy{padding-left:20px;padding-right:20px}.buttons{gap:10px}.buttons .button{width:100%}.headline-line{white-space:normal!important}}

/* One shared mobile gutter; page headings must not reset it. */
@media(max-width:760px){
 :root{--mobile-gutter:23px}
 main .wrap,main .hero-copy{padding-inline:var(--mobile-gutter)}
 main>.photo.widephoto{width:calc(100% - 2 * var(--mobile-gutter));margin-inline:var(--mobile-gutter)}
 main .wrap,main .hero-copy,main>.photo.widephoto{min-width:0;box-sizing:border-box}
}
@media(max-width:360px){:root{--mobile-gutter:20px}}

/* Official brand logo: original image, preserved aspect ratio. */
.header .brand-link{display:block;flex:0 0 auto;line-height:0;letter-spacing:normal}
.header .brand-logo{display:block;width:96px;height:auto;max-width:100%;object-fit:contain}
@media(max-width:760px){.header .brand-logo{width:78px}.header{position:relative}.mobile-menu[open]{flex:0 1 auto;order:initial}.mobile-menu[open] nav{position:absolute;z-index:10;top:100%;left:22px;right:22px;margin:0;box-shadow:0 8px 18px #303e3b15}.mobile-menu[open] summary{margin-left:0}}
@media(max-width:360px){.mobile-menu[open] nav{left:16px;right:16px}}

/* Compact logo and restored brand message. */
.header{padding-top:10px;padding-bottom:10px;gap:18px}
.header .brand-logo{width:74px;height:auto}
.brand-catch{margin:0 auto 0 0;font-size:12px;line-height:1.7;letter-spacing:.025em}
.footer-brand{display:inline-block;line-height:0;letter-spacing:normal}
.footer-brand .brand-logo{display:block;width:88px;height:auto;object-fit:contain}
.footer-catch{font-size:13px;margin:10px 0 18px;line-height:1.7}
@media(min-width:761px) and (max-width:1100px){.header{gap:12px}.header .brand-catch{max-width:130px}.header .desktop-nav{gap:12px;font-size:13px}.header .desktop-nav .nav-cta{padding:9px 10px}}
@media(max-width:760px){.header{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:12px;padding-top:10px;padding-bottom:10px}.header .brand-logo{width:62px}.brand-catch{font-size:12px;line-height:1.8;margin:0;text-wrap:balance}.mobile-menu{justify-self:end}.mobile-menu[open]{order:initial}.mobile-menu summary{white-space:nowrap}}
@media(max-width:420px){.header{grid-template-columns:62px minmax(0,1fr);column-gap:18px;row-gap:4px}.brand-link{grid-column:1;grid-row:1}.mobile-menu{grid-column:2;grid-row:1}.brand-catch{grid-column:1 / -1;grid-row:2;font-size:12px;text-wrap:initial}}

/* Mobile footer only: two aligned columns and a shorter section gap. */
@media(max-width:760px){.footer .footer-grid{gap:12px}.footer .footer-grid>div>.belief{margin-bottom:12px}.footer nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;align-items:start;justify-content:initial}.footer nav a{display:block;min-width:0;padding:8px 0;line-height:1.8}.footer nav .nav-cta{padding:8px 10px;text-align:center}}

/* Mobile footer consultation link spans both menu columns. */
@media(max-width:760px){.footer nav .nav-cta{grid-column:1 / -1;width:100%;text-align:center;margin-top:4px}}

[hidden]{display:none!important}.voice-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.voice-card{border-top:2px solid var(--gold);padding:18px 0}.service-badge{display:inline-block;font-size:13px;color:var(--green);background:#f1eee5;padding:4px 10px;margin-bottom:14px}.voice-quote{font-size:16px;white-space:pre-line}.voice-detail{border-top:1px solid var(--line);padding:28px 0}.voice-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.voice-detail h3{font-size:19px}.voice-detail p{white-space:pre-line}.voice-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.voice-filters button{font-family:inherit;cursor:pointer}.voice-filters button[aria-pressed=true]{background:var(--green);color:white}#voices{scroll-margin-top:24px}@media(max-width:760px){.voice-cards,.voice-detail-grid{grid-template-columns:1fr;gap:16px}.voice-card{padding:16px 0}.voice-detail-grid p{margin-bottom:8px}}

/* Legal pages and independent footer links. */
.legal-content{max-width:980px;padding-bottom:70px;font-size:16px;line-height:1.95;overflow-wrap:anywhere}.legal-content .legal-paragraph{white-space:pre-wrap}.legal-content p{margin:0 0 10px;min-height:.6em}.legal-content h1{font-size:28px;line-height:1.7;margin-bottom:20px}.legal-content h2{font-size:23px;color:var(--green);margin:30px 0 14px;text-wrap:initial}.footer .legal-links{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px 26px;border-top:1px solid var(--line);padding-top:20px;margin-top:24px;font-size:13px}.footer .legal-links a{white-space:normal;padding:4px 0;line-height:1.8}@media(max-width:760px){.legal-content{font-size:16px;padding-bottom:48px}.legal-content h1{font-size:24px;line-height:1.7}.legal-content h2{font-size:21px}.footer .legal-links{display:flex;flex-direction:column;gap:8px}.footer .legal-links a{min-height:40px;padding:8px 0}}

/* Compact opening on legal pages only. */
.legal-page .page-heading{max-width:980px;padding-top:28px;padding-bottom:12px}.legal-page .breadcrumb{margin-bottom:0}@media(max-width:760px){.legal-page .page-heading{padding-top:22px;padding-bottom:10px}}

/* Newsletter styles are scoped; all original sections retain their styling. */
.newsletter-section{padding:38px 0}.newsletter-panel{border:1px solid var(--line);border-left:3px solid var(--gold);background:#f7f4ec;padding:30px 34px}.newsletter-copy{max-width:820px}.newsletter-section .label{margin-bottom:8px}.newsletter-section h2{font-size:28px;line-height:1.7;margin-bottom:16px;text-wrap:initial}.newsletter-section p{margin-bottom:12px}.newsletter-section .newsletter-button,.newsletter-preview-button{margin-top:8px}.newsletter-preview-button:disabled{cursor:default;opacity:.72}.newsletter-section .newsletter-preview-note{margin:10px 0 0}.newsletter-gift{display:flex;gap:22px;align-items:center;margin:20px 0}.newsletter-gift img{width:120px;max-width:30%;height:auto;object-fit:contain}.newsletter-gift h3{font-size:20px;margin-bottom:8px}.newsletter-gift p{margin:0}.footer nav .newsletter-footer-link{font-size:inherit}.newsletter-footer-link[aria-disabled="true"]{cursor:default}
@media(max-width:760px){.newsletter-section{padding:26px 0}.newsletter-panel{padding:22px 20px}.newsletter-section h2{font-size:24px;line-height:1.7}.newsletter-section .newsletter-button,.newsletter-preview-button{width:100%;white-space:normal;text-align:center;padding:12px 14px}.newsletter-gift{gap:16px;align-items:flex-start}.footer nav .newsletter-footer-link{grid-column:1/-1;text-align:center;padding:10px 0}}
