/* Shared phone refinements; desktop styling remains in editorial.css. */
@media(max-width:760px){
 html{scroll-padding-top:92px;-webkit-text-size-adjust:100%}
 body{padding-bottom:calc(64px + env(safe-area-inset-bottom));overflow-wrap:break-word}
 main,section,article,figure,.section-heading>div{min-width:0}
 .header{height:76px;padding-inline:6%;gap:14px}
 .header .menu{width:44px;height:44px;flex-shrink:0}
 .header-reserve{min-height:44px;display:flex;flex-direction:column;justify-content:center}
 .header nav{max-height:calc(100dvh - 76px);overflow-y:auto;padding-bottom:calc(85px + env(safe-area-inset-bottom))}
 .header nav a{min-height:44px;font-size:22px;line-height:1.65}
 .social-strip{padding-block:3px}.social-strip a{min-height:44px}
 .home-hero-copy{padding:28px 6% 32px}
 .home-hero h1{font-size:clamp(21px,6vw,27px);letter-spacing:0;line-height:1.7}
 .home-hero-copy .hero-intro-action p{font-size:14px;line-height:1.9}
 .hero-intro-action p br{display:none}
 .section{padding-left:6%;padding-right:6%}
 .section-heading{gap:20px}
 h2,.intro-split h2,.concept h2,.pilates-detail h2,.benefits-band h2,.price-preview h2,.trial-banner h2{font-size:26px;line-height:1.65;letter-spacing:.015em}
 .intro-split p:not(.eyebrow),.section-heading p:not(.eyebrow),.personal-combination p:not(.eyebrow),.pilates-hero p:not(.eyebrow),.benefit-grid p,.concern-grid p,.equipment-notes p,.pilates-points p,.pilates-goal-list p,.steps p,.faq-list p,.discover-body,.trainer-card p:not(.roman):not(.trainer-role),.inline-trial p:not(.eyebrow){font-size:14px;line-height:1.95}
 .benefit-grid h3,.equipment-notes h3,.steps h3,.pilates-points h3{font-size:20px;line-height:1.6}
 .button{min-height:48px;max-width:100%;padding:13px 18px;white-space:normal;text-align:center;font-size:14px;line-height:1.6}
 .text-link{min-height:44px;padding-top:10px;padding-bottom:10px;line-height:1.7}
 .faq-list summary{min-height:54px;font-size:14px;line-height:1.8;padding-top:16px;padding-bottom:16px}
 .page-nav{display:flex;flex-wrap:wrap;gap:4px 14px;padding:12px 6%}.page-nav a{min-height:44px;display:flex;align-items:center;font-size:13px}
 .comparison-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 .comparison-table{font-size:13px}.comparison-table th,.comparison-table td{padding:12px 10px;line-height:1.7}
 .table-scroll-hint{font-size:12px;color:#756759;margin:8px 0 0}
 .trainer-card{grid-template-columns:110px minmax(0,1fr);gap:0 18px}.trainer-card img{width:110px;height:140px}.trainer-card h3{font-size:23px}.trainer-role{font-size:11px;line-height:1.7}
 .trainer-profile{margin-top:16px}.trainer-profile h4{font-size:13px}
 .pilates-real-pair{grid-template-columns:1fr;gap:20px}.pilates-real-pair img{aspect-ratio:4/5}
 .pilates-real-hero>.panel-photo{max-height:520px}
 .footer-nav a,.footer-legal a{display:inline-flex;align-items:center;min-height:44px}
 .footer-main p{font-size:12px;line-height:1.9}
 .mobile-bar{height:auto;min-height:58px;padding-bottom:env(safe-area-inset-bottom);z-index:45}.mobile-bar a{min-height:58px;display:flex;align-items:center;justify-content:center;font-size:12px}
 .legal-document p,.legal-document li{font-size:14px;line-height:2}
}
@media(min-width:761px){.table-scroll-hint{display:none}}
@media(max-width:360px){.header{gap:8px}.header-reserve{padding-inline:8px}.service-shortcuts a{font-size:11px;gap:6px}.trainer-card{grid-template-columns:95px minmax(0,1fr);gap:0 14px}.trainer-card img{width:95px;height:125px}}

/* Home: phone composition and compact headings. */
@media(max-width:760px){
 .index-page .home-hero{--photo-height:115vw}
 .index-page .hero-scene>img:not(.hero-monogram){object-position:center 49%}
 .index-page .discover-service{display:flex;flex-direction:column}
 .index-page .discover-photo img{height:auto;min-height:0;aspect-ratio:1.6;object-fit:cover}
 .index-page .discover-copy{padding:24px 22px 0}
 .index-page .inline-trial h2,.index-page .trial-banner h2{font-size:clamp(21px,6vw,26px);white-space:nowrap;letter-spacing:0}
 .index-page .benefits-band h2,.index-page #results h2{font-size:clamp(19px,5.2vw,26px);white-space:nowrap;letter-spacing:0}
 .index-page .experience-photo{height:auto;margin-bottom:24px}
 .index-page .experience-photo img{height:auto;aspect-ratio:1.4}
 .index-page .experience-layout .steps{margin-top:0}
}

.home-hero .home-concept{display:block;text-align:center}.home-concept>.eyebrow{margin-bottom:18px}.home-concept .concept-message{max-width:760px;margin:auto}.home-concept h1{margin-bottom:25px}.home-concept p{line-height:2.1}.pilates-price-summary .button{margin-top:24px}
@media(max-width:760px){
 .home-concept h1{font-size:clamp(19px,5.3vw,28px);letter-spacing:0;white-space:nowrap}
 .home-concept .concept-message p{font-size:14px;line-height:2}.home-concept p br{display:none}
 main h1{font-size:clamp(25px,6.8vw,32px);letter-spacing:.01em}
 main h2,.intro-split h2,.pilates-detail h2,.discover-heading h2,.personal-combination h2{font-size:clamp(21px,5.5vw,26px);letter-spacing:0;line-height:1.6;word-break:normal;overflow-wrap:break-word}
 main h2 br{display:none}
 .inline-trial h2,.trial-banner h2{font-size:clamp(21px,6vw,26px);white-space:nowrap}
 main h3{letter-spacing:0}
}

/* Keep Japanese headings legible without single-character wrap lines. */
@media(max-width:760px){
 body main .photo-hero h1,body main .pilates-hero h1,body main .page-hero h1{font-size:clamp(21px,6.1vw,25px);letter-spacing:0;line-height:1.6;text-wrap:balance}
 body main h2{font-size:clamp(20px,5.2vw,23px);letter-spacing:0;text-wrap:balance}
 body main h2.phone-compact{font-size:clamp(18px,4.8vw,21px);line-height:1.65}
 body main h3.phone-compact{font-size:clamp(16px,4.35vw,19px);line-height:1.65;text-wrap:balance}
 body main .personal-combination h2 br{display:initial}
 body main .section-heading,body main .section-heading>div{min-width:0;max-width:100%}
}
@media(max-width:760px){body.fitness-page main .inline-trial h2{font-size:clamp(17px,4.8vw,21px);letter-spacing:0}}

/* October 17: compact single-line title and uncropped lesson photo. */
body.personal-page main h2.training-single-line{font-size:clamp(18px,1.65vw,26px);letter-spacing:0;white-space:nowrap}
body.pilates-page .pilates-real-interlude{max-width:680px;margin-left:auto;margin-right:auto}
body.pilates-page .pilates-real-interlude img{height:auto;aspect-ratio:auto}
@media(max-width:760px){body.personal-page main h2.training-single-line{font-size:clamp(14px,4.2vw,20px);letter-spacing:0;white-space:nowrap}body.pilates-page .pilates-real-interlude{width:90%}}

/* Fitness introduction: full-width single-line heading. */
body.fitness-page main .intro-split{display:block;container-type:inline-size}
body.fitness-page main h2.fitness-single-line{font-size:clamp(12px,4cqw,30px);letter-spacing:0;white-space:nowrap;margin-bottom:24px}

.location-item{position:relative}.location-card-link{position:absolute;inset:0;z-index:2}.locations-ribbon:focus-within .locations-track{animation-play-state:paused}

/* Raised LINE trial button with a tactile pressed state. */
body .header .header-reserve{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:44px;margin-right:8px;padding:9px 18px;border:1px solid #ae9270;border-radius:8px;background:linear-gradient(160deg,#9c7d59,#765a3d);color:#fffaf2;font-size:13px;font-weight:600;line-height:1.5;letter-spacing:.02em;box-shadow:0 5px 0 #503a27,0 8px 16px #503a2726,inset 0 1px 0 #ffffff55;transition:transform .2s ease,box-shadow .2s ease}
body .header .header-reserve>span{color:#f3e4cf;font-size:8px;letter-spacing:.12em}
@media(hover:hover){body .header .header-reserve:hover{transform:translateY(-2px);box-shadow:0 7px 0 #503a27,0 10px 18px #503a2733,inset 0 1px 0 #ffffff55}}
body .header .header-reserve:active{transform:translateY(4px);box-shadow:0 1px 0 #503a27,0 2px 5px #503a2726}
body .header .header-reserve:focus-visible{outline:3px solid #503a27;outline-offset:7px}
@media(max-width:760px){body .header .header-reserve{padding:7px 10px;font-size:11px;margin-right:4px}body .header .header-reserve>span{font-size:7px}}
@media(prefers-reduced-motion:reduce){body .header .header-reserve{transition:none}}
