:root{--ink:#444;--muted:#635b56;--cream:#fff6e2;--white:#fff;--green:#50794a;--lime:#e9f2dd;--yellow:#ffd978;--line:#e2d7cb;--round:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--white);font:500 16px/1.9 var(--round);letter-spacing:.045em}h1,h2,h3,p,figure{margin:0}a{color:inherit;text-decoration:none}img{display:block;width:100%;object-fit:cover}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #8d552c;outline-offset:5px}.wrap{width:min(1120px,calc(100% - 96px));margin-inline:auto}.skip{position:fixed;top:10px;left:12px;background:#fff;z-index:9;padding:8px 16px;transform:translateY(-150%)}.skip:focus{transform:none}[hidden]{display:none!important}
.header{display:flex;align-items:center;gap:25px;min-height:90px;padding:12px max(25px,calc((100vw - 1320px)/2));background:var(--white);position:relative;z-index:3}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap;line-height:1.25}.brand img{width:51px;height:51px}.brand small{display:block;font-size:.58rem;letter-spacing:.07em;margin-bottom:5px}.brand strong{font-size:1.04rem;letter-spacing:.075em}.nav{margin-left:auto;display:flex;align-items:center;gap:clamp(10px,1.25vw,20px);font-size:.76rem;font-weight:700;white-space:nowrap}.nav a:hover,.nav [aria-current]{color:#536d39;text-decoration:underline;text-underline-offset:8px}.header-cta{font-size:.82rem;white-space:nowrap}.menu-toggle,.mobile-cta{display:none}
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:50px;padding:8px 20px;border:1px solid var(--ink);border-radius:100px;background:var(--yellow);font-weight:700;transition:background .2s,transform .2s;line-height:1.45}.btn:hover{background:#fbe1a0;transform:translateY(-2px)}.btn.light{background:var(--white)}.btn.light:hover{background:var(--lime)}.arrow{font-size:1.15em;line-height:1}.eyebrow,.section-label{font-family:var(--round);font-weight:700;letter-spacing:.18em;color:#58744a;text-transform:uppercase;font-size:.85rem;display:flex;align-items:center;gap:10px}.eyebrow::before,.section-label::before{content:"";width:8px;height:8px;border-radius:62% 38% 62% 38%;background:#84a066;transform:rotate(-18deg)}
.photo-note{position:absolute;right:22px;bottom:10px;color:#4d5744;font-size:.62rem;letter-spacing:.08em}
.section{padding:92px 0}.section.tint{background:var(--cream)}.section.green{background:#edf0df}.section-heading{margin-bottom:32px}.section-heading h2,.split h2,.cta-band h2,.content h2{font:700 clamp(1.85rem,3.3vw,3.1rem)/1.5 var(--round);margin-top:8px;letter-spacing:.06em}.section-heading.center{text-align:center}.section-heading.center .section-label{justify-content:center}.section-heading p:last-child:not(.section-label){margin-top:12px;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,108px);align-items:center}.split h2{margin-bottom:20px}.split p+p{margin-top:12px}.split .btn{margin-top:22px}.split figure img,.intro-photo img{aspect-ratio:1.38;border-radius:36% 18% 31% 21% / 23% 31% 22% 34%}.split figcaption,.intro-photo figcaption{font-size:.68rem;color:var(--muted);margin-top:7px;text-align:right}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:24px;overflow:hidden;transition:transform .2s,border .2s}.card:hover{transform:translateY(-4px);border-color:#7b905f}.card img{aspect-ratio:2.05}.card-body{padding:23px 26px 24px;flex:1}.card-tag{font-size:.75rem;background:#f5e4ac;border-radius:30px;padding:3px 12px;display:inline-block}.card:nth-child(even) .card-tag{background:var(--lime)}.card h3{font:700 1.55rem/1.5 var(--round);margin:9px 0}.card p{font-size:.88rem}.more{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:700;margin-top:18px;padding-top:12px;border-top:1px dashed var(--line)}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.quick a{background:var(--white);display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 12px;padding:21px 19px;border:1px solid var(--line);border-radius:16px}.quick a:hover{border-color:#63784f}.quick small{grid-column:1/-1;color:var(--muted);font-size:.75rem}.quick b{font-size:1.05rem}.news{list-style:none;padding:0;margin:0}.news a{padding:18px 4px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:95px 1fr auto;align-items:center;gap:18px}.news a:hover{text-decoration:underline}.badge{display:inline-block;font-size:.73rem;border-radius:32px;background:var(--lime);padding:2px 11px;width:max-content}.cta-band{padding:59px 0;background:#e4ebcf;position:relative;overflow:hidden}.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:25px;position:relative;z-index:1}.cta-band h2{margin:0 0 7px}.cta-band img{position:absolute;right:0;bottom:0;width:300px;height:auto;opacity:.55}.footer{background:#fff3ed;padding:36px 0 24px}.footer-inner{display:flex;justify-content:space-between;gap:24px;align-items:center}.footer-nav{display:flex;flex-wrap:wrap;gap:9px 23px;font-size:.78rem}.footer-nav a:hover{text-decoration:underline}.copyright{border-top:1px solid var(--line);padding-top:15px;margin-top:27px;color:var(--muted);font-size:.69rem}
.subhero{background:#f8f2db;position:relative;overflow:hidden;padding:46px 0 65px}.subhero .wrap{position:relative;z-index:1}.subhero h1{font:700 clamp(2.2rem,4.6vw,4rem)/1.45 var(--round);letter-spacing:.06em;margin:7px 0 9px}.crumb{font-size:.72rem;margin-bottom:25px;display:flex;gap:12px;color:var(--muted)}.crumb a{text-decoration:underline;text-underline-offset:3px}.content{padding:65px 0 85px}.narrow{max-width:850px}.content h2{font-size:clamp(1.55rem,3vw,2.3rem);margin-bottom:16px}.content h3{font-size:1.15rem;margin-bottom:6px}.content-block+.content-block{margin-top:55px}.content p+p{margin-top:12px}.lead{font-size:1.12rem;line-height:2.05}.note{background:var(--cream);border-left:4px solid #9aad72;padding:14px 17px;border-radius:0 10px 10px 0;font-size:.85rem;margin-top:23px}.points,.steps,.timeline{list-style:none;padding:0;margin:0}.points li,.steps li,.timeline li{display:grid;grid-template-columns:56px 1fr;gap:14px;border-bottom:1px solid var(--line);padding:17px 0}.steps li:first-child,.timeline li:first-child,.points li:first-child{border-top:1px solid var(--line)}.num{display:grid;place-items:center;width:42px;height:42px;border-radius:48% 46% 43% 46%;background:var(--lime);font:700 1.07rem var(--round)}.timeline .num{background:#f7e6ae}.schedule-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}.schedule-tabs button{border:1px solid var(--line);background:var(--white);border-radius:60px;padding:8px 16px;cursor:pointer;font-size:.9rem}.schedule-tabs [aria-selected=true]{background:var(--yellow);border-color:var(--ink);font-weight:700}.faq details{border-bottom:1px solid var(--line);padding:14px 0}.faq summary{cursor:pointer;font-weight:700}.faq details p{padding:8px 0 2px 18px}.contact-box{background:var(--cream);padding:23px 26px;border:1px solid var(--line);border-radius:20px;margin-top:19px}.contact-box .btn{margin-top:14px}.contact-box p{overflow-wrap:anywhere}.contact-box h3{font-size:1.24rem}.listing .card-body{padding-bottom:25px}
@media(max-width:1080px){.header{gap:15px;padding-inline:19px}.nav{gap:13px}.brand strong{font-size:.91rem}.brand img{width:42px;height:42px}}
@media(max-width:1200px){.header{min-height:69px;justify-content:space-between}.header-cta{display:none}.menu-toggle{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:30px;padding:5px 12px;background:var(--white);font-size:.77rem;cursor:pointer}.nav{display:none;position:absolute;top:100%;left:0;right:0;padding:12px 22px 18px;background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 12px 16px #303d2c14;white-space:normal}.nav.open{display:grid;gap:0}.nav a{padding:9px 0}.mobile-cta{display:inline-block}.wrap{width:calc(100% - 56px)}.section{padding:63px 0}}
@media(max-width:620px){body{font-size:15px}.wrap{width:calc(100% - 40px)}.photo-note{font-size:.55rem;bottom:4px;right:15px}.section{padding:48px 0}.section-heading{margin-bottom:22px}.split,.cards,.quick{grid-template-columns:1fr;gap:18px}.split figure img{aspect-ratio:1.65}.card-body{padding:17px 19px}.card h3{font-size:1.34rem}.quick a{padding:12px 15px}.news a{grid-template-columns:1fr auto;gap:4px 10px}.news a b{grid-column:1}.news a .arrow{grid-column:2;grid-row:2}.cta-band .wrap,.footer-inner{align-items:flex-start;flex-direction:column;gap:14px}.cta-band{padding:39px 0}.subhero{padding:29px 0 48px}.subhero h1{font-size:clamp(1.8rem,7.5vw,2.7rem)}.subhero p:last-child{font-size:.87rem;max-width:32ch}.content{padding:39px 0 52px}.content-block+.content-block{margin-top:37px}.contact-box{padding:17px 18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

.center-copy,.center-link,.motto{text-align:center}
.center-copy{max-width:650px;margin-inline:auto}
.center-link{margin-top:24px}
.motto{font-size:clamp(1.6rem,3.3vw,2.5rem);font-weight:700;line-height:1.55;margin-bottom:17px}
.pink{background:#fff0ed}
.program-grid,.flow-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.program-grid article,.flow-branches article{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:20px}
.program-grid h3{font-size:1.08rem;margin:8px 0}
.program-grid p{font-size:.9rem}
.flow-branches,.quick{grid-template-columns:repeat(2,minmax(0,1fr))}
.flow-branches h2{font-size:clamp(1.1rem,2vw,1.65rem)}
.section .cards:has(.card:only-child){max-width:460px;margin-inline:auto;grid-template-columns:1fr}
.info-table{display:grid;grid-template-columns:minmax(110px,24%) 1fr;border:1px solid var(--line);margin:0}
.info-table dt,.info-table dd{margin:0;padding:12px 15px;border-bottom:1px solid var(--line)}
.info-table dt{background:var(--cream);font-weight:700}
.info-table dd a{text-decoration:underline}
.info-table :nth-last-child(-n+2){border-bottom:0}
@media(max-width:620px){
.program-grid,.flow-branches,.quick{grid-template-columns:1fr}
.info-table{grid-template-columns:minmax(89px,26%) 1fr}
.info-table dt,.info-table dd{padding:9px}
}

/* Desktop proportions based on the reference screenshots. */
.header{position:sticky;top:0;z-index:5;min-height:64px;padding:0 13px;gap:20px;background:#fff}
.header>.brand{position:absolute;top:0;left:0;width:19%;max-width:268px;background:#fff;padding:12px 12px 18px;align-items:stretch;border-radius:0 0 8px 0}
.brand{display:flex;flex-direction:column;align-items:stretch;gap:3px;white-space:normal;text-align:center;width:185px;line-height:1.05}
.brand-tag,.brand-name{border-radius:30px;background:#91b823;color:#fff;font-size:clamp(.53rem,.9vw,.78rem);font-weight:700;padding:4px 5px}
.brand-word{font:900 clamp(1.45rem,4vw,3.45rem)/.94 "Arial Rounded MT Bold","Arial Black",sans-serif;letter-spacing:.025em;color:#686868}
.brand-word span{color:#91b823}
.brand-name{background:none;color:#688914;font-size:clamp(.61rem,1.4vw,1rem)}
.brand small{font-size:clamp(.46rem,.75vw,.68rem);margin:2px 0 0}
.nav{gap:clamp(9px,1.03vw,17px);font-weight:700;font-size:clamp(.68rem,.91vw,.86rem);color:#444}
.header-cta{display:flex;gap:4px}
.header-cta a{display:grid;align-content:center;justify-items:center;gap:4px;width:72px;min-height:58px;background:#246b86;color:white;border-radius:0 0 7px 7px;font-size:.58rem;font-weight:700}
.header-cta a+a{background:#126c54}
.header-cta a span{font:700 1.08rem/1.05 sans-serif}
.header-cta a:hover{filter:brightness(1.15)}
.hero{position:relative;background:#fff;padding:26px 0 60px;overflow:hidden}
.hero-gallery{position:relative;width:100%;max-width:1720px;margin-inline:auto}
.hero-primary{width:70%;aspect-ratio:1.43;margin-inline:auto;position:relative;z-index:1;overflow:hidden;border-radius:clamp(20px,2.8vw,47px)}
.hero-primary img{height:100%;object-position:center 55%}
.hero-deco{position:absolute;width:26%;height:auto;pointer-events:none}
.hero-deco.left{left:-7%;top:11%;transform:rotate(16deg);filter:hue-rotate(278deg) saturate(.85) brightness(1.16)}
.hero-deco.right{right:-3%;bottom:-13%;z-index:2;transform:rotate(11deg)}
.hero-cream{position:absolute;width:25%;aspect-ratio:1.35;left:1.5%;bottom:-15%;background:#f3f0dc;transform:rotate(12deg);border-radius:50% 44% 50% 50%}
.hero-motto{position:absolute;left:7.5%;bottom:4.5%;z-index:3;display:grid;justify-items:start;gap:.31em;font-size:clamp(1.4rem,2.85vw,3.4rem);font-weight:700;line-height:1.22;letter-spacing:.055em;color:#444}
.hero-motto span{background:#fff;padding:.14em .34em .2em}
.hero-motto span:last-child,.scroll{color:#126c54}
.hero .photo-note{position:absolute;right:17%;bottom:.55rem;z-index:2;background:#fff;padding:0 5px}
.scroll{position:relative;z-index:3;display:block;width:max-content;margin:25px auto 0;text-align:center;font:700 .7rem/1.2 Arial,sans-serif}
.scroll::before{content:"";display:block;width:1px;height:26px;background:currentColor;margin:0 auto 11px}
.philosophy{background:#fff;position:relative;overflow:hidden;padding-bottom:118px}
.scallop{height:54px;background:repeating-linear-gradient(135deg,#f4f1df 0 12px,#f8f5e8 12px 24px);mask:radial-gradient(circle at 50% 0,#000 67%,transparent 69%) 0 0/62px 58px repeat-x}
.philosophy-layout{display:grid;grid-template-columns:1fr 1fr;gap:6%;max-width:940px;align-items:center;padding:76px 0 24px}
.philosophy figure{width:min(92%,355px);aspect-ratio:1.05;justify-self:center;border-radius:47% 51% 41% 53%;background:#c1dfc2;position:relative}
.philosophy figure img{height:100%;border-radius:inherit;transform:translate(-8px,-9px)}
.philosophy-en{font-size:clamp(1.6rem,2.7vw,2.45rem);color:#bd4587;font-weight:700;line-height:1.35}
.philosophy h2{font-size:.87rem;margin:12px 0 32px;font-weight:700}
.philosophy .motto{text-align:left;color:#126c54;font-size:clamp(1.55rem,2.8vw,2.6rem);line-height:1.35;font-weight:700;margin-bottom:22px}
.philosophy-layout>div>p:not([class]){font-size:.9rem;font-weight:700}
.philosophy .btn{margin-top:14px;min-height:39px;font-size:.76rem}
.philosophy-doodles{position:absolute;right:8%;bottom:0;width:min(43%,520px)}
.philosophy::after,.environment::after{content:"";position:absolute;width:174px;height:146px;pointer-events:none;background:radial-gradient(circle,#cbe3d0 0 4px,transparent 5px) 0 0/28px 30px;opacity:.62;transform:rotate(-22deg);top:81px;right:-30px}
.therapy{background:#126c54;padding-bottom:67px;position:relative}
.therapy::after{position:absolute;content:"";height:22px;top:100%;inset-inline:0;background:radial-gradient(ellipse at 50% 0,#126c54 69%,transparent 72%) 0 0/61px 22px repeat-x}
.therapy-heading{position:relative;height:clamp(250px,32vw,430px);isolation:isolate}
.therapy-heading img{position:absolute;inset:0;height:100%;z-index:-2;object-position:center 60%}
.therapy-heading::after{position:absolute;inset:0;content:"";background:#14332e63;z-index:-1}
.therapy-heading h2{padding-top:62px;color:#fff;text-align:center;font-size:clamp(1.75rem,3.2vw,3rem);font-weight:700}
.therapy-heading h2 > [aria-hidden]{display:block;font-size:.7em;line-height:1.4;margin-bottom:8px}
.therapy-panel{max-width:900px;position:relative;margin-top:-145px;background:#fff;border-radius:24px;padding:30px}
.therapy-panel>h3{text-align:center;color:#126c54;font-size:1.3rem;margin-bottom:20px}
.environment{position:relative;overflow:hidden}
.environment::after{top:auto;bottom:36px;right:auto;left:-24px}
.environment .wrap{position:relative;z-index:1;max-width:910px}
.environment .section-heading h2{font-weight:700;line-height:1.37;font-size:clamp(1.7rem,2.8vw,2.55rem)}
.environment h2 em{font-style:normal;color:#bd4587;text-decoration:underline #f1cf57;text-decoration-thickness:4px;text-underline-offset:8px}
.environment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 22px}
.environment-grid article{display:grid;grid-template-columns:minmax(78px,29%) 1fr;gap:15px;align-items:start}
.environment-grid img{aspect-ratio:1;border-radius:50%;box-shadow:5px 6px #f9e291}
.environment-grid h3{font-size:1.12rem;line-height:1.5;font-weight:700;color:#246b86;margin:0 0 6px}
.environment-grid p{font-size:.86rem;line-height:1.85}
.contact-section{background-color:#dceedd;background-image:radial-gradient(#ffffff45 1.6px,transparent 1.8px);background-size:18px 18px}
.contact-section h2{color:#126c54;font-weight:700}
.subhero{background:#f4f1df}
.section-label,.eyebrow{text-transform:none}
@media(max-width:1200px){
.header{min-height:64px}
.header>.brand{position:static;width:152px;padding:7px 0}
.header .brand-word{font-size:2rem}
.header .brand-tag,.header .brand-name{font-size:.63rem}
.header .brand small{display:none}
.header-cta{display:none}
}
@media(min-width:940px) and (max-width:1200px){
.header .nav{display:flex;position:static;padding:0;border:0;box-shadow:none;gap:12px}
.header .nav a{padding:0}
.header .mobile-cta,.header .menu-toggle{display:none}
.header-cta{display:flex}
}
@media(max-width:620px){
.hero{padding:15px 0 37px}
.hero-primary{width:87%;aspect-ratio:1.04;border-radius:20px}
.hero-motto{left:3.5%;bottom:9%;font-size:clamp(1.3rem,6vw,2rem)}
.hero-deco{width:31%}
.hero-deco.right{bottom:-7%}
.hero-cream{bottom:-7%}
.hero .photo-note{right:9%;bottom:2px;font-size:.52rem}
.scroll{margin-top:16px}
.scroll::before{height:15px;margin-bottom:6px}
.philosophy{padding-bottom:64px}
.philosophy-layout{grid-template-columns:1fr;gap:24px;padding:28px 0}
.philosophy figure{width:min(76%,300px)}
.philosophy h2{margin:6px 0 14px}
.scallop{height:34px;mask-size:42px 35px}
.philosophy-doodles{width:64%;right:0}
.therapy-heading h2{padding-top:43px}
.therapy-panel{margin-top:-108px;padding:17px}
.environment-grid{grid-template-columns:1fr;gap:21px}
.environment-grid article{grid-template-columns:minmax(76px,22%) 1fr}
}
.header-cta svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}

/* Shared typography and interior pages */
body {
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: .025em;
}
.nav, .btn, .badge, .card-tag, .more, .brand, .hero-motto, .motto, .philosophy-en {
  font-family: var(--round);
}
h1, h2, h3 { font-family: var(--round); }
.btn { min-height: 46px; gap: 14px; line-height: 1.45; max-width: 100%; }
.philosophy .btn { min-height: 46px; font-size: .9375rem; }
.philosophy-layout > div > p:not([class]) { font-size: 1rem; font-weight: 400; }
html { scroll-padding-top: 110px; }
.nav { font-size: .94rem; }
.header-cta a { font-size: .72rem; }
.footer-nav { font-size: .94rem; }
.copyright, .crumb { font-size: .875rem; }
.card p, .program-grid p, .environment-grid p, .note, .subhero p:last-child { font-size: 1.0625rem; }
.card-tag, .badge, .more, .quick small, .schedule-tabs button { font-size: .9375rem; }
.content h3, .program-grid h3 { font-size: 1.25rem; }
.eyebrow, .section-label { font-size: .94rem; }
.subhero { background-color: var(--cream); background-image: radial-gradient(#fff8 1.5px, transparent 1.7px); background-size: 19px 19px; }
.subhero .wrap { padding-left: clamp(16px, 3vw, 44px); border-left: 4px solid #91b823; }
.subhero h1 { color: #315c44; font-weight: 900; }
.crumb { flex-wrap: wrap; gap: 4px 10px; }
.interior .content { background: #fffdf7; }
.interior .content > .wrap.narrow {
  background: white;
  border: 1px solid var(--line);
  border-radius: 30px;
  padding: clamp(24px, 5vw, 56px);
}
.interior .content h2 {
  color: #315c44;
  border-bottom: 2px dashed #d8e4ca;
  padding-bottom: .45em;
}
.interior .intro-photo img, .article-photo img { border-radius: 22px; }
.article-photo { margin-bottom: 34px; }
.article-photo img { max-height: 380px; aspect-ratio: 1.8; }
.article-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.article-back { margin-top: 28px !important; }
.article-back .btn { color: #315c44; }
.editorial-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.editorial-cards .card-body { display: flex; flex-direction: column; }
.editorial-cards .more { margin-top: auto; }
.editorial-cards .card p { margin-bottom: 18px; }
.editorial-news { display: grid; gap: 12px; }
.editorial-news a {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: white;
  padding: 18px 22px;
  grid-template-columns: minmax(95px, auto) 1fr auto;
}
.editorial-news a:hover { border-color: var(--green); }
.news-copy { display: grid; gap: 3px; min-width: 0; }
.news-copy small { color: var(--muted); font-size: .94rem; line-height: 1.6; }

.site-loading {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  z-index: 12;
  background: var(--lime);
  overflow: hidden;
  pointer-events: none;
  transition: opacity .2s ease;
}
.site-loading::after {
  content: "";
  display: block;
  width: 42%;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #91b823, var(--yellow));
  animation: loading-sweep .8s ease-in-out infinite alternate;
}
.site-loading.is-done { opacity: 0; }
@keyframes loading-sweep { from { transform: translateX(-35%); } to { transform: translateX(165%); } }
@media (max-width: 1200px) {
  .header .header-cta { display: none; }
  .header .menu-toggle { display: flex; min-height: 44px; font-size: .94rem; }
  .header .nav {
    display: none;
    position: absolute;
    top: 100%;
    max-height: calc(100dvh - 80px);
    overflow-y: auto;
    padding: 10px 22px 18px;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 12px 16px #303d2c14;
  }
  .header .nav.open { display: grid; }
  .header .nav a.mobile-cta { display: flex; }
  .header .nav a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; }
}
@media (max-width: 780px) {
  .editorial-cards { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  body { font-size: 17px; }
  .wrap { width: calc(100% - 32px); }
  .interior .content > .wrap.narrow { padding: 20px 17px; border-radius: 22px; }
  .subhero h1 {
    font-size: clamp(1.75rem, 6.8vw, 2.2rem);
    overflow-wrap: anywhere;
  }
  .article-photo { margin-bottom: 24px; }
  .article-links { gap: 8px; }
  .article-links .btn { justify-content: space-between; }
  .editorial-news a { grid-template-columns: minmax(0, 1fr) auto; padding: 14px 16px; }
  .editorial-news .news-copy { grid-column: 1; }
  .editorial-news .arrow { grid-column: 2; grid-row: 2; }
  .info-table { grid-template-columns: minmax(76px, 28%) minmax(0, 1fr); }
  .info-table dd { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  .site-loading { display: none; }
  .site-loading::after { animation: none; }
}

/* Editorial titles may wrap between phrases at any viewport width. */
.title-phrase { display: inline-block; white-space: nowrap; }
.article-page .subhero h1 {
  font-size: clamp(1.9rem, 3.5vw, 2.9rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .025em;
  overflow-wrap: normal;
}
@media (min-width: 781px) and (max-width: 1000px) {
  .editorial-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .article-page .subhero h1 { font-size: clamp(1.3rem, 6.3vw, 1.75rem); }
}

/* Japanese phrase boundaries are marked in the document. */
.phrase-wrap {
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.button-label {
  min-inline-size: 0;
}
.btn .arrow, .more .arrow {
  flex: 0 0 auto;
}

/* A quiet woodland motif runs from the opening photo to the inner pages. */
.hero {
  padding: 8px 0 48px;
}
.hero-gallery {
  width: min(1120px, calc(100% - 64px));
}
.hero-illustrations {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 0 clamp(22px, 9vw, 142px);
  min-height: 96px;
}
.hero-illustrations img {
  object-fit: contain;
}
.hero-flower { width: 74px; }
.hero-trees { width: 195px; }
.hero-primary {
  width: 100%;
  aspect-ratio: 2.25;
  border-radius: 6px 6px 26px 6px;
}
.hero-primary img {
  object-position: center 56%;
}
.hero-motto {
  left: clamp(16px, 3vw, 48px);
  bottom: clamp(14px, 2.8vw, 42px);
  gap: .12em;
  padding: .52em .72em .62em;
  background: #fffaf0;
  border-left: 4px solid #789467;
  border-radius: 3px 16px 16px 3px;
  box-shadow: 0 3px 15px #392b2218;
  font-size: clamp(1.35rem, 2.9vw, 2.8rem);
  line-height: 1.42;
}
.hero-motto span {
  background: transparent;
  padding: 0;
}
.subhero {
  background-image: none;
  background-color: #fcf7ec;
}
.cta-band > img {
  width: clamp(110px, 20vw, 255px);
  right: 3%;
  opacity: .48;
}
.scallop {
  height: 20px;
  mask: none;
  background: linear-gradient(180deg, #fff0ed, #fff);
}
.philosophy figure {
  border-radius: 36% 36% 18px 18px;
  background: #e8edda;
}
.environment-grid img {
  border-radius: 22px 22px 9px 9px;
  box-shadow: 4px 5px #f0e4c9;
}
.philosophy::after, .environment::after {
  background: url("./wildflower.svg") center / contain no-repeat;
  width: 85px;
  height: 100px;
  right: 5px;
}
.environment::after {
  right: auto;
  left: 2px;
}
@media (max-width: 620px) {
  .hero { padding: 2px 0 30px; }
  .hero-gallery { width: calc(100% - 32px); }
  .hero-illustrations { min-height: 65px; padding: 0 18px; }
  .hero-flower { width: 47px; }
  .hero-trees { width: 130px; }
  .hero-primary { aspect-ratio: 1.42; border-radius: 5px 5px 20px 5px; }
  .hero-motto {
    position: relative;
    left: auto;
    bottom: auto;
    width: fit-content;
    max-width: calc(100% - 24px);
    margin: -24px 0 0 12px;
    font-size: clamp(1.32rem, 6.1vw, 1.75rem);
  }
  .subhero { padding-bottom: 68px; }
}
.phrase-wrap { overflow-wrap: normal; }
@media (max-width: 390px) {
  .subhero h1.phrase-wrap { font-size: clamp(1.45rem, 7vw, 1.75rem); }
  .section-heading h2.phrase-wrap { font-size: clamp(1.42rem, 6.25vw, 1.68rem); }
}
.reading-phrase {
  display: inline-block;
  white-space: nowrap;
}
.split > * { min-inline-size: 0; }

/* Hand-drawn marks connect the opening scene, headings and navigation. */
:root {
  --hand-sprig: url("./hand-sprig.svg");
  --hand-note: url("./hand-note.svg");
  --hand-pencil: url("./hand-pencil.svg");
  --hand-rule: url("./hand-rule.svg");
  --paper-edge: #d8d9c6;
  --paper-shadow: #e6ead7;
}

.hero {
  background: linear-gradient(180deg, #fff 0 40%, #fcf7ec 40% 90%, #fff 100%);
  isolation: isolate;
}
.hero-gallery {
  width: min(1200px, calc(100% - 64px));
}
.hero-illustrations {
  background: url("./hand-trail.svg") center bottom / 100% 100% no-repeat;
  min-height: 112px;
  padding-inline: clamp(20px, 8vw, 128px);
}
.hero-illustrations img {
  margin-bottom: 4px;
}
.hero-primary {
  outline: 1px solid #78946746;
  outline-offset: 4px;
}
.hero-gallery::before,
.hero-gallery::after {
  content: "";
  display: block;
  position: absolute;
  pointer-events: none;
  z-index: -1;
  background-repeat: no-repeat;
  background-size: contain;
}
.hero-gallery::before {
  width: 100px;
  height: 135px;
  left: -75px;
  top: 46%;
  background-image: var(--hand-sprig);
  transform: rotate(-20deg);
}
.hero-gallery::after {
  width: 104px;
  height: 115px;
  right: -77px;
  bottom: -20px;
  background-image: url("./wildflower.svg");
  transform: rotate(13deg);
}
.hero .scroll::before {
  width: 100px;
  height: 13px;
  background: var(--hand-rule) center / contain no-repeat;
}

.section-heading::after,
.subhero h1::after,
.article-shell h2::after {
  content: "";
  display: block;
  width: 126px;
  height: 11px;
  margin-top: 11px;
  background: var(--hand-rule) left center / contain no-repeat;
  pointer-events: none;
}
.section-heading.center::after {
  margin-inline: auto;
}
.section-label::before,
.eyebrow::before {
  width: 22px;
  height: 22px;
  border-radius: 0;
  background: var(--section-doodle, var(--hand-sprig)) center / contain no-repeat;
  transform: none;
  flex: 0 0 22px;
}
.topic-news, .section:has(.editorial-news) { --section-doodle: var(--hand-note); }
.topic-blog, .section:has(.editorial-cards) { --section-doodle: var(--hand-pencil); }
.subhero .wrap {
  border-left-color: #a9b58f;
}
.article-shell h2 {
  border-bottom: 0;
  padding-bottom: 0;
}

.card,
.quick a,
.editorial-news a,
.program-grid article,
.flow-branches article,
.contact-box,
.interior .content > .wrap.narrow {
  border-color: var(--paper-edge);
  border-radius: 17px 23px 18px 25px;
  box-shadow: 3px 4px 0 var(--paper-shadow);
}
.card {
  padding: 8px;
}
.card > img {
  border-radius: 12px 17px 11px 15px;
}
.card-body {
  position: relative;
}
.card-body::after {
  content: "";
  position: absolute;
  right: 10px;
  top: 12px;
  width: 29px;
  height: 29px;
  background: var(--section-doodle, var(--hand-sprig)) center / contain no-repeat;
  opacity: .8;
  pointer-events: none;
}
.editorial-news .badge {
  background: #f5eddb;
}
.editorial-news a {
  background: linear-gradient(100deg, #fffaf0 0, #fff 42%);
}
.editorial-news a:hover,
.card:hover {
  border-color: #7a9269;
  box-shadow: 3px 4px 0 #dfe8d2;
}

.btn {
  border-color: #768968;
  border-radius: 28px 25px 26px 23px;
  background: #fae7ad;
  box-shadow: 2px 3px 0 #e6dbb8;
}
.btn.light {
  background: #fffdf5;
  box-shadow: 2px 3px 0 #e4ead9;
}
.btn:hover {
  background: #f8e0a0;
}
.btn.light:hover {
  background: #edf3e5;
}
.btn .arrow,
.editorial-news .arrow,
.more .arrow {
  display: inline-grid;
  place-items: center;
  min-width: 25px;
  min-height: 25px;
  border: 1px solid #a9b59a;
  border-radius: 53% 44% 48% 43%;
  background: #ffffff99;
  color: #476845;
}

@media (max-width: 900px) {
  .hero-gallery::before, .hero-gallery::after { display: none; }
}
@media (max-width: 620px) {
  .hero-gallery { width: calc(100% - 32px); }
  .hero-illustrations { min-height: 72px; padding-inline: 18px; }
  .hero-gallery::after {
    display: block;
    z-index: 0;
    right: 5px;
    bottom: -16px;
    width: 46px;
    height: 54px;
  }
  .hero-primary { outline-offset: 2px; }
  .section-heading::after,
  .subhero h1::after,
  .article-shell h2::after {
    width: 100px;
  }
}

/* The dotted path ties each page's own illustration back to the home hero. */
.subhero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding-bottom: 24px;
  background-image: url("./hand-trail.svg");
  background-repeat: no-repeat;
  background-size: 100% 54px;
  background-position: center bottom 5px;
}
.subhero .wrap { grid-row: 1; }
.subhero-art {
  grid-row: 2;
  justify-self: end;
  width: clamp(200px, 45vw, 284px);
  height: auto;
  margin: 6px clamp(12px, 5vw, 80px) 0 0;
}
.topic-news .subhero { background-color: #fcf4eb; }
.topic-blog .subhero { background-color: #f7f6e9; }

@media (min-width: 950px) {
  .subhero {
    --scene-width: clamp(288px, 28vw, 360px);
    align-items: center;
    padding-bottom: 66px;
    background-size: 100% 73px;
  }
  .subhero .wrap {
    grid-column: 1;
    padding-right: calc(var(--scene-width) + 10px);
  }
  .subhero-art {
    grid-area: 1 / 1;
    align-self: end;
    width: var(--scene-width);
    margin: 0 max(24px, calc((100% - 1120px) / 2)) -34px 0;
  }
}

/* Photos and drawings share the home guide sections. */
.photo-feature { padding-block: clamp(38px, 5vw, 76px); }
.feature-layout {
  display: grid;
  grid-template-areas: "heading" "photo" "actions";
  gap: 18px;
}
.feature-heading { grid-area: heading; margin: 0; }
.feature-heading .heading-art {
  display: block;
  width: clamp(152px, 38vw, 206px);
  height: auto;
  margin: 0 auto 4px;
}
.feature-heading h2 { margin-bottom: 0; }
.feature-photo {
  grid-area: photo;
  align-self: center;
  margin: 0;
  padding: 6px;
  background: #fffdf6;
  border: 1px solid #d9ddc7;
  border-radius: 23px 20px 25px 19px;
  box-shadow: 4px 5px 0 #e2e8d4;
}
.feature-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1.65;
  object-fit: cover;
  border-radius: 17px 15px 19px 14px;
}
.feature-actions { grid-area: actions; min-width: 0; }
.feature-actions .quick { grid-template-columns: 1fr; gap: 10px; }
.feature-actions .center-link { margin-top: 16px; }
.content-photo { margin: 0 0 clamp(24px, 4vw, 42px); }

.therapy-heading h2 { margin-inline: auto; }
.therapy-heading h2 .reading-phrase { display: inline-block; }

.news-marker { display: flex; align-items: center; gap: 6px; }
.news-art, .card-art, .content-art { display: block; height: auto; object-fit: contain; }
.news-art { width: 42px; flex: 0 0 42px; }
.card-kicker { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.editorial-cards .card img.card-art { width: 50px; flex: 0 0 50px; aspect-ratio: 1; }
.editorial-cards .card-body::after { content: none; }
.content-art {
  float: right;
  width: clamp(42px, 7vw, 60px);
  margin: 0 0 3px 9px;
}
@media (min-width: 781px) {
  .feature-layout {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    grid-template-rows: auto auto;
    grid-template-areas: "photo heading" "photo actions";
    align-content: center;
    align-items: end;
    gap: 18px clamp(28px, 5vw, 76px);
  }
  .feature-reverse .feature-layout { grid-template-areas: "heading photo" "actions photo"; }
  .feature-actions { align-self: start; }
}
@media (max-width: 620px) {
  .feature-layout { gap: 14px; }
  .photo-feature .feature-heading { margin-bottom: 2px; }
  .feature-actions .quick a { padding-block: 12px; }
  .therapy-heading { height: 250px; }
  .therapy-panel { margin-top: -84px; }
  .editorial-news a { padding: 11px 14px 14px; }
  .news-marker { gap: 5px; }
  .news-art { width: 34px; flex-basis: 34px; }
}

/* Lead photos sit in the body, leaving the illustrated headings room to breathe. */
.lower-photo {
  grid-area: auto;
  margin-block-end: clamp(24px, 4vw, 40px);
}
.lower-photo img { aspect-ratio: 2.15; }
.news-with-photo {
  display: grid;
  gap: 22px;
}
.news-with-photo .lower-photo {
  width: 100%;
  margin: 0;
}
@media (min-width: 1050px) {
  .news-with-photo {
    grid-template-columns: minmax(0, 1fr) minmax(0, .42fr);
    align-items: start;
  }
  .news-with-photo .lower-photo img { aspect-ratio: 1.4; }
}
@media (max-width: 620px) {
  .lower-photo { padding: 5px; }
  .lower-photo img { aspect-ratio: 1.56; }
  .news-with-photo { gap: 18px; }
}

.access-map { clear: both; margin: 0; }
.access-map picture {
  display: block;
  overflow: hidden;
  padding: 5px;
  border: 1px solid var(--paper-edge);
  border-radius: 20px 24px 18px 25px;
  background: #fffdf6;
  box-shadow: 3px 4px 0 var(--paper-shadow);
}
.access-map img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px 19px 14px 20px;
}
.access-map figcaption {
  margin-top: 14px;
  color: var(--muted);
  font-size: .9375rem;
  line-height: 1.8;
}
@media (max-width: 620px) {
  .access-map img { aspect-ratio: 400 / 380; }
}

/* Give service introductions enough room for their longer Japanese headings. */
.interior .content .split { gap: 28px; }
.interior .content .split h2 {
  font-size: clamp(1.375rem, 2.3vw, 1.75rem);
}
.interior .content .split .content-art {
  float: none;
  width: 36px;
  margin: 0 0 8px auto;
}
.service-title-tail { display: inline-block; white-space: nowrap; }

.footer .brand { flex-shrink: 0; width: max-content; min-width: 185px; }
.footer .brand small { white-space: nowrap; }


/* Soft paper-like arrivals, shared by the home page and every inner page. */
.scroll-ready {
  opacity: 0;
  translate: 0 24px;
  transition: opacity .7s ease, translate .7s cubic-bezier(.2, .65, .25, 1), transform .2s ease, border-color .2s ease;
  transition-delay: var(--reveal-delay, 0ms), var(--reveal-delay, 0ms), 0ms, 0ms;
}
.scroll-ready.scroll-shown,
.scroll-ready:focus-within {
  opacity: 1;
  translate: 0 0;
}
:is(.cards, .quick, .editorial-news, .program-grid, .environment-grid, .points, .steps, .timeline) > .scroll-ready:nth-child(3n + 2) {
  --reveal-delay: 75ms;
}
:is(.cards, .quick, .editorial-news, .program-grid, .environment-grid, .points, .steps, .timeline) > .scroll-ready:nth-child(3n + 3) {
  --reveal-delay: 150ms;
}
@media (prefers-reduced-motion: reduce) {
  .scroll-ready {
    opacity: 1;
    translate: none;
    transition: none;
  }
}
