*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--mint:#e8f4f0;--sage:#2d6a5f;--flow:#95d5b2;--font:'Zen Maru Gothic','Noto Sans JP',sans-serif}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--mint);color:#1b4332;line-height:1.75}
img{max-width:100%;display:block;object-fit:cover}
a{color:var(--sage)}
.yoga-head{display:flex;align-items:center;gap:1.5rem;padding:1rem 2rem;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);position:sticky;top:0;z-index:50;flex-wrap:wrap}
.yoga-head .logo{font-size:1.35rem;font-weight:700;text-decoration:none;color:var(--sage)}
.yoga-head nav{display:flex;gap:1.2rem;flex-wrap:wrap}
.yoga-head nav a{text-decoration:none;color:#1b4332;font-size:.9rem}
.menu{display:none;background:none;border:none;font-size:1.3rem;cursor:pointer;margin-left:auto}
.hero-flow{position:relative;padding:4rem 2rem 6rem;overflow:hidden}
.hero-flow .curve-top{position:absolute;top:0;left:0;width:100%;height:80px}
.hero-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:2.5rem;align-items:center;position:relative;z-index:2}
.hero-flow h1{font-size:clamp(2rem,4.5vw,3rem);margin:.75rem 0;line-height:1.35}
.hero-flow .tag{color:var(--sage);font-size:.85rem;letter-spacing:.12em}
.hero-flow .cta{display:inline-block;margin-top:1.25rem;background:var(--sage);color:#fff;padding:.9rem 2.2rem;text-decoration:none;border-radius:999px}
.hero-flow img{border-radius:40% 60% 55% 45% / 50% 45% 55% 50%;box-shadow:0 20px 50px rgba(45,106,95,.2)}
.section-curve{position:relative;padding:5rem 2rem}
.section-curve .wave{position:absolute;left:0;width:100%;pointer-events:none}
.section-curve .wave.top{top:-1px;height:72px}
.section-curve .wave.bot{bottom:-1px;height:72px;transform:rotate(180deg)}
.section-curve.alt{background:#fff}
.section-curve h2{text-align:center;font-size:1.85rem;margin-bottom:.5rem}
.section-curve .lead{text-align:center;max-width:640px;margin:0 auto 2.5rem;opacity:.85}
.flow-products{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1100px;margin:0 auto}
.flow-products article{background:var(--mint);border-radius:24px 8px 24px 8px;padding:1.25rem;transition:transform .3s}
.flow-products article:hover{transform:translateY(-6px)}
.flow-products img{aspect-ratio:4/5;border-radius:20px 4px 20px 4px;margin-bottom:1rem}
.flow-products h3{font-size:1rem}
.flow-products .price{font-weight:700;color:var(--sage);margin:.4rem 0}
.flow-products button{width:100%;border:2px solid var(--sage);background:transparent;padding:.55rem;border-radius:999px;cursor:pointer;font-family:inherit}
.flow-products button:hover{background:var(--sage);color:#fff}
.pose-row{display:flex;gap:2rem;max-width:1000px;margin:2rem auto 0;flex-wrap:wrap;justify-content:center}
.pose-row div{flex:1 1 200px;text-align:center;padding:1.5rem;background:linear-gradient(135deg,var(--mint),#fff);border-radius:50% 20% 50% 20%}
.pose-row strong{display:block;font-size:2rem;color:var(--flow);margin-bottom:.5rem}
.studio{padding:4rem 2rem;max-width:1000px;margin:0 auto}
.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-top:2rem}
.studio-grid img{border-radius:30% 70% 70% 30% / 30% 30% 70% 70%}
.timeline{max-width:800px;margin:0 auto;padding:0 2rem 4rem}
.timeline li{list-style:none;padding:1.25rem 0 1.25rem 2rem;border-left:3px solid var(--flow);margin-left:1rem;position:relative}
.timeline li::before{content:'';width:12px;height:12px;background:var(--sage);border-radius:50%;position:absolute;left:-8px;top:1.5rem}
.voices{padding:3rem 2rem;background:var(--mint)}
.voices blockquote{max-width:680px;margin:0 auto 1.5rem;padding:1.5rem;background:#fff;border-radius:16px 4px 16px 4px;box-shadow:0 8px 24px rgba(0,0,0,.06)}
.voices cite{display:block;margin-top:.75rem;font-size:.85rem;opacity:.7}
.faq{padding:3rem 2rem;max-width:720px;margin:0 auto}
.faq details{margin-bottom:1rem;border:1px solid #c8e6d5;padding:1rem;border-radius:12px;background:#fff}
.faq summary{cursor:pointer;font-weight:600}
.legal{padding:3rem 2rem;background:var(--sage);color:#fff;font-size:.88rem}
.legal dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem .75rem;margin:1rem 0}
.legal h3,.legal h4{color:var(--flow);margin:1.25rem 0 .5rem}
.legal a{color:var(--flow)}
.copy{margin-top:2rem;opacity:.65}
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--sage);color:#fff;padding:1rem 1.5rem;border-radius:12px;transform:translateY(150%);transition:transform .3s;z-index:99}
.toast.show{transform:translateY(0)}
@media(max-width:768px){
  .menu{display:block}
  .yoga-head nav{display:none;width:100%;flex-direction:column}
  .yoga-head nav.open{display:flex}
  .hero-inner,.flow-products,.studio-grid{grid-template-columns:1fr}
  .flow-products{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){.flow-products{grid-template-columns:1fr}}
