@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;600&family=Noto+Serif+JP:wght@400;500;600&display=swap");
:root { --ink:#3e3834; --muted:#766c66; --terracotta:#b67561; --terracotta-dark:#9d5f4e; --sage:#5f745f; --cream:#f4ede7; --paper:#fffdf9; --line:#e9dfd7; --serif:"Noto Serif JP",serif; --sans:"DM Sans","Noto Sans JP",sans-serif; }
*{box-sizing:border-box} html{scroll-behavior:smooth;overflow-x:hidden} body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.8;-webkit-font-smoothing:antialiased} body.nav-open{overflow:hidden} img{display:block;width:100%} a{color:inherit;text-decoration:none} button,summary{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;padding:.6rem 1rem;border-radius:2rem;background:var(--ink);color:#fff}.skip-link:focus{top:1rem}
.site-header{height:76px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:rgba(255,253,249,.96);border-bottom:1px solid rgba(62,56,52,.05);position:sticky;top:0;z-index:100;backdrop-filter:blur(16px);transition:height .2s ease}.site-header.scrolled{height:66px;box-shadow:0 6px 24px rgba(62,56,52,.06)}.brand{display:inline-flex;align-items:center;gap:.7rem;line-height:1.15}.brand-mark{font-family:var(--serif);font-size:2rem;color:var(--terracotta);letter-spacing:-.08em}.brand-name{font-family:var(--serif);font-size:.74rem;font-weight:600;white-space:nowrap}.brand-name small{display:block;margin-top:.25rem;font-family:var(--sans);font-size:.58rem;letter-spacing:.18em}.global-nav{display:flex;align-items:center;gap:clamp(.9rem,1.8vw,2rem)}.global-nav a{font-family:var(--serif);font-size:.73rem;font-weight:500;white-space:nowrap}.header-cta{padding:.7rem 1.25rem;border-radius:3rem;background:var(--terracotta);color:#fff}.menu-button{display:none;border:0;background:transparent;padding:.65rem}.menu-button>span:not(.sr-only){display:block;width:26px;height:1px;margin:6px 0;background:var(--ink);transition:.2s ease}
.hero{position:relative;height:clamp(540px,51vw,730px);margin:0 3.5vw;overflow:hidden}.hero-image{height:100%;object-fit:cover;object-position:center 44%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,253,249,.93) 0%,rgba(255,253,249,.75) 30%,rgba(255,253,249,.05) 60%)}.hero-copy{position:absolute;z-index:2;left:4.5vw;top:44%;transform:translateY(-50%);max-width:650px}.hero h1{margin:0;font-family:var(--serif);font-size:clamp(2.2rem,3.8vw,4.7rem);font-weight:500;line-height:1.5;letter-spacing:.02em}.hero-lead{margin:1rem 0 1.1rem;font-family:var(--serif);font-size:clamp(1rem,1.6vw,1.45rem)}.hero-lead span{color:var(--terracotta);margin:0 .25em}.hero-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.6rem}.hero-tags span{padding:.25rem .7rem;border:1px solid rgba(62,56,52,.18);border-radius:2rem;background:rgba(255,255,255,.72);font-size:.65rem}.round-button{display:inline-flex;min-height:55px;align-items:center;justify-content:center;gap:2.4rem;padding:.75rem 2rem;border:0;border-radius:999px;background:var(--terracotta);color:#fff;font-size:.9rem;cursor:pointer;transition:transform .2s ease,background .2s ease}.round-button:hover,.round-button:focus-visible{transform:translateY(-2px);background:var(--terracotta-dark)}.round-button b{font-size:1.1rem;font-weight:400}
.mobile-break{display:none}
.section{padding:clamp(4.8rem,7.5vw,8rem) 5vw}.section-title{margin-bottom:clamp(2rem,4vw,3.7rem);text-align:center}.section-title>p,.mini-label{margin:0 0 .8rem;color:var(--terracotta);font-family:var(--serif);font-size:.68rem;letter-spacing:.14em}.section-title h2,.beginner h2,.faq h2,.contact h2,.contact-dialog h2{margin:0;font-family:var(--serif);font-size:clamp(1.9rem,3.2vw,3.3rem);font-weight:500;line-height:1.5;letter-spacing:.05em}.section-title small,.faq-heading small{display:block;margin-top:.8rem;color:var(--muted);font-size:.82rem}
.trouble{background:#fff;text-align:center}.trouble-grid{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(1rem,2vw,2rem)}.trouble-item img{width:clamp(92px,10vw,145px);aspect-ratio:1;margin:0 auto;border-radius:50%;object-fit:cover}.trouble-item:nth-child(1) img{object-position:28% center}.trouble-item:nth-child(2) img{object-position:center 78%}.trouble-item:nth-child(3) img{object-position:14% center}.trouble-item:nth-child(5) img{object-position:58% center}.trouble-item p{margin:1rem 0 0;font-family:var(--serif);font-size:.85rem;line-height:1.6}.trouble-message{display:flex;align-items:center;justify-content:center;gap:2rem;margin:3rem 0 0;font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.9rem);line-height:1.7}.trouble-message span{width:55px;height:1px;background:#d9c5ba}
.concept{background:linear-gradient(180deg,#f7f1ec,#fbf8f5)}.concept .section-title h2 em{color:var(--terracotta);font-style:normal}.concept .section-title h2 span{margin:0 .5rem;font-weight:300}.concept-panels{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.concept-panel{min-height:310px;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:rgba(255,255,255,.75)}.concept-panel img{height:100%;object-fit:cover}.concept-panel>div{display:flex;flex-direction:column;justify-content:center;padding:2rem}.concept-panel h3{margin:0 0 1rem;color:var(--terracotta);font-family:var(--serif);font-size:2rem;font-weight:500;text-align:center}.concept-panel.move h3{color:var(--sage)}.concept-panel h3 small{display:block;margin-top:.2rem;font-family:var(--sans);font-size:.85rem;font-weight:400;letter-spacing:.16em}.concept-panel p{margin:0;font-family:var(--serif);font-size:.78rem;line-height:2}.concept-cross{position:relative;z-index:2;width:64px;margin:0 -18px;color:var(--terracotta);font-family:var(--serif);font-size:2.2rem;text-align:center}
.programs{background:#fff}.program-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.program-card{background:#fff;border-bottom:1px solid var(--line)}.program-card img{height:330px;object-fit:cover}.program-card>div{position:relative;min-height:170px;padding:1.4rem 3.5rem 1.5rem 1.1rem}.program-card h3{margin:0 0 .55rem;font-family:var(--serif);font-size:1rem}.program-card p{margin:0;color:var(--muted);font-family:var(--serif);font-size:.74rem;line-height:1.8}.program-card a{position:absolute;right:1rem;bottom:1.3rem;width:38px;height:38px;display:grid;place-items:center;border:1px solid #dbc7bd;border-radius:50%;color:var(--terracotta)}
.beginner{max-width:none;display:grid;grid-template-columns:1.05fr .95fr .7fr;gap:4vw;align-items:center;background:var(--cream)}.beginner-copy{padding-left:1vw}.beginner h2{font-size:clamp(1.8rem,2.8vw,3rem)}.beginner-copy>p:last-child{max-width:430px;margin-top:1.5rem;color:var(--muted);font-family:var(--serif);font-size:.83rem}.beginner-image{height:310px;object-fit:cover}.beginner-steps{list-style:none;margin:0;padding:0}.beginner-steps li{display:flex;gap:1.1rem;align-items:center;padding:.45rem 0;font-family:var(--serif);font-size:.8rem}.beginner-steps span{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#fff;color:var(--terracotta);font-family:var(--sans);font-size:.68rem}
.price{background:#fff}.price-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:2rem}.price-box{background:#fbf7f3;padding:0 1.4rem 1.4rem}.price-box h3{margin:0 -1.4rem 1.2rem;padding:.8rem 1rem;background:#eee3db;font-family:var(--serif);font-size:.86rem;font-weight:500;text-align:center}.price-box dl{margin:0}.price-box dl>div{display:grid;grid-template-columns:1fr auto;align-items:center;padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--line)}.price-box dt{font-family:var(--serif);font-size:.82rem}.price-box dd{margin:0;font-family:var(--serif)}.price-box dd b{font-size:1.55rem;font-weight:500}.price-box dd small{font-size:.72rem}.price-contact{min-height:108px;display:grid;place-items:center;border:1px solid var(--line);background:rgba(255,255,255,.55);color:var(--muted);font-family:var(--serif)}
.faq{display:grid;grid-template-columns:.62fr 1.38fr;gap:6vw;background:#f8f4ef}.faq-heading{align-self:start}.faq-heading small{max-width:330px}.faq-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}.faq details{border-bottom:1px solid var(--line);background:#fff}.faq summary{position:relative;padding:1rem 2.4rem 1rem 1rem;list-style:none;cursor:pointer;font-family:var(--serif);font-size:.76rem}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";position:absolute;right:1rem;color:var(--terracotta)}.faq details[open] summary::after{content:"−"}.faq details p{margin:0;padding:0 1rem 1rem;color:var(--muted);font-size:.74rem}
.contact{position:relative;height:clamp(460px,40vw,560px);overflow:hidden}.contact>img{height:100%;object-fit:cover;object-position:center}.contact-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,253,249,.95),rgba(255,253,249,.68) 38%,rgba(255,253,249,0) 66%)}.contact-copy{position:absolute;left:8vw;top:47%;transform:translateY(-50%);z-index:2}.contact h2{font-size:clamp(1.8rem,3vw,3rem)}.contact-copy>p{margin:1rem 0 1.5rem;color:var(--muted);font-family:var(--serif);font-size:.88rem}.contact-copy>small{display:block;margin-top:.7rem;color:var(--muted);font-size:.68rem}
.site-footer{min-height:108px;padding:2rem 5vw;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;background:#fff}.site-footer nav{display:flex;justify-content:center;flex-wrap:wrap;gap:1.4rem;font-family:var(--serif);font-size:.68rem}.site-footer>small{font-size:.6rem;color:var(--muted)}.mobile-cta{display:none}
.contact-dialog{max-width:500px;width:calc(100% - 2rem);padding:3rem;border:0;border-radius:1rem;background:var(--paper);color:var(--ink);box-shadow:0 26px 80px rgba(62,56,52,.2)}.contact-dialog::backdrop{background:rgba(46,39,35,.55);backdrop-filter:blur(3px)}.contact-dialog h2{font-size:2rem}.contact-dialog>p:not(.mini-label){color:var(--muted)}.dialog-close{position:absolute;right:1rem;top:1rem;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer}.dialog-ok{margin-top:1rem}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1020px){.site-header{height:68px}.menu-button{display:block;position:relative;z-index:3}.menu-button[aria-expanded="true"]>span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-button[aria-expanded="true"]>span:nth-child(2){opacity:0}.menu-button[aria-expanded="true"]>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.global-nav{position:fixed;inset:0;flex-direction:column;justify-content:center;gap:1.3rem;background:var(--paper);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease}.global-nav.is-open{opacity:1;visibility:visible;pointer-events:auto}.global-nav a{font-size:1rem}.hero{height:650px;margin:0}.hero-image{object-position:58% center}.trouble-grid{grid-template-columns:repeat(3,1fr);row-gap:2.4rem}.concept-panels{grid-template-columns:1fr;gap:1rem}.concept-cross{width:auto;margin:-.7rem 0}.program-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}.beginner{grid-template-columns:1fr 1fr}.beginner-steps{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr)}.beginner-steps li{flex-direction:column;text-align:center}.faq{grid-template-columns:1fr;gap:2.5rem}}
@media(max-width:640px){body{padding-bottom:64px}.site-header{padding:0 5vw}.brand-mark{font-size:1.7rem}.brand-name{font-size:.65rem}.hero{height:720px}.hero-image{object-position:63% center}.hero-shade{background:linear-gradient(180deg,rgba(255,253,249,.92) 0%,rgba(255,253,249,.68) 47%,rgba(255,253,249,.06) 72%)}.hero-copy{left:6vw;right:6vw;top:5rem;transform:none}.hero h1{font-size:clamp(1.85rem,8.5vw,2.55rem);line-height:1.55}.mobile-break{display:block}.hero-lead{font-size:1rem}.hero-tags{gap:.35rem}.hero-tags span{font-size:.58rem;padding:.2rem .55rem}.round-button{min-height:52px;gap:1rem;padding:.7rem 1.25rem;font-size:.78rem}.section{padding:4.7rem 5vw}.section-title h2,.beginner h2,.faq h2{font-size:1.85rem}.section-title small{font-size:.76rem}.trouble-grid{grid-template-columns:repeat(2,1fr)}.trouble-item img{width:116px}.trouble-message{gap:.8rem;font-size:1.15rem}.trouble-message span{width:28px}.concept-panel{min-height:0;grid-template-columns:1fr}.concept-panel img{height:240px}.concept-panel.move div{order:2}.concept-panel.move img{order:1}.concept-panel>div{padding:2rem 1.5rem;text-align:center}.program-grid{grid-template-columns:1fr;gap:1.7rem}.program-card{display:grid;grid-template-columns:.95fr 1.05fr}.program-card img{height:250px}.program-card>div{min-height:250px;padding:1.3rem 2.8rem 1.2rem 1rem;display:flex;flex-direction:column;justify-content:center}.beginner{grid-template-columns:1fr;gap:2rem}.beginner-copy{padding:0}.beginner-image{height:260px}.beginner-steps{grid-column:auto;grid-template-columns:1fr}.beginner-steps li{flex-direction:row;text-align:left;border-bottom:1px solid rgba(62,56,52,.08)}.price-grid{grid-template-columns:1fr}.price-box dl>div{padding:.75rem .65rem}.price-box dd b{font-size:1.3rem}.faq-columns{grid-template-columns:1fr;gap:0}.contact{height:560px}.contact>img{object-position:65% center}.contact-shade{background:linear-gradient(180deg,rgba(255,253,249,.94),rgba(255,253,249,.7) 50%,rgba(255,253,249,.08))}.contact-copy{left:6vw;right:6vw;top:4.5rem;transform:none}.contact h2{font-size:1.75rem}.site-footer{grid-template-columns:1fr;text-align:center}.site-footer .brand{justify-content:center}.site-footer nav{flex-direction:column}.mobile-cta{position:fixed;z-index:90;left:0;right:0;bottom:0;min-height:64px;display:flex;align-items:center;justify-content:center;gap:1rem;background:var(--terracotta);color:#fff;font-size:.78rem;font-weight:600}.contact-dialog{padding:2.7rem 1.5rem 2rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Keep the navigation readable before the desktop links begin to wrap. */
@media(max-width:1180px){
  .site-header{height:68px}
  .menu-button{display:block;position:relative;z-index:3}
  .menu-button[aria-expanded="true"]>span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-button[aria-expanded="true"]>span:nth-child(2){opacity:0}
  .menu-button[aria-expanded="true"]>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .global-nav{position:absolute;top:100%;right:0;bottom:auto;left:0;height:calc(100dvh - 68px);padding:clamp(2.25rem,7vh,4.5rem) 5vw 3rem;display:flex;flex-direction:column;justify-content:flex-start;gap:1.15rem;overflow-y:auto;background:rgba(255,253,249,.99);border-top:1px solid var(--line);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease}
  .global-nav.is-open{opacity:1;visibility:visible;pointer-events:auto}
  .global-nav a{font-size:.95rem;line-height:1.5}
  .global-nav .header-cta{margin-top:.45rem;padding:.8rem 1.5rem}
}

/* Three-part wellness concept: warm, move, and relax. */
.concept .section-title h2 strong{color:#9b766a;font-weight:500}
.concept-panels{max-width:1240px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:stretch}
.concept-panel{min-height:430px;grid-template-columns:1fr;grid-template-rows:220px 1fr;background:rgba(255,255,255,.78)}
.concept-panel img{height:220px;object-fit:cover}
.concept-panel>div{padding:1.8rem 1.35rem;text-align:center}
.concept-panel h3{font-size:1.8rem}
.concept-panel.relax h3{color:#9b766a}
.concept-panel h3 small{font-size:.78rem}
.concept-panel p{font-size:.74rem}
.concept-cross{align-self:center;width:48px;margin:0 -8px;font-size:2rem}

@media(max-width:1020px){
  .concept-panels{grid-template-columns:1fr;gap:1rem}
  .concept-panel{min-height:280px;grid-template-columns:.95fr 1.05fr;grid-template-rows:1fr}
  .concept-panel img{height:100%;min-height:280px}
  .concept-cross{display:none}
}

@media(max-width:640px){
  .concept .section-title h2{font-size:1.7rem}
  .concept-panel{min-height:0;grid-template-columns:1fr;grid-template-rows:auto}
  .concept-panel img{height:220px;min-height:0}
}

.reveal{opacity:1;transform:none}
.site-business-summary{max-width:1120px;margin:2.5rem auto;padding:0 5vw;font-size:1rem;line-height:1.9}.site-business-summary a{color:#91513d;text-decoration:underline;text-underline-offset:.2em}.site-location-footer{padding:2rem 5vw;background:#f5eee8;text-align:center;font-size:.85rem}.site-location-footer p{margin:.5rem 0}.site-location-footer a{text-decoration:underline;text-underline-offset:.2em}.membership-contract-note{max-width:1000px;margin:1.2rem auto;color:#65584f;text-align:center;font-weight:600}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #8d513b;outline-offset:4px}img{height:auto}
