:root{--bg:#F7F7F4;--ink:#273A46;--stone:#DBDDD9;--mist:#AEB7B5;--taupe:#8A7568;--note:#52606A;--header-size:100px;--bar-size:96px;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-size) + 18px)}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.8 "Yu Gothic",YuGothic,Meiryo,sans-serif;overflow-wrap:anywhere}body.nav-open{overflow:hidden}main,section,h3[tabindex]{scroll-margin-top:calc(var(--header-size) + 24px)}main:focus,h3[tabindex]:focus{outline:none}a{color:inherit;text-underline-offset:6px}a,button,input,select,summary{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}img{display:block;width:100%;height:auto}figure{margin:0}figcaption{font-size:14px;color:var(--note);padding-top:12px}h1,h2,h3{font-family:"Yu Mincho",YuMincho,"Hiragino Mincho ProN",serif;font-weight:400;line-height:1.5}h1{font-size:56px;letter-spacing:.05em;margin:28px 0 32px}h2{font-size:36px;margin:18px 0 32px;text-wrap:balance}h3{font-size:23px;margin:12px 0 20px}p{margin:0 0 20px}small,.note{font-size:14px;color:var(--note)}.note{line-height:1.85}.eyebrow{font:14px/1.5 Arial,sans-serif;letter-spacing:.19em;margin:0 0 12px}.phrase{display:inline-block;max-width:100%}.logo{font:46px/1 Georgia,serif;letter-spacing:.06em;text-decoration:none;flex-shrink:0}.logo small{display:block;font:10px/1.5 Arial,sans-serif;letter-spacing:.18em;padding-top:10px;color:var(--ink)}.site-header{position:sticky;top:0;z-index:20;background:var(--bg);display:flex;align-items:center;gap:28px;padding:24px 48px;min-height:96px;flex-wrap:wrap}.desktop-nav{display:flex;align-items:center;gap:28px;margin-left:auto;flex-wrap:wrap}.desktop-nav a{font:14px/1.5 Arial,sans-serif;text-decoration:none;min-height:48px;display:flex;flex-direction:column;justify-content:center}.desktop-nav small{font:14px/1.5 "Yu Gothic",Meiryo,sans-serif;margin-top:4px}.header-book{border-bottom:1px solid;text-decoration:none;min-height:48px;display:flex;align-items:center;margin-left:12px;font-size:15px}.menu-toggle{display:none;background:none;border:0;border-bottom:1px solid var(--ink);font-size:14px;min-height:48px;padding:8px 0;color:var(--ink)}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:56px;padding:14px 28px;background:var(--ink);color:var(--bg);text-decoration:none;border:1px solid var(--ink);border-radius:0;font-size:15px;line-height:1.7;text-align:center}.button svg,.price-link svg{width:32px;height:20px;flex-shrink:0}.text-link{display:inline-flex;align-items:center;min-height:48px;border-bottom:1px solid var(--ink);text-decoration:none;font-size:15px}.hero{display:grid;grid-template-columns:58% 42%;margin:18px 48px 0;align-items:center}.hero-photo{align-self:stretch}.hero-photo img{height:650px;object-fit:cover;object-position:42% 50%}.hero-copy{padding:32px 0 52px 64px}.hero-copy .service{font-size:14px;letter-spacing:.12em;margin-top:34px}.hero-copy .subcopy{line-height:1.85;margin:32px 0}.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:20px}.disclaimer{margin-top:22px}.container{max-width:1280px;margin:auto;padding:0 48px}.section{padding:112px 0}.section-heading{max-width:46em;margin-bottom:44px}.for-you{padding-top:96px}.for-you .container{border-top:1px solid var(--mist);padding-top:72px}.for-you-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:96px;align-items:start}.for-you-grid figure{max-width:420px}.for-you-grid img{aspect-ratio:3/4;object-fit:cover}.for-you-copy article{border-top:1px solid var(--mist);padding:28px 0}.for-you-copy article h3{margin-top:6px}.closing-copy{border-top:1px solid var(--mist);padding-top:28px;font-family:"Yu Mincho",YuMincho,serif;font-size:23px}.philosophy{background:var(--stone)}.wide-photo img{aspect-ratio:3/2;object-fit:cover}.philosophy-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin:44px 0}.philosophy-columns article{border-top:1px solid var(--note);padding-top:28px}.number{font:32px/1 Georgia,serif;margin-bottom:20px}.philosophy-columns h3{font-size:23px}.studio{padding-top:0}.studio-wide{max-width:1600px;margin:auto}.studio-wide img{max-height:780px;aspect-ratio:2/1;object-fit:cover}.studio-intro{padding-top:72px}.studio-description{max-width:46em}.facilities{margin-top:24px}.instructor-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:112px;margin-top:64px;align-items:center}.instructor-copy{max-width:39em}.instructor-grid figure{max-width:360px;justify-self:end}.instructor-grid img{aspect-ratio:3/4;object-fit:cover}.gallery{border-top:1px solid var(--mist)}.gallery-top{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}.gallery-top .section-heading{margin-bottom:16px}.gallery-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding-top:4px}.gallery-filters button{border:0;border-bottom:1px solid var(--mist);background:none;text-align:left;color:var(--note);min-height:68px;padding:10px 0;font-size:14px;line-height:1.7}.gallery-filters button span{display:block}.gallery-filters button span[lang]{font-family:Arial,sans-serif}.gallery-filters button[aria-pressed=true]{color:var(--ink);border-bottom:3px solid var(--ink)}.gallery-filters button[aria-pressed=true]::after{content:'選択中';display:block;font-size:14px}.gallery-intro{margin:24px 0 36px;max-width:38em}.gallery-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:start}.gallery-grid img{aspect-ratio:3/2;object-fit:cover}.gallery-grid figure:nth-child(even){padding-top:64px}.gallery-grid figcaption{min-height:48px}.gallery>.container>.note{margin-top:28px}.voices{border-top:1px solid var(--mist);margin-top:72px;padding-top:40px}.voice-quotes{display:grid;grid-template-columns:1fr 1fr;gap:56px}.voice-quotes blockquote{margin:12px 0 28px;border-bottom:1px solid var(--mist);padding-bottom:32px;font-family:"Yu Mincho",YuMincho,serif;font-size:21px;line-height:1.8}.session{background:var(--stone)}.session-grid{display:grid;grid-template-columns:1fr 1fr;gap:96px}.session-intro figure{margin-top:48px}.session-intro img{aspect-ratio:3/2;object-fit:cover}.timeline{list-style:none;margin:0 0 24px;padding:0;border-left:1px solid var(--note)}.timeline li{position:relative;padding:0 0 36px 32px}.timeline li::before{content:'';position:absolute;width:7px;height:7px;background:var(--ink);left:-4px;top:8px;border-radius:50%}.timeline li h3{margin:8px 0 16px}.timeline li:last-child{padding-bottom:0}.program-comparison{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px}.program-description article{border-top:1px solid var(--mist);padding:24px 0}.program-description h3{margin:0 0 16px}.program-comparison table{border-collapse:collapse;width:100%;table-layout:fixed}.program-comparison th,.program-comparison td{border-bottom:1px solid var(--mist);padding:18px 12px;text-align:left;vertical-align:top;font-weight:400}.program-comparison thead th{border-top:1px solid var(--ink)}.program-comparison th:first-child{width:24%}.prices{margin-top:72px}.prices>h3{margin-bottom:32px}.price-row{display:grid;grid-template-columns:2fr .6fr .8fr 1.5fr;gap:24px;align-items:center;border-top:1px solid var(--mist);padding:32px 0}.price-row h3{font:20px/1.8 "Yu Gothic",YuGothic,Meiryo,sans-serif;margin:4px 0}.price-row .eyebrow{font-size:14px;margin:0}.price-row p{margin:0}.price-row.trial-price{border-top-color:var(--ink)}.price strong{font:30px/1.4 Georgia,serif;white-space:nowrap;font-weight:400}.price small{display:block}.price-link{display:flex;align-items:center;justify-content:space-between;min-height:56px;border-bottom:1px solid var(--ink);text-decoration:none;font-size:15px;gap:12px}.prices>.note{border-top:1px solid var(--mist);padding-top:28px;margin-top:4px}.faq{background:#ECEEEB}.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.faq details{border-top:1px solid var(--mist)}.faq details:last-of-type{border-bottom:1px solid var(--mist)}.faq summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px}.faq summary::-webkit-details-marker{display:none}.faq details p{margin:0;padding:0 24px 28px 0}.faq-icon{font-size:23px;flex-shrink:0}.faq details[open] .faq-icon{transform:rotate(45deg)}.health-note{margin:36px 0 24px;border-left:2px solid var(--ink);padding-left:24px}.health-note h3{font:18px/1.8 "Yu Gothic",Meiryo,sans-serif;margin-top:0}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}.location-info{background:var(--ink);color:var(--bg);padding:40px}.location-info small,.location-info .note{color:var(--bg)}.location-info dl{margin:28px 0 0}.location-info dl>div{padding:20px 0;border-top:1px solid var(--mist);display:grid;grid-template-columns:6em 1fr;gap:20px}.location-info dt{font-size:14px}.location-info dd{margin:0}.access-map{padding:36px;background:var(--stone);display:flex;flex-direction:column;align-items:center;gap:24px;min-height:500px}.access-map>span{font-size:22px}.access-map .eyebrow{text-align:center;max-width:100%}.map-line{height:48px;border-left:1px solid var(--note);width:1px;flex-shrink:0}.map-brand{font:36px/1.4 Georgia,serif}.map-brand small{display:block;text-align:center}.reservation{border-top:1px solid var(--mist)}.reservation>.container>p{max-width:46em}.booking-workspace{display:grid;grid-template-columns:1.4fr 1fr;margin-top:48px;border:1px solid var(--mist);align-items:stretch}.booking-panel{padding:40px;min-width:0}.demo-mark{font-size:14px;letter-spacing:.1em;margin-bottom:28px}.booking-progress{display:flex;list-style:none;margin:0 0 32px;padding:0;gap:4px;flex-wrap:wrap}.booking-progress li{flex:1;min-width:54px;min-height:56px;text-align:center;padding:8px 2px;border-bottom:1px solid var(--mist);font-size:14px}.booking-progress li span{display:block;margin-top:4px}.booking-progress li[aria-current]{border-bottom:3px solid var(--ink);font-weight:600}.booking-step h3{font-size:26px;margin-top:0}.booking-step>p{margin-top:20px}.booking-step fieldset{margin:24px 0 32px;padding:0;border:0;min-width:0}.booking-step legend{margin-bottom:14px;font-size:15px;padding:0}.tier-options{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tier-options label{display:flex;align-items:center;gap:12px;min-height:52px;border:1px solid var(--mist);padding:12px 16px}.tier-options label:has(input:checked),.choice:has(input:checked){border:2px solid var(--ink)}input[type=radio]{width:20px;height:20px;margin:0;accent-color:var(--ink);flex-shrink:0}.choice{border:1px solid var(--mist);padding:20px 16px;display:flex;align-items:center;gap:16px;margin-bottom:16px;min-height:92px;cursor:pointer}.choice>span{min-width:0}.choice strong{display:block;font-weight:400;font-size:16px}.choice>span>span{display:block;color:var(--note);font-size:14px;margin-top:8px}.choice:focus-within,.tier-options label:focus-within{outline:3px solid var(--ink);outline-offset:4px}.field-label{display:block;margin:28px 0 12px}select{width:100%;min-height:56px;padding:12px 40px 12px 14px;border:1px solid var(--note);border-radius:0;background:var(--bg);color:var(--ink);font-size:16px}select:disabled{color:var(--note)}.next{width:100%;margin-top:28px;min-height:56px}.back{display:block;margin:16px auto 0;padding:10px 8px;min-height:48px;border:0;border-bottom:1px solid var(--ink);background:none;color:var(--ink);font-size:15px}.booking-summary{margin:20px 0 28px}.booking-summary>div{padding:16px 0;border-bottom:1px solid var(--mist)}.booking-summary dt{font-size:14px;color:var(--note);margin-bottom:10px}.booking-summary dd{margin:0}.selection-label{font-size:15px}.empty-state,#booking-error{padding:18px;border-left:3px solid #754C3B;background:#EEE5DF;color:#56382C;margin:24px 0 0}.complete-mark{font-size:40px;line-height:1}.session-summary{background:var(--ink);color:var(--bg);padding:40px;min-width:0}.session-summary .note{color:var(--bg);margin:32px 0 0}.session-summary h3{font-size:24px;margin-top:24px}.session-summary dl{margin:32px 0}.session-summary dl>div{border-bottom:1px solid var(--mist);padding:20px 0}.session-summary dt{font-size:14px;margin-bottom:8px}.session-summary dd{margin:0}.session-summary dd:first-letter{font-variant-numeric:tabular-nums}.site-footer{border-top:1px solid var(--mist);padding:72px 0 96px}.footer-label{margin-top:32px}.site-footer .note{max-width:58em;margin-top:28px}.copyright{font-size:14px;margin-top:36px}.fixed-booking{position:fixed;bottom:0;left:0;right:0;background:var(--bg);border-top:1px solid var(--mist);padding:12px 20px calc(10px + var(--safe-bottom));display:flex;align-items:center;gap:14px;z-index:15}.fixed-booking>.button{flex:1;min-width:0;font-size:15px;padding:12px 18px}.fixed-booking>span{font-size:14px;max-width:5em}.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{position:fixed;top:-100px;left:12px;background:var(--bg);color:var(--ink);padding:12px;z-index:40}.skip:focus{top:12px}.skip,.button,.price-link,.header-book,.text-link,.menu-toggle,summary,.back,.gallery-filters button{transition:opacity .15s ease}.button:hover,.price-link:hover,.header-book:hover,.text-link:hover{opacity:.8}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:5px}.session-summary a:focus-visible{outline-color:var(--bg)}[hidden]{display:none!important}
dialog{border:1px solid var(--mist);background:var(--bg);color:var(--ink);padding:28px;width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto}dialog::backdrop{background:rgba(39,58,70,.35)}.nav-top{display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--mist);padding-bottom:20px}.nav-top p{margin:0}.nav-close{min-height:48px;padding:8px 12px;border:1px solid var(--mist);background:none;color:var(--ink)}dialog nav>a{display:block;padding:14px 0;min-height:48px;text-decoration:none;border-bottom:1px solid var(--mist)}dialog nav>.button{display:flex;padding:14px 20px;margin:24px 0}dialog>.note{margin:24px 0 0}
@media(max-width:1199px){.gallery-top{grid-template-columns:1fr}.gallery-filters{max-width:660px}.philosophy-columns{gap:28px}.session-grid{gap:64px}.program-comparison{gap:40px}.price-row{grid-template-columns:1.5fr .45fr .8fr 1.2fr;gap:16px}.instructor-grid{gap:64px}.for-you-grid{gap:64px}.booking-panel,.session-summary{padding:32px}}
@media(max-width:1099px){.desktop-nav{display:none}.site-header{padding:22px 28px;gap:24px}.header-book{margin-left:auto}.menu-toggle{display:block}.hero{margin:16px 28px 0;grid-template-columns:55% 45%}.hero-photo img{height:620px;object-position:40%}.hero-copy{padding-left:32px}h1{font-size:44px}.container{padding:0 28px}.faq-grid{gap:48px}.price-row h3{font-size:18px}.price strong{font-size:27px}.for-you .container{margin:0 28px;padding-left:0;padding-right:0}}
@media(max-width:1023px){.hero{display:flex;flex-direction:column;align-items:stretch;margin:0}.hero-copy{order:-1;padding:44px 32px}.hero-copy h1{font-size:40px}.hero-photo img{height:auto;aspect-ratio:4/3;object-fit:cover}.hero-photo figcaption{padding:16px 32px}.hero-actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:24px}.hero-copy .subcopy{margin:28px 0}.hero-copy .service{margin-top:24px}.disclaimer{margin-top:24px}.hero-actions .button{padding:14px 24px}.program-comparison{grid-template-columns:1fr}.program-description{display:grid;grid-template-columns:1fr 1fr;gap:32px}.booking-workspace{grid-template-columns:1fr}.session-summary{order:-1}.session-summary h3{display:none}.session-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;margin:16px 0}.session-summary dl>div{padding:12px 0}.session-summary .note{margin-top:16px}.session-summary{padding:28px 32px}.gallery-grid figure:nth-child(even){padding-top:44px}.location-info{padding:28px}.location-info dl>div{display:block}.location-info dt{margin-bottom:8px}.access-map{min-height:480px;padding:28px}}
@media(max-width:760px){body{font-size:15px}h1{font-size:32px!important}h2{font-size:28px}h3{font-size:22px}.site-header{padding:20px 24px;gap:20px;min-height:98px}.logo{font-size:36px}.logo small{font-size:10px;padding-top:7px}.header-book{font-size:14px;margin-left:auto}.menu-toggle{font-size:14px}.hero-copy{padding:34px 24px 32px}.hero-copy h1{margin:24px 0 28px;line-height:1.6}.hero-copy .subcopy{margin:0 0 24px}.hero-copy .service{margin:0 0 20px;letter-spacing:.12em}.hero-actions{gap:16px}.hero-actions .button{padding:14px 20px}.hero-photo img{aspect-ratio:4/3;object-position:40% 50%}.hero-photo figcaption{padding:16px 24px}.disclaimer{margin-top:24px}.container{padding:0 24px}.section{padding:72px 0}.section-heading{margin-bottom:32px}.for-you{padding-top:56px}.for-you .container{margin:0 24px;padding-top:40px}.for-you-grid{display:flex;flex-direction:column;gap:32px}.for-you-grid figure{order:2;width:100%;max-width:none}.for-you-copy{order:1;width:100%}.for-you-copy article{padding:24px 0}.for-you-copy h3{font-size:21px}.closing-copy{font-size:22px}.for-you-grid img{max-height:600px;object-position:50% 35%}.philosophy-columns{display:block;margin:32px 0}.philosophy-columns article{margin-top:28px;padding-top:24px}.philosophy-columns h3{font-size:22px}.studio{padding-top:0}.studio-wide img{aspect-ratio:3/2}.studio-intro{padding-top:44px}.instructor-grid{display:flex;flex-direction:column;margin-top:40px;gap:32px}.instructor-grid figure{order:-1;max-width:320px;width:100%;align-self:flex-start}.instructor-copy{max-width:none}.gallery-top{display:block}.gallery-filters{grid-template-columns:1fr 1fr;gap:12px 24px;margin:28px 0 0}.gallery-filters button{min-height:72px}.gallery-intro{margin:24px 0 32px}.gallery-grid{display:block}.gallery-grid figure:nth-child(even){padding-top:0;margin-top:28px}.gallery-grid figcaption{min-height:0}.voices{margin-top:48px;padding-top:32px}.voice-quotes{display:block}.voice-quotes blockquote{font-size:20px;margin-top:24px;padding-bottom:28px}.session-grid{display:flex;flex-direction:column;gap:32px}.session-intro{display:contents}.session-intro .section-heading{order:0;margin:0}.session-flow{order:1}.session-intro figure{order:2;margin:0}.timeline li{padding-left:24px}.timeline li h3{font-size:22px}.program-description{display:block}.program-description article{padding:24px 0}.program-comparison table{font-size:14px}.program-comparison th,.program-comparison td{padding:16px 6px}.program-comparison th:first-child{width:24%}.prices{margin-top:48px}.price-row{grid-template-columns:1fr 1fr;gap:16px;padding:28px 0}.price-row>div{grid-column:1/-1}.price-row h3{font-size:20px}.price-row .price{justify-self:start}.price-row .price-link{grid-column:1/-1}.price strong{font-size:28px}.price-link{font-size:15px}.faq-grid{display:block}.faq summary{padding:22px 0}.faq details p{padding-right:0}.location-grid{display:block}.location-info{padding:28px 24px}.location-info dl>div{padding:18px 0}.location-grid figure{margin-top:28px}.access-map{min-height:460px;padding:28px 20px}.access-map>span{font-size:20px}.location-info h3{font-size:23px}.booking-workspace{margin-top:32px}.booking-panel{padding:28px 22px}.booking-step h3{font-size:25px}.booking-progress{margin-bottom:28px}.session-summary{padding:24px 22px}.session-summary dl{gap:12px 20px}.session-summary dd{font-size:15px}.session-summary .eyebrow{margin-bottom:0}.choice{padding:20px 14px;gap:12px}.choice strong{font-size:16px}.tier-options{gap:12px}.tier-options label{padding:12px}.site-footer{padding:56px 0 calc(128px + var(--safe-bottom))}.fixed-booking>span{font-size:14px}.fixed-booking .button{gap:12px}.fixed-booking .button svg{width:26px}.header-book,.menu-toggle{min-height:48px}dialog{padding:24px}}
@media(max-width:359px){.container,.hero-copy,.hero-photo figcaption,.site-header{padding-left:20px;padding-right:20px}.site-header{gap:14px}.header-book{margin-left:auto}.logo{font-size:34px}.for-you .container{margin:0 20px}.hero-actions{flex-direction:column;align-items:flex-start}.hero-actions .button{font-size:14px}.booking-panel,.session-summary{padding:24px 18px}.session-summary dl{display:block}.fixed-booking{padding-left:12px;padding-right:12px;gap:10px}.fixed-booking .button{padding:12px 14px;font-size:14px}.fixed-booking>span{max-width:4em}.tier-options label{padding:12px 10px}.price strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Final crop and compact mobile progress, preserving approved composition. */
.booking-progress li{min-width:3.2em}.booking-progress li span{white-space:nowrap}
@media(min-width:1024px) and (max-width:1099px){.hero-photo img{object-position:25% 50%}}
@media(max-width:359px){.session-summary dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
