/* Movement-led narrative, 2026-10-01. */
.reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:80;pointer-events:none}
.hero{min-height:770px;background:#fff;overflow:hidden}
.hero-body{padding:86px 0 130px;z-index:4;pointer-events:none}
.hero-body a{pointer-events:auto}
.hero-body>.eyebrow{margin-bottom:25px}
.hero-category{font-size:20px;letter-spacing:.12em;font-weight:600;color:#111;margin-bottom:24px}
.hero h1{font-size:clamp(33px,3.3vw,49px);font-weight:600;line-height:1.7;letter-spacing:.02em}
.hero-description{font-size:13px;line-height:2.2;margin:25px 0;max-width:425px;color:#625d57}
.hero .button{width:340px;min-height:67px;font-size:13px}
.hero-trial{display:inline-flex;align-items:center;gap:16px;margin-top:18px;font-size:11px;border-bottom:1px solid #b6aaa0;padding-bottom:6px}
.hero-bottom{z-index:5;background:#fff;color:#6a635d;border-top:1px solid #ddd;padding-top:20px;bottom:25px}
.hero-visual{position:absolute;inset:36px 0 108px auto;width:47%;display:grid;grid-template-columns:1.08fr 1fr;gap:8px;z-index:1}
.training-reel,.pilates-reel{position:relative;overflow:hidden;margin:0;background:#ece8e3;min-width:0}
.training-reel{margin-top:35px;margin-bottom:0}
.pilates-reel{margin-bottom:45px}
.training-reel img,.pilates-reel img{width:100%;height:100%;object-fit:cover;filter:saturate(.5);will-change:transform}
.training-frame{position:absolute;inset:0;opacity:0;transform:scale(1.08);transition:opacity 1.25s ease,transform 7s linear}
.training-frame.is-active{opacity:1;transform:scale(1)}
.training-frame[data-frame="0"]{object-position:48% center}.training-frame[data-frame="1"]{object-position:38% center}.training-frame[data-frame="2"]{object-position:50% center}
.pilates-reel img{object-position:61% center;animation:pilates-breathe 14s ease-in-out infinite alternate}
.reel-shade{position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#0009);pointer-events:none}
.reel-label{position:absolute;bottom:29px;left:22px;right:10px;color:#fff;z-index:2}
.reel-label small{font:500 10px var(--font-en);letter-spacing:.13em;display:block;margin-bottom:8px}
.reel-label strong{font:600 40px/1 var(--font-en);letter-spacing:.025em;display:block}
.reel-label span{font-size:10px;display:block;margin-top:8px}
.reel-connector{position:absolute;top:46%;left:51%;transform:translate(-50%,-50%);border-radius:50%;width:51px;height:51px;background:var(--red);color:#fff;display:grid;place-items:center;font-size:25px;z-index:4}
.motion-control{position:absolute;right:20px;bottom:6px;z-index:5;background:white;border:1px solid #d2cac2;padding:9px 12px;color:#645c54;font:400 10px var(--font-ja);cursor:pointer;min-height:38px}
.motion-control:hover{border-color:var(--red)}
.motion-control:focus-visible,.event-tab:focus-visible{outline:3px solid var(--red);outline-offset:4px}
.hero-sequence{position:absolute;top:0;left:0;font:500 10px var(--font-en);letter-spacing:.12em;color:#97806b}
@keyframes pilates-breathe{from{transform:scale(1)}to{transform:scale(1.075)}}
.motion-paused .pilates-reel img{animation-play-state:paused}.motion-paused .training-frame{transition:none}
.movement-ribbon{overflow:hidden;border-bottom:1px solid #e5ded6;background:#fff;padding:17px 0;color:#b49b85}
.ribbon-track{width:max-content;display:flex;gap:35px;font:500 16px/1.5 var(--font-en);letter-spacing:.14em;animation:ribbon-slide 38s linear infinite}
.ribbon-track span{display:flex;align-items:center;gap:35px}.ribbon-track i{font-style:normal;font-size:11px;color:var(--red)}
@keyframes ribbon-slide{to{transform:translateX(-50%)}}
.motion-paused .ribbon-track{animation-play-state:paused}
.event-explorer{padding:96px 0 105px;background:#faf9f7}
.event-explorer .intro-grid{margin-bottom:37px;grid-template-columns:1.1fr 1fr;gap:8%}
.event-explorer h2{font-size:37px;line-height:1.7}.event-explorer .intro-text{font-size:13px;line-height:2.2}
.event-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #ded5ca;border-bottom:1px solid #ded5ca;margin-bottom:34px;gap:0}
.event-tab{display:flex;align-items:center;justify-content:space-between;text-align:left;background:transparent;border:0;border-right:1px solid #ded5ca;padding:19px 20px;color:#796c5e;cursor:pointer;position:relative;font:500 21px/1.2 var(--font-en);min-height:76px;transition:color .2s,background .2s}
.event-tab:last-child{border-right:0}.event-tab small{display:block;font:400 10px var(--font-ja);margin-top:6px}.event-tab>span:last-child{font-size:18px;color:#a59483}
.event-tab[aria-selected="true"]{background:#fff;color:var(--red)}.event-tab:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.event-tab[aria-selected="true"]:after{transform:scaleX(1)}.event-tab:hover{background:#f4eee7;color:var(--red)}
.event-panel{display:grid;grid-template-columns:1fr 1.1fr;gap:6%;align-items:stretch}
.event-panel[hidden]{display:none}
.event-image{position:relative;min-height:460px;overflow:hidden;background:#ddd}
.event-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.5)}
.event-image:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#000b)}
.event-image figcaption{position:absolute;bottom:27px;left:27px;color:white;z-index:2;font:500 11px var(--font-en);letter-spacing:.12em}
.event-image figcaption b{display:block;font-size:47px;line-height:1.2;letter-spacing:.01em;margin-bottom:10px}
.event-panel h3{font:500 28px/1.8 var(--font-title);letter-spacing:.02em;margin-top:12px;margin-bottom:27px;color:#2c2621}
.event-insight{border-top:1px solid #d6c8b9;padding:20px 0;display:grid;grid-template-columns:28px 1fr;gap:16px}
.event-insight>span{font:500 25px var(--font-en);color:#b9a38b}
.event-insight h4{font-size:13px;font-weight:600;margin:0 0 8px;color:#514537}
.event-insight p{font-size:12px;color:#867564;line-height:2}
.event-next{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:10px;background:var(--red);padding:17px 21px;color:#fff;font-size:12px;font-weight:500;transition:background .2s}
.event-next:hover{background:#a21b1c}.event-next>span:last-child{font-size:24px}
.event-disclaimer{font-size:10px;color:#8a8076;margin-top:23px;line-height:1.9}
.event-panel.is-entering{animation:panel-enter .45s ease both}
@keyframes panel-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.why .intro-grid h2{font-size:35px}.why .reasons h3{font-size:23px}
.carry-home{margin:40px 0 0;border-left:2px solid var(--red);background:#faf9f7;padding:23px 27px;display:flex;justify-content:space-between;align-items:center;gap:25px}
.carry-home p{font-size:13px;line-height:2;color:#72604f}.carry-home strong{font-family:var(--font-title);font-size:20px;font-weight:500;color:#3e3025}.carry-home .micro{display:block;color:var(--red);font-size:10px;margin-bottom:7px}
.stations{padding-top:75px;padding-bottom:75px;background:white}.stations .intro-grid h2{font-size:29px}.stations .intro-grid{margin-bottom:30px}
.all-stations{border-top:1px solid #d8cfc6;border-bottom:1px solid #d8cfc6}
.all-stations>summary{display:flex;align-items:center;justify-content:space-between;padding:23px 0;font-size:13px;gap:15px}
.all-stations[open]>.station-layout{padding:27px 0}.stations .station-photo{height:520px}.stations .station-foot{font-size:15px;margin-top:32px}
.session{background:#faf9f7}.session-grid figure{position:sticky;top:120px}
.session-grid figure img{transition:opacity .25s,transform .7s}
.steps li{transition:opacity .5s,border-color .5s,background .5s}
.steps li.is-current{border-color:var(--red)}.steps li.is-current>span{color:var(--red);transform:scale(1.1)}.steps li>span{transition:transform .4s;color:#c1ad96}
.step-status{font:500 11px var(--font-en);letter-spacing:.13em;color:var(--red);margin:12px 0 0;display:block}
.selected-context{background:#fff;border:1px solid #e4d5c8;padding:15px 20px;margin:0 0 30px;color:#68513f;font-size:12px;line-height:1.9}
.selected-context strong{color:var(--red);font-weight:500}
.reveal-ready{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal-ready.is-visible{opacity:1;transform:translateY(0)}
@media(max-width:1000px){.hero{min-height:735px}.hero-visual{width:46%;inset-block:40px 120px}.hero h1{font-size:34px}.hero-description{max-width:350px;font-size:12px}.hero .button{width:320px}.reel-label strong{font-size:32px}.reel-label{left:15px}.event-tab{padding:16px;font-size:18px}.event-panel h3{font-size:24px}.event-explorer h2{font-size:31px}.event-image{min-height:440px}.carry-home{align-items:flex-start}.carry-home strong{font-size:18px}}
@media(max-width:700px){
 .hero{min-height:0;padding:0 0 70px;display:flex}.hero-visual{position:relative;inset:auto;width:100%;height:295px;gap:6px;padding:0 6%;order:0;margin-top:20px;grid-template-columns:1fr 1fr}.hero-sequence{left:6%;top:0;font-size:8px}.training-reel{margin-top:19px;margin-bottom:0}.pilates-reel{margin-bottom:22px;margin-top:0}.reel-label{left:14px;bottom:15px}.reel-label strong{font-size:29px}.reel-label small{font-size:8px;margin-bottom:5px}.reel-label span{font-size:8px;margin-top:5px}.reel-connector{width:35px;height:35px;font-size:20px;top:50%;left:50%}.motion-control{font-size:9px;bottom:-13px;right:6%;padding:8px 10px;min-height:33px}.hero-body{padding:32px 0 0;order:1}.hero-body>.eyebrow{font-size:9px;margin-bottom:16px}.hero-category{font-size:14px;line-height:1.3;margin-bottom:14px}.hero h1{font-size:clamp(27px,7.3vw,37px);line-height:1.65}.hero-description{font-size:12px;line-height:2.05;margin:20px 0 23px;max-width:none}.hero .button{width:100%;font-size:13px;padding:18px 20px}.hero-trial{font-size:10px;margin-top:16px;gap:12px}.hero-note{font-size:9px;margin-top:15px}.hero-bottom{bottom:22px}.hero-bottom>span{font-size:9px}.hero-bottom>a{font-size:8px}.location-strip{font-size:9px}.movement-ribbon{padding:13px 0}.ribbon-track{font-size:12px;gap:25px}.ribbon-track span{gap:25px}.ribbon-track i{font-size:9px}
 .event-explorer{padding:65px 0}.event-explorer h2{font-size:28px;line-height:1.8}.event-explorer .intro-grid{display:block;margin-bottom:28px}.event-explorer .intro-text{font-size:12px;margin-top:18px}.event-tabs{grid-template-columns:repeat(2,1fr);margin-bottom:25px}.event-tab{padding:14px 13px;min-height:74px;font-size:19px}.event-tab:nth-child(2){border-right:0}.event-tab:nth-child(-n+2){border-bottom:1px solid #ded5ca}.event-tab small{font-size:9px}.event-tab>span:last-child{font-size:16px}.event-panel{display:block}.event-image{min-height:0;height:290px;margin-bottom:25px}.event-image img{object-position:center 45%}.event-image figcaption{bottom:19px;left:20px;font-size:9px}.event-image figcaption b{font-size:34px;margin-bottom:7px}.event-panel h3{font-size:24px;line-height:1.75;margin:10px 0 22px}.event-insight{padding:17px 0;gap:10px;grid-template-columns:24px 1fr}.event-insight>span{font-size:23px}.event-insight h4{font-size:13px}.event-insight p{font-size:12px;line-height:2}.event-next{font-size:12px;padding:16px 18px}.event-disclaimer{font-size:9px;line-height:2}
 .why .intro-grid h2{font-size:27px}.why .reasons h3{font-size:20px}.carry-home{display:block;padding:21px;margin-top:26px}.carry-home strong{font-size:19px}.carry-home p{font-size:12px;margin-top:12px}.carry-home .micro{font-size:9px}.stations{padding:58px 0}.stations .intro-grid h2{font-size:26px}.all-stations>summary{font-size:12px;padding:21px 0}.stations .station-photo{height:290px}.stations .station-foot{font-size:12px;line-height:2.2}.session-grid figure{position:relative;top:auto}.step-status{font-size:10px}.selected-context{padding:13px 16px;font-size:11px}.reveal-ready{transform:translateY(15px)}
}
@media(prefers-reduced-motion:reduce){.training-frame,.pilates-reel img,.ribbon-track,.event-panel.is-entering{animation:none!important;transition:none!important;transform:none!important}.reveal-ready{opacity:1;transform:none;transition:none}.steps li,.steps li>span{transition:none}.hero .button:hover{transform:none}}

/* 2026-10-01 Claude改善：スマホの可読性・固定予約バーの出し方・タップ領域 */
@media(max-width:700px){
 /* 固定予約バー：ファーストビューの予約導線・料金表記を隠さないよう、ヒーローのボタンを過ぎてから表示（JS無効時は常時表示） */
 .js .mobile-book{transform:translateY(110%);visibility:hidden;transition:transform .3s ease,visibility 0s linear .3s}
 .js .mobile-book.is-shown{transform:none;visibility:visible;transition:transform .3s ease,visibility 0s}
 .mobile-book>span{font-size:11px}.mobile-book b>span{font-size:10px}.mobile-book>a{font-size:13px;min-height:48px}
 /* 最小文字サイズ：英字ラベル10px・日本語11〜12pxを下限に */
 .brand>span,.hero-sequence,.section-top>.micro,.reel-label small,.reel-label span{font-size:10px}
 .hero-body>.eyebrow,.hero-bottom>span,.hero-bottom>a,.station-photo figcaption small,.reasons .micro,.steps .micro,.time-mark>span,.floor-line>div>span{font-size:10px}
 .hero-note,.hero-trial,.location-strip,.event-tab small,.station-list summary small,.event-disclaimer,.session-grid figcaption,.supervisor figcaption>span:last-child,.footer-small,.copyright,.price-sub{font-size:11px}
 .station-detail dt,.station-detail dd,.price-notes,.access,.footer-brand span,.line-link,.closing-inner>p:not(.eyebrow):not(.closing-en){font-size:12px}
 .station-detail dd{line-height:1.8}
 /* 動きの停止ボタンもタップしやすく */
 .motion-control{min-height:44px;font-size:11px;padding:10px 12px;bottom:-18px}
}
/* 薄すぎるグレーを一段濃く（白・淡色背景で4.5:1前後を確保） */
.station-detail dt,.station-list summary small,.station-number,.event-tab small,.price-notes,.price-sub,.footer-small,.copyright,.event-disclaimer,.hero-note,.section-top>.micro,.time-mark>span,.floor-line>div>span{color:#6e6358}
.event-insight p,.coach-roster span,.repeat-prices .micro,.price-card-body>.micro,.steps .micro{color:#6e6358}
.hero-sequence{color:#7d6a58}
@media(prefers-reduced-motion:reduce){.js .mobile-book{transition:none}}
@media(max-width:700px){.carry-home .micro,.supervisor .micro,.event-image figcaption{font-size:10px}.button small{font-size:11px}}
@media(max-width:700px){.station-detail dl{grid-template-columns:108px 1fr}}

/* 2026-10-01 インストラクターの顔写真（HTCサイトのスタッフ紹介と同じ480×480素材） */
.coach-roster img{display:block;width:104px;height:104px;border-radius:50%;object-fit:cover;object-position:center 35%;margin-bottom:16px;background:#ece8e3;filter:saturate(.8)}
@media(max-width:700px){.coach-roster img{width:76px;height:76px;margin-bottom:12px}.coach-roster>div+div{padding-left:14px}.coach-roster b{font-size:18px}.coach-roster span{font-size:11px}}
