:root {
  --ink: #111111;
  --paper: #f3f1ea;
  --signal: #dfff00;
  --blue: #3858ff;
  --orange: #ff5c35;
  --line: #c8c5bc;
  --white: #ffffff;
  --gothic: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", "Meiryo", system-ui, sans-serif;
  --latin: Arial, Helvetica, sans-serif;
  --max: 1480px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--gothic); font-size: 16px; line-height: 1.8; letter-spacing: .03em; }
body.nav-open { overflow: hidden; }
a { color: inherit; }
svg { width: 100%; height: auto; display: block; }
button, input, textarea, select { font: inherit; }

.site-header { position: fixed; z-index: 50; top: 0; left: 0; right: 0; height: 78px; display: grid; grid-template-columns: 180px 1fr auto auto; align-items: center; gap: 24px; padding: 0 28px; background: rgba(243,241,234,.94); border-bottom: 2px solid var(--ink); backdrop-filter: blur(12px); }
.logo { display: flex; align-items: baseline; gap: 3px; font-family: var(--latin); font-size: 38px; font-weight: 900; line-height: 1; letter-spacing: -.08em; text-decoration: none; }
.logo span { font-size: 18px; letter-spacing: -.03em; }
.header-tagline { margin: 0; font-family: var(--latin); font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.header-cta { display: inline-flex; align-items: center; gap: 22px; padding: 10px 13px; background: var(--signal); border: 2px solid var(--ink); font-family: var(--latin); font-size: 11px; font-weight: 900; letter-spacing: .12em; text-decoration: none; }
.menu-button { width: 84px; height: 42px; display: none; align-items: center; justify-content: center; gap: 8px; border: 2px solid var(--ink); background: var(--signal); color: var(--ink); font: 900 11px/1 var(--latin); letter-spacing: .12em; cursor: pointer; }
.menu-button i { width: 4px; height: 4px; background: currentColor; border-radius: 50%; }
.global-nav { display: flex; align-items: center; gap: 21px; }
.global-nav a { display: flex; gap: 7px; align-items: center; font-family: var(--latin); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-decoration: none; }
.global-nav a span { color: var(--blue); font-size: 8px; }

.hero { min-height: 100vh; display: grid; grid-template-columns: minmax(470px,.86fr) 1.14fr; grid-template-rows: 1fr 52px; padding-top: 78px; border-bottom: 2px solid var(--ink); overflow: hidden; }
.hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 76px clamp(30px,5vw,86px); background: var(--ink); color: var(--white); }
.eyebrow { margin: 0 0 36px; color: var(--signal); font-family: var(--latin); font-size: 11px; font-weight: 900; letter-spacing: .2em; }
.hero h1 { display: flex; flex-direction: column; align-items: flex-start; margin: 0; font-family: var(--latin); font-weight: 900; line-height: .75; letter-spacing: -.12em; }
.hero h1 span { font-size: clamp(45px,5vw,82px); letter-spacing: -.09em; }
.hero h1 b { color: var(--signal); font-size: clamp(150px,17vw,300px); line-height: .73; }
.hero-message { margin: 68px 0 0; font-size: clamp(34px,4vw,62px); font-weight: 900; line-height: 1.18; letter-spacing: -.05em; }
.hero-lead { margin: 26px 0 0; color: rgba(255,255,255,.66); font-size: 14px; font-weight: 700; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 30px; margin-top: 43px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 48px; min-width: 230px; padding: 16px 18px; border: 2px solid var(--ink); font-size: 13px; font-weight: 900; line-height: 1.2; text-decoration: none; }
.button b { font: 900 18px/1 var(--latin); }
.button-signal { background: var(--signal); color: var(--ink); }
.button-dark { background: var(--ink); color: var(--white); }
.text-link { display: inline-flex; align-items: center; gap: 18px; padding-bottom: 6px; border-bottom: 2px solid rgba(255,255,255,.65); font-size: 12px; font-weight: 900; text-decoration: none; }
.hero-visual { position: relative; min-height: 720px; display: grid; place-items: center; background: var(--signal); overflow: hidden; }
.visual-number { position: absolute; left: -18px; top: -50px; font-family: var(--latin); font-size: clamp(250px,39vw,680px); font-weight: 900; line-height: 1; letter-spacing: -.16em; color: rgba(17,17,17,.075); }
.glove-graphic { position: relative; z-index: 1; width: min(88%,780px); }
.glove-graphic .disc { fill: var(--white); stroke: var(--ink); stroke-width: 5; }
.glove-graphic .wrist { fill: var(--blue); stroke: var(--ink); stroke-width: 13; stroke-linejoin: round; }
.glove-graphic .glove { fill: var(--orange); stroke: var(--ink); stroke-width: 13; stroke-linejoin: round; }
.glove-graphic .thumb { fill: var(--orange); stroke: var(--ink); stroke-width: 13; stroke-linecap: round; stroke-linejoin: round; }
.glove-graphic .seam, .glove-graphic .wrap, .glove-graphic .speed { fill: none; stroke: var(--ink); stroke-width: 11; stroke-linecap: round; stroke-linejoin: round; }
.glove-graphic .speed { stroke-width: 13; }
.round-badge { position: absolute; z-index: 2; right: 8%; top: 8%; width: 116px; height: 116px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--blue); color: var(--white); border: 3px solid var(--ink); border-radius: 50%; transform: rotate(8deg); }
.round-badge span { font-family: var(--latin); font-size: 49px; font-weight: 900; line-height: .82; letter-spacing: -.08em; }
.round-badge b { margin-top: 7px; font-family: var(--latin); font-size: 11px; letter-spacing: .15em; }
.visual-caption { position: absolute; right: 28px; bottom: 28px; margin: 0; font-family: var(--latin); font-size: 11px; font-weight: 900; line-height: 1.4; letter-spacing: .12em; text-align: right; }
.hero-strip { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; padding: 0 28px; background: var(--blue); color: var(--white); border-top: 2px solid var(--ink); font-family: var(--latin); font-size: 10px; font-weight: 900; letter-spacing: .14em; }

.section { max-width: var(--max); margin: 0 auto; padding: 130px clamp(24px,5vw,78px); }
.section-label { display: flex; align-items: center; gap: 12px; margin-bottom: 58px; font-family: var(--latin); font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.section-label span { display: grid; place-items: center; min-width: 31px; height: 31px; padding: 0 9px; background: var(--blue); color: var(--white); border-radius: 18px; }
.section-label.light { color: var(--white); }
.section-label.light span { background: var(--signal); color: var(--ink); }
.about h2, .program-intro h2, .price h2, .trial h2, .trainer h2, .schedule h2, .access h2, .faq h2, .reserve h2 { margin: 0; font-size: clamp(46px,6vw,94px); font-weight: 900; line-height: 1.13; letter-spacing: -.06em; }

.about-grid { display: grid; grid-template-columns: 1.05fr .85fr; gap: 90px 120px; align-items: start; }
.about-copy { max-width: 570px; padding-top: 16px; }
.about-copy p { margin: 0; }
.about-copy p + p { margin-top: 28px; }
.about-copy .lead { font-size: clamp(19px,2vw,26px); font-weight: 900; line-height: 1.7; }
.feature-code { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,1fr); border: 2px solid var(--ink); }
.feature-code article { min-height: 210px; padding: 20px 22px 24px; border-right: 2px solid var(--ink); }
.feature-code article:last-child { border-right: 0; }
.feature-code span { display: block; padding-bottom: 14px; border-bottom: 2px solid var(--ink); color: var(--blue); font-family: var(--latin); font-size: 11px; font-weight: 900; }
.feature-code b { display: block; margin-top: 25px; font-family: var(--latin); font-size: clamp(25px,3.4vw,50px); line-height: .95; letter-spacing: -.05em; }
.feature-code p { margin: 26px 0 0; font-size: 12px; font-weight: 700; }

.program-section { background: var(--ink); color: var(--white); padding-bottom: 70px; }
.program-intro { padding-bottom: 76px; }
.program-grid { display: grid; grid-template-columns: 1.16fr .92fr .92fr; max-width: var(--max); margin: 0 auto; padding: 0 clamp(24px,5vw,78px); }
.program-card { min-height: 520px; display: flex; flex-direction: column; padding: 29px; background: var(--white); color: var(--ink); border: 2px solid var(--ink); }
.program-card + .program-card { border-left: 0; }
.program-card.featured { background: var(--signal); }
.program-card.accent { background: var(--orange); }
.program-no { align-self: flex-end; font-family: var(--latin); font-size: 12px; font-weight: 900; }
.program-type { margin: 58px 0 12px; font-family: var(--latin); font-size: 10px; font-weight: 900; letter-spacing: .15em; }
.program-card h3 { margin: 0; font-family: var(--latin); font-size: clamp(39px,4.3vw,70px); font-weight: 900; line-height: .86; letter-spacing: -.08em; }
.program-card > p:not(.program-type) { max-width: 25em; margin: 31px 0 0; font-size: 13px; font-weight: 700; }
.program-card dl { margin: auto 0 0; border-top: 2px solid var(--ink); }
.program-card dl div { display: grid; grid-template-columns: 80px 1fr; padding: 11px 0; border-bottom: 1px solid var(--ink); }
.program-card dt, .program-card dd { font-family: var(--latin); font-size: 10px; font-weight: 900; letter-spacing: .1em; }
.program-card dd { margin: 0; text-align: right; }

.trial { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 800px; background: var(--blue); color: var(--white); }
.trial-visual { position: relative; min-height: 700px; display: grid; place-items: center; background: var(--signal); color: var(--ink); border-right: 2px solid var(--ink); overflow: hidden; }
.trial-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(17,17,17,.14) 2px,transparent 2px),linear-gradient(90deg,rgba(17,17,17,.14) 2px,transparent 2px); background-size: 70px 70px; }
.trial-number { position: absolute; left: 25px; top: -60px; font-family: var(--latin); font-size: clamp(280px,38vw,610px); font-weight: 900; line-height: 1; letter-spacing: -.14em; color: rgba(17,17,17,.08); }
.target-graphic { position: relative; z-index: 1; width: min(80%,650px); }
.target-graphic circle, .target-graphic path { fill: none; stroke: var(--ink); stroke-width: 11; }
.target-graphic .arrow { stroke: var(--orange); stroke-width: 20; stroke-linecap: square; stroke-linejoin: miter; }
.trial-copy { display: flex; flex-direction: column; justify-content: center; padding: 100px clamp(34px,6vw,95px); }
.trial-kicker { margin: 0 0 10px; color: var(--signal); font-size: 18px; font-weight: 900; }
.trial h2 { display: flex; flex-direction: column; }
.trial h2 strong { font-family: var(--latin); font-size: clamp(90px,11vw,190px); line-height: .8; letter-spacing: -.09em; }
.trial h2 small { margin-top: 18px; font: 900 11px/1 var(--latin); letter-spacing: .16em; }
.trial-copy > p:not(.trial-kicker) { max-width: 35em; margin: 42px 0 0; color: rgba(255,255,255,.75); font-weight: 700; }
.trial-copy ul { margin: 28px 0 40px; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.5); }
.trial-copy li { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.5); font-size: 12px; font-weight: 700; }
.trial-copy li::before { content: "→"; margin-right: 12px; color: var(--signal); font-family: var(--latin); font-weight: 900; }

.price-heading { display: grid; grid-template-columns: 1fr .7fr; gap: 100px; align-items: end; }
.price-heading p { max-width: 32em; margin: 0 0 10px; font-weight: 700; }
.price-table { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 85px; border: 2px solid var(--ink); }
.price-table article { min-height: 370px; display: flex; flex-direction: column; padding: 25px; border-right: 2px solid var(--ink); background: var(--white); }
.price-table article:last-child { border-right: 0; }
.price-table .price-highlight { background: var(--signal); }
.price-table .price-blue { background: var(--blue); color: var(--white); }
.price-index { align-self: flex-end; font-family: var(--latin); font-size: 11px; font-weight: 900; }
.price-table p { margin: 49px 0 10px; font-family: var(--latin); font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.price-table h3 { margin: 0; font-size: 25px; font-weight: 900; letter-spacing: -.03em; }
.price-table strong { margin: 28px 0 0; font-family: var(--latin); font-size: clamp(35px,3.5vw,56px); line-height: 1; letter-spacing: -.06em; }
.price-table strong small { margin-left: 6px; font-size: 9px; letter-spacing: .1em; }
.price-table span { margin-top: auto; padding-top: 20px; border-top: 2px solid currentColor; font-size: 11px; font-weight: 700; }
.price-note { margin: 17px 0 0; color: #666; font-size: 11px; text-align: right; }

.trainer { display: grid; grid-template-columns: .86fr 1.14fr; min-height: 900px; background: var(--ink); color: var(--white); }
.trainer-copy { display: flex; flex-direction: column; justify-content: center; padding: 100px clamp(32px,6vw,90px); }
.trainer-role { margin: 0 0 18px; color: var(--signal); font-family: var(--latin); font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.trainer h2 { font-family: var(--latin); font-size: clamp(73px,9vw,145px); line-height: .78; }
.trainer-name { margin: 30px 0 0; font-size: 21px; font-weight: 900; }
.trainer-copy > p:last-of-type { max-width: 35em; margin-top: 29px; color: rgba(255,255,255,.7); font-weight: 700; }
.trainer-copy ul { display: flex; flex-wrap: wrap; gap: 9px; margin: 32px 0 0; padding: 0; list-style: none; }
.trainer-copy li { padding: 6px 10px; border: 1px solid rgba(255,255,255,.5); font-family: var(--latin); font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.trainer-visual { position: relative; display: grid; place-items: end center; min-height: 800px; background: var(--orange); color: var(--ink); overflow: hidden; }
.portrait-number { position: absolute; left: -55px; top: -60px; font-family: var(--latin); font-size: clamp(350px,46vw,780px); font-weight: 900; line-height: 1; letter-spacing: -.15em; color: rgba(17,17,17,.075); }
.trainer-portrait { position: relative; z-index: 1; width: min(74%,690px); margin-bottom: -5px; }
.trainer-portrait circle, .trainer-portrait path { fill: var(--paper); stroke: var(--ink); stroke-width: 12; stroke-linecap: round; stroke-linejoin: round; }
.trainer-portrait path:nth-child(2) { fill: var(--ink); }
.trainer-portrait path:nth-child(7) { fill: var(--blue); }
.trainer-visual > p { position: absolute; z-index: 2; right: 24px; top: 26px; margin: 0; font-family: var(--latin); font-size: 11px; font-weight: 900; letter-spacing: .13em; text-align: right; }

.schedule-head { display: grid; grid-template-columns: 1fr .7fr; gap: 100px; align-items: end; }
.schedule-head p { max-width: 30em; margin: 0 0 8px; font-weight: 700; }
.schedule-table { margin-top: 76px; border-top: 2px solid var(--ink); }
.schedule-row { display: grid; grid-template-columns: 1.2fr repeat(3,1fr); border-bottom: 2px solid var(--ink); }
.schedule-row > * { min-height: 84px; display: flex; align-items: center; padding: 18px 20px; border-right: 1px solid var(--ink); }
.schedule-row > *:last-child { border-right: 0; }
.schedule-header { background: var(--signal); font-family: var(--latin); font-size: 10px; font-weight: 900; letter-spacing: .13em; }
.schedule-row b { font-family: var(--latin); font-size: 13px; font-weight: 900; }
.schedule-row span { font-family: var(--latin); font-size: 12px; font-weight: 800; }

.access { display: grid; grid-template-columns: 1.12fr .88fr; min-height: 820px; background: var(--blue); color: var(--white); }
.map-panel { position: relative; min-height: 720px; background: var(--signal); color: var(--ink); overflow: hidden; border-right: 2px solid var(--ink); }
.map-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(17,17,17,.16) 2px,transparent 2px),linear-gradient(90deg,rgba(17,17,17,.16) 2px,transparent 2px); background-size: 68px 68px; }
.road { position: absolute; display: block; height: 18px; background: var(--ink); transform-origin: left center; }
.road-a { width: 120%; left: -10%; top: 58%; transform: rotate(-17deg); }
.road-b { width: 90%; left: 8%; top: 25%; transform: rotate(33deg); }
.road-c { width: 75%; left: 42%; top: 5%; transform: rotate(78deg); }
.map-panel span { position: absolute; z-index: 2; padding: 8px 11px; background: var(--paper); border: 2px solid var(--ink); font-family: var(--latin); font-size: 11px; font-weight: 900; }
.station { left: 9%; bottom: 12%; }
.park { right: 8%; top: 13%; }
.studio-pin { left: 48%; top: 47%; display: grid; place-items: center; width: 94px; height: 94px; padding: 0 !important; background: var(--orange) !important; border-radius: 50%; font-family: var(--latin); font-size: 25px !important; }
.access-copy { display: flex; flex-direction: column; justify-content: center; padding: 100px clamp(30px,6vw,92px); }
.access-copy dl { margin: 52px 0 0; border-top: 1px solid rgba(255,255,255,.65); }
.access-copy dl div { display: grid; grid-template-columns: 105px 1fr; gap: 24px; padding: 23px 0; border-bottom: 1px solid rgba(255,255,255,.65); }
.access-copy dt { font-family: var(--latin); font-size: 9px; font-weight: 900; letter-spacing: .13em; color: var(--signal); }
.access-copy dd { margin: 0; font-size: 13px; font-weight: 800; }

.faq-layout { display: grid; grid-template-columns: .88fr 1.12fr; gap: 100px; align-items: start; }
.faq-list { border-top: 2px solid var(--ink); }
.faq-list details { border-bottom: 2px solid var(--ink); }
.faq-list summary { position: relative; display: grid; grid-template-columns: 46px 1fr 25px; gap: 15px; align-items: center; padding: 25px 0; list-style: none; cursor: pointer; font-weight: 900; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; font-family: var(--latin); font-size: 24px; font-weight: 900; text-align: right; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list summary span { color: var(--blue); font-family: var(--latin); font-size: 10px; font-weight: 900; }
.faq-list p { margin: 0; padding: 0 35px 26px 61px; color: #555; font-size: 13px; font-weight: 700; }

.reserve { position: relative; min-height: 720px; display: grid; place-items: center; padding: 110px 25px; background: var(--signal); color: var(--ink); overflow: hidden; }
.reserve-number { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-53%); font-family: var(--latin); font-size: clamp(350px,55vw,850px); font-weight: 900; line-height: 1; letter-spacing: -.16em; color: rgba(17,17,17,.075); }
.reserve-inner { position: relative; z-index: 1; max-width: 850px; text-align: center; }
.reserve-inner > p { margin: 0 0 25px; font-family: var(--latin); font-size: 11px; font-weight: 900; letter-spacing: .17em; }
.reserve h2 { font-size: clamp(55px,8vw,115px); }
.reserve .button { margin-top: 46px; }
.reserve small { display: block; margin-top: 17px; font-size: 10px; font-weight: 700; }

.site-footer { display: grid; grid-template-columns: 250px 1fr auto; align-items: end; gap: 30px; padding: 58px 28px 28px; background: var(--ink); color: var(--white); }
.footer-logo { display: flex; align-items: baseline; gap: 5px; font-family: var(--latin); font-size: 82px; font-weight: 900; line-height: .8; letter-spacing: -.1em; text-decoration: none; }
.footer-logo span { font-size: 27px; }
.site-footer > p { margin: 0; color: var(--signal); font-family: var(--latin); font-size: 10px; font-weight: 900; letter-spacing: .15em; }
.site-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 18px; }
.site-footer nav a { font-family: var(--latin); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-decoration: none; }
.site-footer small { grid-column: 1 / -1; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.38); font-family: var(--latin); font-size: 8px; letter-spacing: .14em; }
.mobile-trial { display: none; }

@media (hover:hover) {
  .global-nav a, .header-cta, .button, .text-link, .footer-logo, .site-footer nav a { transition: opacity .2s ease, transform .2s ease, background .2s ease; }
  .global-nav a:hover, .text-link:hover, .site-footer nav a:hover { opacity: .55; }
  .header-cta:hover, .button:hover { transform: translate(-3px,-3px); box-shadow: 4px 4px 0 var(--ink); }
  .button-dark:hover { box-shadow: 4px 4px 0 var(--blue); }
}

@media (max-width: 1160px) {
  .site-header { grid-template-columns: 155px 1fr auto; }
  .header-tagline { display: none; }
  .global-nav { gap: 13px; }
  .global-nav a { font-size: 9px; }
  .header-cta { display: none; }
  .hero { grid-template-columns: 1fr 1fr; }
  .price-table { grid-template-columns: repeat(2,1fr); }
  .price-table article:nth-child(2) { border-right: 0; }
  .price-table article:nth-child(-n+2) { border-bottom: 2px solid var(--ink); }
  .faq-layout { gap: 65px; }
}

@media (max-width: 820px) {
  body { font-size: 15px; padding-bottom: 58px; }
  .site-header { height: 66px; grid-template-columns: 120px 1fr 84px; padding: 0 14px; }
  .logo { font-size: 31px; }
  .logo span { font-size: 14px; }
  .header-tagline, .header-cta { display: none; }
  .menu-button { display: flex; grid-column: 3; }
  .global-nav { position: fixed; inset: 66px 0 auto; max-height: calc(100vh - 66px); overflow: auto; display: none; flex-direction: column; align-items: stretch; gap: 0; background: var(--signal); border-bottom: 2px solid var(--ink); }
  .global-nav.open { display: flex; }
  .global-nav a { justify-content: space-between; padding: 18px; border-top: 1px solid var(--ink); font-size: 14px; }
  .global-nav a span { font-size: 10px; }

  .hero { min-height: auto; grid-template-columns: 1fr; grid-template-rows: auto auto 44px; padding-top: 66px; }
  .hero-copy { min-height: 610px; padding: 68px 18px 62px; }
  .eyebrow { margin-bottom: 28px; font-size: 9px; }
  .hero h1 span { font-size: 47px; }
  .hero h1 b { font-size: clamp(155px,48vw,210px); }
  .hero-message { margin-top: 60px; font-size: 43px; }
  .hero-lead { font-size: 13px; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 24px; }
  .button { width: 100%; }
  .text-link { width: fit-content; }
  .hero-visual { min-height: 500px; }
  .glove-graphic { width: 96%; }
  .round-badge { width: 92px; height: 92px; right: 4%; top: 5%; }
  .round-badge span { font-size: 39px; }
  .visual-caption { right: 18px; bottom: 18px; font-size: 9px; }
  .hero-strip { grid-column: 1; gap: 30px; overflow: hidden; padding: 0 18px; white-space: nowrap; }
  .hero-strip span:nth-child(n+3) { display: none; }

  .section { padding: 88px 18px; }
  .section-label { margin-bottom: 36px; }
  .about h2, .program-intro h2, .price h2, .trial h2, .schedule h2, .access h2, .faq h2, .reserve h2 { font-size: 49px; }
  .about-grid { grid-template-columns: 1fr; gap: 45px; }
  .about-copy { padding: 0; }
  .about-copy .lead { font-size: 19px; }
  .feature-code { grid-template-columns: 1fr; }
  .feature-code article { min-height: 170px; border-right: 0; border-bottom: 2px solid var(--ink); }
  .feature-code article:last-child { border-bottom: 0; }
  .feature-code b { font-size: 39px; }

  .program-intro { padding-bottom: 50px; }
  .program-grid { grid-template-columns: 1fr; padding: 0 18px; }
  .program-card { min-height: 420px; border: 2px solid var(--ink); border-bottom: 0; }
  .program-card:last-child { border-bottom: 2px solid var(--ink); }
  .program-type { margin-top: 40px; }
  .program-card h3 { font-size: 55px; }

  .trial { grid-template-columns: 1fr; }
  .trial-visual { min-height: 480px; border-right: 0; border-bottom: 2px solid var(--ink); }
  .trial-copy { padding: 86px 18px; }
  .trial h2 strong { font-size: 98px; }

  .price-heading, .schedule-head { grid-template-columns: 1fr; gap: 35px; }
  .price-table { grid-template-columns: 1fr; margin-top: 55px; }
  .price-table article { min-height: 320px; border-right: 0; border-bottom: 2px solid var(--ink); }
  .price-table article:last-child { border-bottom: 0; }
  .price-table strong { font-size: 48px; }
  .price-note { text-align: left; }

  .trainer { grid-template-columns: 1fr; }
  .trainer-copy { padding: 88px 18px; }
  .trainer h2 { font-size: 80px; }
  .trainer-visual { min-height: 590px; }
  .trainer-portrait { width: 92%; }

  .schedule-table { overflow-x: auto; margin-right: -18px; padding-right: 18px; }
  .schedule-row { min-width: 720px; }

  .access { grid-template-columns: 1fr; }
  .map-panel { min-height: 490px; border-right: 0; border-bottom: 2px solid var(--ink); }
  .studio-pin { width: 76px; height: 76px; font-size: 20px !important; }
  .access-copy { padding: 86px 18px; }

  .faq-layout { grid-template-columns: 1fr; gap: 55px; }
  .faq-list summary { grid-template-columns: 35px 1fr 24px; gap: 10px; }
  .faq-list p { padding-left: 45px; }

  .reserve { min-height: 620px; padding: 90px 18px; }
  .reserve h2 { font-size: 54px; }

  .site-footer { grid-template-columns: 1fr; align-items: start; padding: 50px 18px 78px; }
  .site-footer nav { justify-content: flex-start; }
  .footer-logo { font-size: 68px; }
  .mobile-trial { position: fixed; z-index: 45; left: 0; right: 0; bottom: 0; height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 18px; background: var(--signal); border-top: 2px solid var(--ink); font-size: 13px; font-weight: 900; text-decoration: none; }
}

@media (max-width: 430px) {
  .hero h1 b { font-size: 47vw; }
  .hero-message { font-size: 39px; }
  .program-card h3 { font-size: 49px; }
  .trainer h2 { font-size: 68px; }
  .access-copy dl div { grid-template-columns: 82px 1fr; gap: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Information-site refinements */
.trainer-name { line-height: 1.55; }
.price-table strong small { display: inline-block; }
@media (max-width: 430px) {
  .trainer h2 { font-size: 62px; }
  .reserve h2 { font-size: 46px; }
}
