@charset "UTF-8";
/* 2026-10-21 ユーザー提供Adobe XD。HYROXページ内に限定。 */
.hyroxPage { --hyrox-green: #27978c; --hyrox-dark: #1b2c29; color: #202622; font-size: 1.8rem; line-height: 1.9; word-break: normal; overflow-wrap: anywhere; }
.hyroxPage *, .hyroxPage *::before, .hyroxPage *::after { box-sizing: border-box; }
/* 共通CSSの全要素への固定サイズ指定をページ内で整え、子要素は文脈から継承。 */
.hyroxPage :where(p, li, div, span, strong, small, dt, dd, a, caption, th, td, figcaption, figure, ol, ul) { font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; word-break: normal; }
.hyroxPage .hyroxWrap { width: min(1120px, calc(100% - 64px)); margin: 0 auto; }
.hyroxPage .hyroxSection { padding: 100px 0; }
.hyroxPage .hyroxSectionHeading { text-align: center; margin-bottom: 32px; }
.hyroxPage .hyroxEyebrow { margin: 0 0 10px; color: var(--hyrox-green); font-size: 1.5rem; font-weight: 700; letter-spacing: .08em;  line-height: 26px; }
.hyroxPage .hyroxSectionHeading h2 { margin: 0; font-size: 3.6rem; line-height: 1.45; font-weight: 700; letter-spacing: .02em; }
.hyroxPage .hyroxSection h3 { font-weight: 700; line-height: 1.6; word-break: normal; text-wrap: balance; }
.hyroxPage :where(p) { margin: 0; }
.hyroxPage img { max-width: 100%; }
.hyroxPage a:focus-visible { outline: 3px solid var(--hyrox-green); outline-offset: 5px; }
.hyroxPage section[id] { scroll-margin-top: 110px; }
.hyroxPage .hyroxHero { position: relative; isolation: isolate; display: grid; align-items: center; margin-top: 94px; min-height: clamp(620px, 42vw, 800px); padding: 70px 0; overflow: hidden; background: #08100f; text-align: center; }
.hyroxPage .hyroxHeroPhotos { position: absolute; inset: 0; z-index: -2; display: grid; grid-template-columns: 1fr 1fr; }
.hyroxPage .hyroxHeroPhotos img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.hyroxPage .hyroxHeroPhotoLeft { object-position: 80% center; }
.hyroxPage .hyroxHeroPhotoRight { object-position: 75% center; }
.hyroxPage .hyroxHero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,.08), rgba(0,0,0,.2) 22%, rgba(0,0,0,.88) 38%, rgba(0,0,0,.92) 55%, rgba(0,0,0,.18) 78%, rgba(0,0,0,.08)), linear-gradient(0deg, rgba(0,0,0,.35), transparent 70%); }
.hyroxPage .hyroxHeroCopy { max-width: 750px; }
.hyroxPage .hyroxHero p, .hyroxPage .hyroxHero h1, .hyroxPage .hyroxHero strong { color: #fff; }
.hyroxPage .hyroxHero .hyroxEyebrow { color: #dfdc88; font-size: 1.3rem; }
.hyroxPage .hyroxHero h1 { margin: 20px 0 12px; font-size: clamp(2.4rem, 2.5vw, 3.6rem); line-height: 1.5; font-weight: 900; letter-spacing: 0; }
.hyroxPage .hyroxHeroLogo { display: block; width: 415px; height: auto; margin: 0 auto 32px; }
.hyroxPage .hyroxArea { margin: 0 0 18px; font-size: 2rem; font-weight: 700; line-height: 1.6; }
.hyroxPage .hyroxArea strong { color: #dfdc88; font-size: inherit; }
.hyroxPage .hyroxHeroDescription { margin: 0; font-size: 1.6rem;  line-height: 1.65; }
.hyroxPage .hyroxCertification { margin: 32px 0 0; font-size: 1.8rem; line-height: 1.6; }
.hyroxPage .hyroxHero .ksfcProgramActions, .hyroxPage .hyroxBanner .ksfcProgramActions { justify-content: center; gap: 20px; margin: 28px 0 0; }
.hyroxPage .ksfcProgramActions .btn { width: 285px; min-width: 0; font-size: 1.8rem; padding: 12px 32px 12px 18px;  display: inline-flex;  align-items: center;  justify-content: center;  min-height: 50px;  line-height: 1.4;  border-radius: 0; }
.hyroxPage .hyroxImageCredit { position: absolute; left: 20px; bottom: 12px; margin: 0; font-size: 1rem; color: #fff; }
.hyroxPage .hyroxBreadcrumb { padding-top: 24px; font-size: 1.2rem; }
.hyroxPage .hyroxBreadcrumb * { font-size: inherit; }
.hyroxPage .hyroxBreadcrumb span { margin-left: 8px; }
.hyroxPage .hyroxSectionNav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 0; margin-top: 16px; font-size: 1.8rem; }
.hyroxPage .hyroxSectionNav a { padding: 0 16px; line-height: 1.6; border-right: 1px solid #c8d2cf; }
.hyroxPage .hyroxSectionNav a:last-child { border: 0; }
.hyroxPage .hyroxIntro { padding-top: 64px;  padding: 36px 0 64px; }
.hyroxPage .hyroxRaceIntro { padding: 24px; background: #f0f6f4; text-align: center; }
.hyroxPage .hyroxRaceIntro p { font-size: 1.6rem;  line-height: 1.6; }
.hyroxPage .hyroxRaceIntro .hyroxRaceFlow { margin-bottom: 12px; color: var(--hyrox-green); font-size: clamp(2rem, 2.8vw, 3.2rem); line-height: 1.5; font-weight: 700; }
.hyroxPage .hyroxRaceFlow span { color: inherit; font-size: inherit; margin: 0 6px; }
.hyroxPage .hyroxNote { font-size: 1.3rem; line-height: 1.8; }
.hyroxPage .hyroxSource { margin: 14px 0 40px; text-align: right; font-size: 1.3rem; }
.hyroxPage .hyroxSource a { color: inherit; text-decoration: underline; }
.hyroxPage .hyroxRaceGrid { display: grid; grid-template-columns: 300px 70px minmax(0, 1fr); align-items: start; gap: 0; }
.hyroxPage .hyroxRunPhoto { margin: 0; align-self: start; display: flex; flex-direction: column; }
.hyroxPage .hyroxRunPhoto img { display: block; width: 100%; height: auto; min-height: 0; object-fit: cover; object-position: 30% center;  aspect-ratio: 300 / 325; }
.hyroxPage .hyroxRunPhoto figcaption { padding-top: 14px; text-align: center; font-size: 2.8rem; font-weight: 700; line-height: 1.3; }
.hyroxPage .hyroxRacePlus { color: var(--hyrox-green); font-size: 3.4rem; font-weight: 700; text-align: center;  align-self: center; }
.hyroxPage .hyroxStationGrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 24px; margin: 0; padding: 0; list-style: none; }
.hyroxPage .hyroxStationGrid li { min-width: 0; text-align: center; }
.hyroxPage .hyroxStationGrid img, .hyroxPage .hyroxStationGraphic { width: 100%; height: auto; aspect-ratio: 170 / 120; object-fit: cover; display: block; }
.hyroxPage .hyroxStationGrid h3 { margin: 10px 0 2px; font-size: 1.8rem; line-height: 1.45; }
.hyroxPage .hyroxStationGrid p { font-size: 1.4rem; line-height: 1.4; }
.hyroxPage .hyroxStationGraphic { display: flex; flex-direction: column; justify-content: center; background: #e9f3f0; color: #347f73; }
.hyroxPage .hyroxStationGraphic span { font-size: 3.4rem; line-height: 1.2; font-weight: 700; color: inherit; }
.hyroxPage .hyroxStationGraphic small { font-size: 1.1rem; line-height: 1.5; color: inherit; }
.hyroxPage .hyroxReasons { background: #f0f6f4;  padding: 64px 0 88px; }
.hyroxPage .hyroxReasonGrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
.hyroxPage .hyroxReasonCard { min-width: 0; }
.hyroxPage .hyroxReasonPhoto { display: block; width: 100%; height: auto; aspect-ratio: 250 / 180; object-fit: cover; }
.hyroxPage .hyroxReasonCertified .hyroxReasonPhoto { padding: 14px 16px; object-fit: contain; background: #fff; }
.hyroxPage .hyroxReasonCard .hyroxNumber { margin-top: 16px; color: var(--hyrox-green); font-size: 2.4rem; font-weight: 700; line-height: 1.2; }
.hyroxPage .hyroxReasonCard h3 { margin: 8px 0 20px; font-size: 2rem;  line-height: 1.5; }
.hyroxPage .hyroxReasonCard p { overflow-wrap: normal; font-size: 1.8rem;  line-height: 1.5; }
.hyroxPage .hyroxSupportPoints { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; list-style: none; margin: 48px 0 0; padding: 0; }
.hyroxPage .hyroxSupportPoints li { display: flex; align-items: flex-start; gap: 14px; font-size: 1.8rem; line-height: 1.5; }
.hyroxPage .hyroxSupportPoints img { width: 54px; height: 54px; object-fit: contain; flex: 0 0 54px; }
.hyroxPage .hyroxSupportPoints strong { display: block; margin-bottom: 4px; font-size: 2rem; font-weight: 700;  line-height: 1.4; }
.hyroxPage .hyroxEquipmentLayout { display: grid; grid-template-columns: 397px minmax(0, 1fr); gap: 73px; }
.hyroxPage .hyroxEquipmentPhotos figure { margin: 0 0 43px; }
.hyroxPage .hyroxEquipmentPhotos img { display: block; width: 100%; height: auto; aspect-ratio: 397 / 286; object-fit: cover; object-position: center 54%; }
.hyroxPage .hyroxEquipmentPhotos figcaption { margin-top: 12px; text-align: center; font-size: 1.8rem; font-weight: 700;  line-height: 1.5; }
.hyroxPage .hyroxEquipmentList { list-style: none; margin: 0; padding: 0; }
.hyroxPage .hyroxEquipmentList li + li { margin-top: 18px; }
.hyroxPage .hyroxEquipmentList h3 { margin: 0 0 3px; font-size: 1.8rem; line-height: 1.5; }
.hyroxPage .hyroxEquipmentList h3 span { color: var(--hyrox-green); font-size: 2.4rem; margin-right: 10px; line-height: 1; }
.hyroxPage .hyroxEquipmentList h3 small { font-size: 1.6rem; }
.hyroxPage .hyroxEquipmentList p { font-size: 1.6rem;  line-height: 1.6; }
.hyroxPage #hyrox-equipment > .hyroxWrap > .hyroxNote { margin-top: 24px; }
.hyroxPage .hyroxUse { padding-top: 0; }
.hyroxPage .hyroxLessonPhoto { display: block; width: 100%; height: auto; aspect-ratio: 1120 / 480; object-fit: cover; object-position: center 38%; }
.hyroxPage .hyroxUseGrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 20px; }
.hyroxPage .hyroxUseGrid .hyroxReasonCard { padding: 28px 30px; background: #f0f6f4; }
.hyroxPage .hyroxUseGrid h3 { margin-top: 0; color: var(--hyrox-green); font-size: 2rem; text-align: center; }
.hyroxPage .hyroxUseGrid a, .hyroxPage .hyroxUseGrid .hyroxNote { display: block; margin-top: 16px; color: #27978c; font-size: 1.5rem; }
.hyroxPage .hyroxUseGrid a span { color: inherit; }
.hyroxPage #hyrox-coach { padding-top: 0; }
.hyroxPage .hyroxCoachGrid { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 32px; padding: 39px 51px; border: 1px solid var(--hyrox-green); align-items: center;  min-height: 444px; }
.hyroxPage .hyroxCoachPhoto img { display: block; width: 100%; height: 364px;  object-fit: cover;  object-position: center top; }
.hyroxPage .hyroxCoachGrid h2 { margin: 0 0 20px; font-size: 3.6rem; font-weight: 700; }
.hyroxPage .hyroxCoachGrid h3 { margin: 0; font-size: 2rem; }
.hyroxPage .hyroxCoachGrid p { font-size: 1.6rem; }
.hyroxPage .hyroxCoachGrid .hyroxEyebrow { font-size: 1.5rem; }
.hyroxPage .hyroxCoachDescription { margin-top: 16px; font-size: 1.6rem;  line-height: 1.6; }
.hyroxPage .hyroxCoachDescription * { font-size: inherit; }
.hyroxPage .hyroxTextLink { display: inline-block; margin-top: 16px; color: #27978c; font-size: 1.6rem; font-weight: 700; }
.hyroxPage .hyroxTextLink span { font-size: inherit; color: inherit; }
.hyroxPage .hyroxPrice { padding-top: 0; }
.hyroxPage .hyroxCapacity { display: flex; justify-content: flex-start; align-items: center; gap: 20px; margin-bottom: 28px; font-size: 1.6rem; }
.hyroxPage .hyroxCapacityTitle { flex: 0 0 auto; padding: 10px 14px; background: var(--hyrox-green); color: #fff; font-weight: 700;  font-size: 1.6rem;  line-height: 1.5; }
.hyroxPage .hyroxPriceGrid { border-top: 1px solid #aabdb7; }
.hyroxPage .hyroxPriceCard { display: grid; grid-template-columns: minmax(0, 1fr) 47%; gap: 24px; padding: 16px 0; border-bottom: 1px solid #aabdb7; align-items: center; }
.hyroxPage .hyroxPriceCard > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 24px; align-items: center; }
.hyroxPage .hyroxPriceCard h3 { margin: 0; color: #27978c; font-size: 1.8rem; }
.hyroxPage .hyroxPriceCard p { font-size: 1.6rem;  line-height: 1.5; }
.hyroxPage .hyroxPlanRates { width: 100%; border-collapse: collapse; table-layout: fixed; }
.hyroxPage .hyroxPlanRates caption { text-align: left; color: #27978c; font-size: 1.3rem;  font-weight: 700; }
.hyroxPage .hyroxPlanRates tbody { display: flex; gap: 18px; }
.hyroxPage .hyroxPlanRates tr { display: flex; align-items: baseline; gap: 5px; flex: 1; }
.hyroxPage .hyroxPlanRates th { font-size: 1.6rem; white-space: nowrap; font-weight: 500; }
.hyroxPage .hyroxPlanRates td { white-space: nowrap; color: #27978c; }
.hyroxPage .hyroxPlanRates strong { font-size: 4.8rem; line-height: 1.2; color: inherit; font-weight: 700; letter-spacing: -.04em; }
.hyroxPage .hyroxPlanRates td span { color: #202622; font-size: 1.8rem; }
.hyroxPage .hyroxGymConditions { display: flex; align-items: stretch; gap: 24px; padding: 0; background: #f0f6f4; border-bottom: 0;  margin: 24px 0;  min-height: 80px; }
.hyroxPage .hyroxGymConditions h3 { display: grid; align-items: center; flex: 0 0 159px; padding: 12px 16px; margin: 0; background: #27978c; color: #fff; font-size: 1.6rem;  line-height: 1.5; }
.hyroxPage .hyroxGymConditions dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; flex: 1; margin: 0;  padding: 12px 24px 12px 0; }
.hyroxPage .hyroxGymConditions dl > div { position: relative; display: flex; flex-direction: column; justify-content: center; padding-left: 56px; }
.hyroxPage .hyroxGymConditions dt { font-size: 1.4rem;  line-height: 1.5; }
.hyroxPage .hyroxGymConditions dt img { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 45px; height: 45px; object-fit: contain; }
.hyroxPage .hyroxGymConditions dd { margin: 0; font-size: 2.4rem; font-weight: 700;  line-height: 1.35; }
.hyroxPage .hyroxVisitor { grid-template-columns: 1fr 47%; }
.hyroxPage .hyroxAmount strong { font-size: 4.8rem; color: #27978c; font-weight: 700; }
.hyroxPage .hyroxPriceUnit { color: #202622; margin-left: 6px; font-size: 1.8rem; }
.hyroxPage .hyroxLessonPrices { display: grid; grid-template-columns: minmax(0, 1fr) 47%; align-items: center; gap: 24px; padding: 16px 0; border-bottom: 1px solid #aabdb7; }
.hyroxPage .hyroxLessonPrices > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 24px; align-items: center; }
.hyroxPage .hyroxLessonPrices h3 { margin: 0; color: #27978c; font-size: 1.8rem; }
.hyroxPage .hyroxLessonPrices p { font-size: 1.6rem;  line-height: 1.5; }
.hyroxPage .hyroxLessonRates { display: flex; gap: 20px; margin: 0; }
.hyroxPage .hyroxLessonRates > div { display: flex; align-items: baseline; gap: 8px; flex: 1; }
.hyroxPage .hyroxLessonRates dt { font-size: 1.6rem; white-space: nowrap; }
.hyroxPage .hyroxLessonRates dd { margin: 0; font-size: 4.8rem; line-height: 1.2; color: #27978c; font-weight: 700; letter-spacing: -.04em; white-space: nowrap; }
.hyroxPage .hyroxLessonRates dd span { font-size: 1.8rem; color: #202622; }
.hyroxPage .hyroxRunningPrice { grid-template-columns: 24% 1fr; }
.hyroxPage .hyroxTaxNote { margin-top: 16px; text-align: right; }
.hyroxPage .hyroxScheduleAction { text-align: center; margin-top: 40px; }
.hyroxPage .hyroxScheduleAction .btn { width: 338px; max-width: 100%; font-size: 1.8rem;  display: inline-flex;  align-items: center;  justify-content: center;  min-width: 0;  min-height: 50px;  padding: 12px 34px 12px 16px;  line-height: 1.4;  border-radius: 0; }
.hyroxPage .hyroxBanner { position: relative; isolation: isolate; padding: 52px 0; overflow: hidden; text-align: center; background: #08100f;  min-height: 300px;  display: flex;  align-items: center; }
.hyroxPage .hyroxBannerPhoto { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.hyroxPage .hyroxBanner::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0,0,0,.6); }
.hyroxPage .hyroxBanner p { margin: 0; color: #fff; font-size: 2rem; font-weight: 700;  line-height: 1.6; }
.hyroxPage .hyroxCta { background: var(--hyrox-dark); text-align: center;  min-height: 1049px;  padding: 100px 0; }
.hyroxPage .hyroxCta p, .hyroxPage .hyroxCta h2, .hyroxPage .hyroxCta h3, .hyroxPage .hyroxCta dt, .hyroxPage .hyroxCta dd, .hyroxPage .hyroxCta a { color: #fff; }
.hyroxPage .hyroxCta .hyroxEyebrow { color: #dfdc88; margin-bottom: 12px; }
.hyroxPage .hyroxCta h2 { margin: 0 0 36px; font-size: 3.6rem; font-weight: 700; }
.hyroxPage .hyroxAccessInfo { width: min(800px, 100%); margin: 0 auto 40px; padding: 32px; border: 1px solid #54706a; text-align: left; }
.hyroxPage .hyroxAccessInfo h3 { margin: 0 0 24px; font-size: 2.4rem; }
.hyroxPage .hyroxDetails { display: grid; grid-template-columns: 160px minmax(0, 1fr); margin: 0; font-size: 1.8rem; }
.hyroxPage .hyroxDetails dt, .hyroxPage .hyroxDetails dd { padding: 12px 0; margin: 0; border-top: 1px solid #405951; }
.hyroxPage .hyroxCtaAudience { margin-bottom: 32px; font-size: 2.4rem; font-weight: 700;  line-height: 2; }
.hyroxPage .hyroxSignature { margin-top: 36px; font-size: 1.4rem; letter-spacing: .08em; }
.hyroxPage .hyroxMobileBreak { display: none; }
@media (max-width: 1100px) {
 .hyroxPage .hyroxRaceGrid { grid-template-columns: 220px 36px minmax(0, 1fr); }
 .hyroxPage .hyroxReasonGrid { gap: 20px; }
 .hyroxPage .hyroxEquipmentLayout { grid-template-columns: 32% minmax(0, 1fr); gap: 36px; }
 .hyroxPage .hyroxPriceCard, .hyroxPage .hyroxLessonPrices { grid-template-columns: minmax(0, 1fr) 48%; gap: 20px; }
 .hyroxPage .hyroxPriceCard > div, .hyroxPage .hyroxLessonPrices > div { display: block; }
 .hyroxPage .hyroxPriceCard h3, .hyroxPage .hyroxLessonPrices h3 { margin-bottom: 8px; }
 .hyroxPage .hyroxGymConditions { gap: 16px; }
 .hyroxPage .hyroxGymConditions h3 { flex-basis: 140px; }
 .hyroxPage .hyroxGymConditions dd { font-size: 1.5rem; }
 .hyroxPage .hyroxGymConditions dl { gap: 12px; }
 .hyroxPage .hyroxPlanRates strong, .hyroxPage .hyroxLessonRates dd { font-size: 3rem; }
 .hyroxPage .hyroxRunningPrice { grid-template-columns: 32% minmax(0, 1fr); }
}
@media (max-width: 900px) {
 .hyroxPage .hyroxRaceGrid { grid-template-columns: 180px 28px minmax(0, 1fr); gap: 8px; }
 .hyroxPage .hyroxStationGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .hyroxPage .hyroxReasonGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
 .hyroxPage .hyroxUseGrid .hyroxReasonCard { padding: 20px; }
 .hyroxPage .hyroxGymConditions { display: block; }
 .hyroxPage .hyroxGymConditions h3 { display: block; margin-bottom: 20px; }
 .hyroxPage .hyroxPlanRates tbody, .hyroxPage .hyroxLessonRates { gap: 10px; }
 .hyroxPage .hyroxPlanRates strong, .hyroxPage .hyroxLessonRates dd { font-size: 2.6rem; }
}
@media (max-width: 768px) {
 .hyroxPage .hyroxWrap { width: calc(100% - 40px); }
 .hyroxPage .hyroxSection { padding: 60px 0; }
 .hyroxPage .hyroxSectionHeading { margin-bottom: 28px; }
 .hyroxPage .hyroxSectionHeading h2, .hyroxPage .hyroxCta h2 { font-size: 2.4rem; }
 .hyroxPage .hyroxHero { margin-top: 60px; min-height: 640px; padding: 52px 0; }
 .hyroxPage .hyroxHeroPhotos { grid-template-columns: 1fr; }
 .hyroxPage .hyroxHeroPhotoLeft { display: none !important; }
 .hyroxPage .hyroxHero::before { background: rgba(0,0,0,.75); }
 .hyroxPage .hyroxHero h1 { font-size: clamp(2.4rem, 6.2vw, 3.6rem); letter-spacing: 0; }
 .hyroxPage .hyroxHero .hyroxEyebrow { font-size: 1rem; }
 .hyroxPage .hyroxHeroLogo { width: 300px; margin-bottom: 28px; }
 .hyroxPage .hyroxArea { font-size: 1.4rem; }
 .hyroxPage .hyroxHeroDescription { font-size: 1.2rem; }
 .hyroxPage .hyroxCertification { font-size: 1.3rem; margin-top: 24px; }
 .hyroxPage .ksfcProgramActions { flex-direction: column; align-items: center; }
 .hyroxPage .ksfcProgramActions .btn { width: 100%; min-width: 0; max-width: 360px; }
 .hyroxPage .hyroxSectionNav { gap: 12px 0; }
 .hyroxPage .hyroxSectionNav a { padding: 0 10px; font-size: 1.2rem; }
 .hyroxPage .hyroxRaceGrid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
 .hyroxPage .hyroxRunPhoto { width: 100%; }
 .hyroxPage .hyroxRunPhoto img { height: auto; aspect-ratio: 2; }
 .hyroxPage .hyroxRacePlus { line-height: 1; }
 .hyroxPage .hyroxStationGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
 .hyroxPage .hyroxStationGrid h3 { font-size: 1.3rem; }
 .hyroxPage .hyroxRaceIntro { padding: 20px 16px; }
 .hyroxPage .hyroxRaceIntro .hyroxRaceFlow { font-size: 1.8rem; }
 .hyroxPage .hyroxRaceIntro p { font-size: 1.3rem; }
 .hyroxPage .hyroxSource { margin-bottom: 28px; }
 .hyroxPage .hyroxReasonGrid { gap: 28px 18px; }
 .hyroxPage .hyroxReasonCard h3 { font-size: 1.5rem; margin-bottom: 12px; }
 .hyroxPage .hyroxReasonCard p { font-size: 1.3rem; }
 .hyroxPage .hyroxReasonCertified .hyroxReasonPhoto { padding: 12px; }
 .hyroxPage .hyroxSupportPoints { grid-template-columns: minmax(0, 1fr); gap: 24px; }
 .hyroxPage .hyroxEquipmentLayout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
 .hyroxPage .hyroxEquipmentPhotos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
 .hyroxPage .hyroxEquipmentPhotos figure { margin: 0; }
 .hyroxPage .hyroxEquipmentPhotos figcaption { font-size: 1.2rem; }
 .hyroxPage .hyroxEquipmentList h3 { font-size: 1.5rem; }
 .hyroxPage .hyroxEquipmentList h3 small { font-size: 1.2rem; }
 .hyroxPage .hyroxUse, .hyroxPage #hyrox-coach, .hyroxPage .hyroxPrice { padding-top: 0; }
 .hyroxPage .hyroxLessonPhoto { aspect-ratio: 1.5; }
 .hyroxPage .hyroxUseGrid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
 .hyroxPage .hyroxUseGrid h3 { font-size: 1.8rem; }
 .hyroxPage .hyroxCoachGrid { grid-template-columns: minmax(0, 1fr); padding: 24px; gap: 28px; }
 .hyroxPage .hyroxCoachPhoto { width: min(240px, 100%); margin: 0 auto; }
 .hyroxPage .hyroxCoachGrid h2 { font-size: 2.4rem; }
 .hyroxPage .hyroxCapacity { display: block; }
 .hyroxPage .hyroxCapacityTitle { display: inline-block; margin-bottom: 12px; }
 .hyroxPage .hyroxPriceCard, .hyroxPage .hyroxLessonPrices { grid-template-columns: minmax(0, 1fr); gap: 20px; }
 .hyroxPage .hyroxPriceCard h3, .hyroxPage .hyroxLessonPrices h3 { font-size: 1.7rem; }
 .hyroxPage .hyroxPlanRates tbody, .hyroxPage .hyroxLessonRates { gap: 16px; }
 .hyroxPage .hyroxPlanRates strong, .hyroxPage .hyroxLessonRates dd { font-size: 3rem; }
 .hyroxPage .hyroxPlanRates tr, .hyroxPage .hyroxLessonRates > div { gap: 8px; }
 .hyroxPage .hyroxGymConditions dl { grid-template-columns: minmax(0, 1fr); gap: 24px; }
 .hyroxPage .hyroxGymConditions dl > div { min-height: 42px; padding-left: 54px; }
 .hyroxPage .hyroxGymConditions dd { font-size: 1.8rem; }
 .hyroxPage .hyroxScheduleAction .btn { width: 100%; font-size: 1.2rem; padding-left: 12px; padding-right: 32px; }
 .hyroxPage .hyroxBanner { padding: 44px 0; }
 .hyroxPage .hyroxBanner p { font-size: 1.5rem; }
 .hyroxPage .hyroxAccessInfo { padding: 24px 20px; }
 .hyroxPage .hyroxDetails { grid-template-columns: minmax(0, 1fr); }
 .hyroxPage .hyroxDetails dd { padding-top: 0; border: 0; }
 .hyroxPage .hyroxCtaAudience { font-size: 1.6rem; }
 .hyroxPage .hyroxMobileBreak { display: inline; }
 .hyroxPage .hyroxDesktopBreak { display: none; }
}
@media (max-width: 360px) {
 .hyroxPage .hyroxPlanRates strong, .hyroxPage .hyroxLessonRates dd { font-size: 2.5rem; }
 .hyroxPage .hyroxPlanRates tr, .hyroxPage .hyroxLessonRates > div { gap: 4px; }
 .hyroxPage .hyroxReasonGrid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .hyroxPage * { transition: none; animation: none; } }

/* 共通FAQの装飾はセクション内で収め、細い画面でもボタンを枠内に表示。 */
.hyroxPage .ksfcProgramFaq .faq { overflow: hidden; }
@media (max-width: 768px) {
 .hyroxPage .hyroxScheduleAction .btn { min-width: 0; }
 .hyroxPage .ksfcFaqMore .btn { width: 100%; max-width: 420px; min-width: 0; padding-left: 12px; padding-right: 32px; font-size: 1.3rem; }
}
.hyroxPage .hyroxSource a { font-size: inherit; }
.hyroxPage .hyroxCapacity p { font-size: 1.6rem; line-height: 1.5; }
.hyroxPage .hyroxSection .hyroxEyebrow { margin-bottom: 10px; }
.hyroxPage .ksfcProgramFaq .faq::before, .hyroxPage .ksfcProgramFaq .faq::after { max-width: 100%; }

/* カンプのボタンと写真の見せ方。共通部品への変更はHYROX内に限定。 */
.hyroxPage .hyroxHero .btn.green { color: #57c2b5; border-color: #57c2b5; }
.hyroxPage .hyroxHero .btn.green:hover { color: #fff; background: var(--hyrox-green); }
.hyroxPage .hyroxHero .btn.white { color: #fff; border-color: #fff; }
.hyroxPage .hyroxHero .btn.white:hover { background: #fff; color: #203630; }
.hyroxPage .hyroxHeroPhotoRight { object-position: 74% center; }
.hyroxPage .hyroxStationGrid li:nth-child(1) img { object-position: center 50%; }
.hyroxPage .hyroxStationGrid li:nth-child(5) img { object-position: center 43%; }
.hyroxPage .hyroxStationGrid li:nth-child(6) img { object-position: 40% center; }
.hyroxPage .hyroxReasonGrid .hyroxReasonCard h3 { min-height: 60px; }
.hyroxPage .hyroxEquipmentPhotos figure:last-child { margin-bottom: 0; }
.hyroxPage .hyroxBanner .btn.green { background: var(--hyrox-green); border-color: var(--hyrox-green); color: #fff; }
.hyroxPage .hyroxBanner .btn.white { background: #fff; border-color: #fff; color: #203630; }
.hyroxPage .hyroxBanner .btn.green .arrow { filter: brightness(0) invert(1); }
.hyroxPage .hyroxBanner .btn.white .arrow { filter: brightness(0); }
.hyroxPage .hyroxBanner .btn:hover { opacity: .85; }
.hyroxPage .hyroxScheduleAction .btn { border-color: var(--hyrox-green); color: var(--hyrox-green); }
.hyroxPage .hyroxScheduleAction .btn:hover { color: #fff; background: var(--hyrox-green); }
.hyroxPage .ksfcProgramFaq .faq { min-height: 573px; padding: 60px 0 64px; background: #4da99c; }
.hyroxPage .ksfcProgramFaq .middleWrapp { width: min(1230px, calc(100% - 80px)); max-width: none; }
.hyroxPage .ksfcProgramFaq .secTtlBox { margin-bottom: 36px; }
.hyroxPage .ksfcProgramFaq .secTtl { font-size: 5.2rem; line-height: 1.2; margin: 0; }
.hyroxPage .ksfcProgramFaq .secTtl .jp-txt { font-size: 2.4rem; margin-bottom: 8px; }
.hyroxPage .ksfcProgramFaq .faqList dt { margin: 0 0 14px; padding: 12px 46px 12px 18px; font-size: 1.6rem; line-height: 1.5; }
.hyroxPage .ksfcProgramFaq .faqList dd { padding: 18px 24px; margin: -7px 0 18px; font-size: 1.6rem; line-height: 1.75; }
.hyroxPage .ksfcFaqMore { margin-top: 24px; }
.hyroxPage .ksfcFaqMore .btn { display: inline-flex; justify-content: center; align-items: center; width: 285px; max-width: 100%; min-width: 0; min-height: 50px; padding: 12px 36px 12px 16px; font-size: 1.6rem; border-radius: 0; }
.hyroxPage .ksfcCommonCta .secTtl .ttl01 { color: var(--hyrox-green); }
@media (min-width: 769px) and (max-width: 1100px) {
 .hyroxPage .hyroxEquipmentLayout { grid-template-columns: 32% minmax(0, 1fr); gap: 36px; }
 .hyroxPage .hyroxReasonGrid { gap: 24px; }
 .hyroxPage .hyroxStationGrid h3 { font-size: 1.5rem; }
 .hyroxPage .hyroxStationGrid p { font-size: 1.2rem; }
 .hyroxPage .hyroxReasonCard p { font-size: 1.6rem; }
 .hyroxPage .hyroxReasonCard h3 { font-size: 1.8rem; }
 .hyroxPage .hyroxSupportPoints { gap: 24px; }
 .hyroxPage .hyroxSupportPoints li { font-size: 1.6rem; }
 .hyroxPage .hyroxSupportPoints strong { font-size: 1.8rem; }
 .hyroxPage .hyroxUseGrid .hyroxReasonCard { padding: 24px; }
 .hyroxPage .hyroxGymConditions dl { padding-right: 16px; }
 .hyroxPage .hyroxGymConditions dd { font-size: 1.8rem; }
}
@media (max-width: 900px) and (min-width: 769px) {
 .hyroxPage .hyroxRaceGrid { grid-template-columns: 180px 36px minmax(0, 1fr); }
 .hyroxPage .hyroxReasonGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
 .hyroxPage .hyroxStationGrid { gap: 24px 16px; }
 .hyroxPage .hyroxUseGrid { grid-template-columns: 1fr; }
 .hyroxPage .hyroxCoachGrid { padding: 32px; grid-template-columns: 220px minmax(0, 1fr); gap: 28px; }
 .hyroxPage .hyroxPlanRates strong, .hyroxPage .hyroxLessonRates dd { font-size: 3.2rem; }
 .hyroxPage .hyroxGymConditions dl { padding: 0 20px 20px; }
 .hyroxPage .hyroxGymConditions h3 { margin-bottom: 20px; }
}
@media (max-width: 768px) {
 .hyroxPage .hyroxSection { padding: 60px 0; }
 .hyroxPage .hyroxIntro { padding-top: 40px; }
 .hyroxPage .hyroxSectionHeading h2, .hyroxPage .hyroxCta h2 { font-size: 2.6rem; line-height: 1.5; }
 .hyroxPage .hyroxEyebrow { font-size: 1.3rem; line-height: 1.7; }
 .hyroxPage .hyroxHero { min-height: 700px; padding: 48px 0; }
 .hyroxPage .hyroxHero h1 { font-size: clamp(2.4rem, 6.2vw, 3.6rem); }
 .hyroxPage .hyroxHeroLogo { width: 300px; }
 .hyroxPage .hyroxArea { font-size: 1.6rem; line-height: 1.7; }
 .hyroxPage .hyroxHeroDescription { font-size: 1.4rem; line-height: 1.8; }
 .hyroxPage .hyroxCertification { font-size: 1.5rem; }
 .hyroxPage .ksfcProgramActions .btn { font-size: 1.6rem; width: 100%; max-width: 360px; }
 .hyroxPage .hyroxHero .ksfcProgramActions, .hyroxPage .hyroxBanner .ksfcProgramActions { gap: 14px; }
 .hyroxPage .hyroxRaceGrid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
 .hyroxPage .hyroxRunPhoto img { aspect-ratio: 2; height: auto; }
 .hyroxPage .hyroxRunPhoto figcaption { font-size: 2.4rem; }
 .hyroxPage .hyroxStationGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 16px; }
 .hyroxPage .hyroxStationGrid h3 { font-size: 1.5rem; }
 .hyroxPage .hyroxStationGrid p { font-size: 1.2rem; }
 .hyroxPage .hyroxRaceIntro p { font-size: 1.4rem; }
 .hyroxPage .hyroxReasonCard p { font-size: 1.6rem; line-height: 1.7; }
 .hyroxPage .hyroxReasonCard h3 { font-size: 1.8rem; }
 .hyroxPage .hyroxReasonGrid { gap: 32px 18px; }
 .hyroxPage .hyroxReasonGrid .hyroxReasonCard h3 { min-height: 54px; }
 .hyroxPage .hyroxSupportPoints { gap: 28px; }
 .hyroxPage .hyroxSupportPoints li { font-size: 1.6rem; }
 .hyroxPage .hyroxSupportPoints strong { font-size: 1.8rem; }
 .hyroxPage .hyroxEquipmentLayout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
 .hyroxPage .hyroxEquipmentPhotos figure { margin: 0; }
 .hyroxPage .hyroxEquipmentPhotos figcaption { font-size: 1.3rem; }
 .hyroxPage .hyroxEquipmentList h3 { font-size: 1.6rem; }
 .hyroxPage .hyroxEquipmentList h3 small { font-size: 1.3rem; }
 .hyroxPage .hyroxEquipmentList p { font-size: 1.5rem; }
 .hyroxPage .hyroxUse, .hyroxPage #hyrox-coach, .hyroxPage .hyroxPrice { padding-top: 0; }
 .hyroxPage .hyroxUseGrid h3 { font-size: 2rem; }
 .hyroxPage .hyroxUseGrid a, .hyroxPage .hyroxUseGrid .hyroxNote { font-size: 1.4rem; }
 .hyroxPage .hyroxLessonPhoto { aspect-ratio: 1.5; }
 .hyroxPage .hyroxCoachGrid { padding: 24px; min-height: 0; }
 .hyroxPage .hyroxCoachPhoto img { height: auto; aspect-ratio: 250 / 364; }
 .hyroxPage .hyroxCoachGrid h2 { font-size: 2.6rem; }
 .hyroxPage .hyroxCoachDescription { font-size: 1.5rem; }
 .hyroxPage .hyroxCapacityTitle { font-size: 1.5rem; }
 .hyroxPage .hyroxCapacity p { font-size: 1.4rem; }
 .hyroxPage .hyroxPriceCard p, .hyroxPage .hyroxLessonPrices p { font-size: 1.4rem; }
 .hyroxPage .hyroxPlanRates th, .hyroxPage .hyroxLessonRates dt { font-size: 1.4rem; }
 .hyroxPage .hyroxPlanRates td span, .hyroxPage .hyroxLessonRates dd span { font-size: 1.5rem; }
 .hyroxPage .hyroxGymConditions dl { padding: 0 20px 24px; }
 .hyroxPage .hyroxGymConditions dl > div { padding-left: 56px; }
 .hyroxPage .hyroxGymConditions h3 { padding: 16px 20px; }
 .hyroxPage .hyroxVisitor { grid-template-columns: minmax(0, 1fr); }
 .hyroxPage .hyroxAmount strong { font-size: 3.6rem; }
 .hyroxPage .hyroxScheduleAction .btn { width: 100%; max-width: 338px; font-size: 1.4rem; }
 .hyroxPage .hyroxBanner { min-height: 300px; padding: 40px 0; }
 .hyroxPage .hyroxBanner p { font-size: 1.6rem; }
 .hyroxPage .ksfcProgramFaq .faq { min-height: 0; padding: 54px 0; }
 .hyroxPage .ksfcProgramFaq .middleWrapp { width: calc(100% - 40px); }
 .hyroxPage .ksfcProgramFaq .secTtl { font-size: 4.2rem; }
 .hyroxPage .ksfcProgramFaq .secTtl .jp-txt { font-size: 1.8rem; }
 .hyroxPage .ksfcProgramFaq .faqList dt { font-size: 1.4rem; }
 .hyroxPage .ksfcProgramFaq .faqList dd { font-size: 1.4rem; }
 .hyroxPage .ksfcFaqMore .btn { width: 100%; max-width: 285px; font-size: 1.4rem; }
 .hyroxPage .hyroxCta { min-height: 0; padding: 64px 0; }
 .hyroxPage .hyroxCtaAudience { font-size: 2rem; }
 .hyroxPage .hyroxDetails { font-size: 1.6rem; }
 .hyroxPage .hyroxAccessInfo h3 { font-size: 2rem; }
}
@media (max-width: 360px) {
 .hyroxPage .hyroxReasonGrid { grid-template-columns: minmax(0, 1fr); }
 .hyroxPage .hyroxPlanRates strong, .hyroxPage .hyroxLessonRates dd { font-size: 2.5rem; }
 .hyroxPage .hyroxScheduleAction .btn { font-size: 1.3rem; }
}

/* HYROXとは：カンプの写真枠とトリミング。ヒーロー等には影響させない。 */
.hyroxPage .hyroxStationPhoto { aspect-ratio: 170 / 120; overflow: hidden; }
.hyroxPage .hyroxStationPhoto img { width: 100%; height: 100%; aspect-ratio: auto; }
.hyroxPage .hyroxStationPhoto2 img { object-position: right center; transform: scale(1.4); transform-origin: right 44%; }
.hyroxPage .hyroxStationPhoto3 img { transform: scale(1.578); transform-origin: 22% 42%; }
.hyroxPage .hyroxStationPhoto1 img { object-position: 50% 36%; }
.hyroxPage .hyroxStationPhoto5 img { object-position: 50% 40%; }
@media (min-width: 1101px) {
 .hyroxPage .hyroxRunPhoto img { height: 325px; object-position: 32% center; }
 .hyroxPage .hyroxRunPhoto figcaption { font-size: 3rem; }
 .hyroxPage .hyroxStationGrid { grid-auto-rows: 190px; row-gap: 16px; }
 .hyroxPage .hyroxStationGrid h3 { margin: 10px 0 0; font-size: 1.3rem; line-height: 19px; font-weight: 400; }
 .hyroxPage .hyroxStationGrid p { font-size: 1.3rem; line-height: 19px; }
}

/* カンプのレッスン料金に付随する月額ラベル。 */
.hyroxPage .hyroxLessonPrices .hyroxRateCaption { margin: 0 0 2px; color: var(--hyrox-green); font-size: 1.3rem; font-weight: 700; line-height: 1.5; }

.hyroxPage .hyroxLessonPrices > .hyroxLessonRateBox { display: block; }

/* 提供Race Format PDFを参考に、競技順を追えるコース図として表示。 */
.hyroxPage .hyroxRaceDetails { margin-top: 24px; border: 1px solid #cbded8; background: #fff; }
.hyroxPage .hyroxRaceDetails summary { padding: 12px 24px; cursor: pointer; color: var(--hyrox-green); font-size: 1.6rem; font-weight: 700; line-height: 1.6; }
.hyroxPage .hyroxRaceDetails summary::marker { color: var(--hyrox-green); }
.hyroxPage .hyroxRaceDetails summary:focus-visible { outline: 3px solid var(--hyrox-green); outline-offset: 3px; }
.hyroxPage .hyroxRaceDetailsBody { padding: 0 24px 24px; }
.hyroxPage .hyroxRaceRouteIntro, .hyroxPage .hyroxRaceRouteFinish { font-size: 1.6rem; line-height: 1.7; }
.hyroxPage .hyroxRaceCourse { position: relative; margin: 24px 0; padding: 28px 28px 28px 100px; background: #f0f6f4; }
.hyroxPage .hyroxRaceCourseTitle { position: absolute; top: 50%; left: 24px; transform: translateY(-50%) rotate(180deg); writing-mode: vertical-rl; color: var(--hyrox-green); font-size: 3.6rem; font-weight: 700; line-height: 1.4; letter-spacing: .12em; }
.hyroxPage .hyroxRaceEndpoint { position: relative; margin: 0 0 16px; color: var(--hyrox-green); font-size: 3rem; font-weight: 700; line-height: 1.4; letter-spacing: .06em; }
.hyroxPage .hyroxRaceEndpointFinish { margin: 16px 0 0; }
.hyroxPage .hyroxRaceRoute { position: relative; list-style: none; margin: 0; padding: 0; }
.hyroxPage .hyroxRaceRoute::before { content: ""; position: absolute; top: -16px; left: 0; height: 60px; border-left: 2px dashed #85b6ab; }
.hyroxPage .hyroxRaceRoute li { position: relative; display: grid; grid-template-columns: 42% minmax(0, 1fr); align-items: center; column-gap: 32px; min-height: 88px; }
.hyroxPage .hyroxRaceRoute li::after { content: ""; position: absolute; top: 44px; left: 42%; height: 88px; border-left: 2px dashed #85b6ab; }
.hyroxPage .hyroxRaceRoute li:nth-child(even)::after { left: 0; }
.hyroxPage .hyroxRaceRoute li:last-child::after { height: 60px; }
.hyroxPage .hyroxRaceRouteRun { position: relative; display: grid; place-items: center; height: 88px; margin: 0; text-align: center; }
.hyroxPage .hyroxRaceRouteRun::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px dashed #85b6ab; }
.hyroxPage .hyroxRaceRouteRun::after { content: ""; position: absolute; top: calc(50% - 5px); right: -1px; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 8px solid var(--hyrox-green); }
.hyroxPage .hyroxRaceRoute li:nth-child(even) .hyroxRaceRouteRun::after { left: 0; right: auto; transform: rotate(180deg); }
.hyroxPage .hyroxRaceRouteRun > span { position: relative; z-index: 1; padding: 0 12px; background: #f0f6f4; }
.hyroxPage .hyroxRaceRouteRun b { display: block; color: var(--hyrox-green); font-size: 2rem; font-weight: 700; line-height: 1.4; }
.hyroxPage .hyroxRaceRouteRun small { display: block; color: #526b65; font-size: 1.3rem; line-height: 1.5; }
.hyroxPage .hyroxRaceWorkout { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-width: 0; }
.hyroxPage .hyroxRaceRouteNumber { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #85b6ab; border-radius: 50%; color: var(--hyrox-green); font-weight: 700; font-size: 1.2rem; line-height: 1; }
.hyroxPage .hyroxRaceRoute h3 { margin: 0; font-size: 1.6rem; line-height: 1.5; text-wrap: initial; }
.hyroxPage .hyroxRaceRoute h3 span { display: block; margin-top: 3px; color: #526b65; font-size: 1.2rem; font-weight: 400; line-height: 1.4; }
.hyroxPage .hyroxRaceRoute strong { color: var(--hyrox-green); font-size: 2.2rem; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.hyroxPage .hyroxRaceRouteSource { margin-top: 16px; }
.hyroxPage .hyroxRaceRouteSource a { color: var(--hyrox-green); text-decoration: underline; }
@media (max-width: 1100px) and (min-width: 769px) {
 .hyroxPage .hyroxRaceCourse { padding-left: 70px; padding-right: 20px; }
 .hyroxPage .hyroxRaceCourseTitle { left: 20px; font-size: 2.6rem; }
 .hyroxPage .hyroxRaceRoute li { grid-template-columns: 34% minmax(0, 1fr); column-gap: 24px; }
 .hyroxPage .hyroxRaceRoute li:nth-child(odd)::after { left: 34%; }
 .hyroxPage .hyroxRaceRouteRun b { font-size: 1.7rem; }
 .hyroxPage .hyroxRaceRoute strong { font-size: 1.8rem; }
}
@media (max-width: 768px) {
 .hyroxPage .hyroxRaceDetails summary { padding: 16px; font-size: 1.4rem; }
 .hyroxPage .hyroxRaceDetailsBody { padding: 0 16px 20px; }
 .hyroxPage .hyroxRaceCourse { margin: 20px 0; padding: 20px 12px; }
 .hyroxPage .hyroxRaceCourseTitle { position: static; writing-mode: horizontal-tb; transform: none; font-size: 1.2rem; letter-spacing: .14em; margin: 0 0 12px; }
 .hyroxPage .hyroxRaceEndpoint { margin-bottom: 0; font-size: 2.4rem; }
 .hyroxPage .hyroxRaceEndpointFinish { margin-top: 0; }
 .hyroxPage .hyroxRaceRoute::before { top: 0; bottom: 0; left: 7px; height: auto; }
 .hyroxPage .hyroxRaceRoute li { display: block; min-height: 0; padding: 18px 0 18px 28px; }
 .hyroxPage .hyroxRaceRoute li::after { left: 2px; top: auto; bottom: 3px; height: 0; border: 6px solid transparent; border-top: 8px solid var(--hyrox-green); }
 .hyroxPage .hyroxRaceRoute li:nth-child(even)::after { left: 2px; }
 .hyroxPage .hyroxRaceRoute li:last-child::after { height: 0; }
 .hyroxPage .hyroxRaceRouteRun { display: block; height: auto; margin: 0 0 12px; text-align: left; }
 .hyroxPage .hyroxRaceRouteRun::before, .hyroxPage .hyroxRaceRouteRun::after { display: none; }
 .hyroxPage .hyroxRaceRouteRun > span { display: flex; align-items: baseline; gap: 10px; padding: 0; }
 .hyroxPage .hyroxRaceRouteRun b { font-size: 1.5rem; }
 .hyroxPage .hyroxRaceRouteRun small { font-size: 1.2rem; }
 .hyroxPage .hyroxRaceWorkout { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 12px 10px; background: #fff; }
 .hyroxPage .hyroxRaceRouteNumber { display: none; }
 .hyroxPage .hyroxRaceRoute h3 { font-size: 1.4rem; }
 .hyroxPage .hyroxRaceRoute h3 span { font-size: 1.1rem; }
 .hyroxPage .hyroxRaceRoute strong { font-size: 1.7rem; }
 .hyroxPage .hyroxRaceRouteIntro, .hyroxPage .hyroxRaceRouteFinish { font-size: 1.4rem; }
}

/* 2026-10-23 XD改訂0を参照した全体調整。既存の営業情報と追加の競技図を維持。 */
.hyroxPage .hyroxLessonPhoto { object-position: center center; }
body.hyrox .copyright { background: #4da99c; }
@media (min-width: 1101px) {
 .hyroxPage .hyroxHero { align-items: start; padding-top: 100px; }
 .hyroxPage .hyroxCertification { margin-top: 42px; }
 .hyroxPage .hyroxHero .ksfcProgramActions { margin-top: 54px; }
 .hyroxPage #hyrox-equipment { padding-bottom: 64px; }
 .hyroxPage .hyroxUseGrid .hyroxReasonCard { padding: 24px 30px; min-height: 230px; }
 .hyroxPage .hyroxUseGrid h3 { margin-bottom: 16px; }
 .hyroxPage .hyroxUseGrid p { font-size: 1.6rem; line-height: 1.7; }
 .hyroxPage .hyroxUseGrid a, .hyroxPage .hyroxUseGrid .hyroxNote { margin-top: 12px; font-size: 1.4rem; line-height: 1.5; }
 .hyroxPage .hyroxPlanRates { position: relative; display: block; padding-left: 42px; }
 .hyroxPage .hyroxPlanRates caption, .hyroxPage .hyroxLessonPrices .hyroxRateCaption { position: absolute; left: 0; top: 50%; transform: translateY(-50%); padding: 1px 5px; margin: 0; background: var(--hyrox-green); color: #fff; font-size: 1.2rem; line-height: 1.5; }
 .hyroxPage .hyroxLessonRateBox { position: relative; padding-left: 42px; }
 .hyroxPage .hyroxPlanRates tbody, .hyroxPage .hyroxLessonRates { gap: 16px; }
 .hyroxPage .hyroxAmount { line-height: 1.2; }
}
@media (max-width: 768px) {
 .hyroxPage .hyroxHeroPhotoRight { object-position: 88% center; }
}

/* 2026-10-23 主題と店舗を伝えるH1を画面幅に合わせて表示。 */
.hyroxPage .hyroxHeroClubName { font-size: .8em; font-weight: inherit; }
@media (max-width: 768px) {
 .hyroxPage .hyroxHero h1 { font-size: clamp(1.8rem, 5.5vw, 3rem); }
}

/* 2026-10-23 主見出しの前にトレーニングの動作を伝えるキャッチを表示。 */
.hyroxPage .hyroxHeroCatch { margin: 16px 0 0; font-size: 2.8rem; font-weight: 700; line-height: 1.4; letter-spacing: .04em; }
.hyroxPage .hyroxHeroCatch + h1 { margin-top: 12px; }
@media (max-width: 768px) {
 .hyroxPage .hyroxHeroCatch { font-size: clamp(1.8rem, 5vw, 2.2rem); }
}

/* 本番用のHYROX専用部品。既存style.cssに依存する追加指定をこのページ内に限定。 */
.hyroxPage .ksfcProgramActions { display: flex; flex-wrap: wrap; }
.hyroxPage .ksfcProgramActions .btn { margin: 0; max-width: 100%; }
.hyroxPage .ksfcFaqMore { text-align: center; }
.hyroxPage .ksfcCommonCta .secTtl { letter-spacing: 1px; }
