/* 2026-10-25: restrained type scale and denser layouts across the store pages. */
:root { --content: 1040px; --header: 76px; }
body { font-size: 15px; }
html { scroll-padding-top: 92px; }
.section { padding: 68px 28px; }
.section-title { font-size: 26px; }
.section-title span { padding-bottom: 9px; }
.section-title span::after { width: 96px; }
.section-intro { font-size: 15px; margin: 24px 0 32px; }
.lead { font-size: 21px; line-height: 1.8; }
.header { height: 76px; padding: 0 max(28px, calc((100vw - 1180px) / 2)); }
.header .brand { flex-shrink: 0; width: 205px; height: 74px; padding-bottom: 7px; }
.header .brand-image { width: 205px; height: 115px; top: -23px; }
.header .brand > span { font-size: 13px; }
.desktop-nav { display: flex; align-items: center; gap: clamp(20px, 2.3vw, 34px); margin-left: 35px; }
.desktop-nav > a { font-size: 14px; white-space: nowrap; padding: 14px 0; border-bottom: 1px solid transparent; }
.desktop-nav > a:hover, .desktop-nav > a[aria-current="page"] { color: var(--orange); border-bottom-color: var(--orange); }
.desktop-nav .nav-reserve { min-height: 42px; border: 1px solid var(--orange); border-radius: 3px; background: var(--orange); padding: 9px 18px; font-size: 13px; }
.desktop-nav .nav-reserve:hover { background: #cf6610; }
.header .menu-toggle { display: none; }
.outline-button { min-height: 48px; width: 270px; border-width: 1px; border-radius: 4px; padding: 11px 36px; font-size: 14px; }
.outline-button > span { font-size: 25px; }
.home-hero { height: 480px; }
.hero-copy { top: auto; bottom: 82px; left: max(36px, calc((100vw - 1040px) / 2)); }
.hero-copy h1 { font-size: 39px; line-height: 1.3; }
.hero-copy p { font-size: 23px; margin-top: 18px; }
.hero-copy strong { font-size: 37px; margin-top: 9px; }
.hero-prices { display: grid; gap: 9px; margin-top: 18px; }
.hero-prices > div { display: flex; align-items: baseline; gap: 18px; }
.hero-prices dt { width: 104px; font: 400 14px/1.7 "Yu Gothic", sans-serif; }
.hero-prices dd { margin: 0; font-size: 15px; white-space: nowrap; }
.hero-copy .hero-prices strong { display: inline; margin: 0; font-size: 32px; font-weight: 500; }
.hero-prices dd > span { font-size: 18px; color: #ef7800; }
.hero-price-note { display: block; font: 400 11px/1.8 "Yu Gothic", sans-serif; margin-top: 12px; color: #eee5d7; }
.intro { padding-top: 64px; padding-bottom: 48px; }
.intro h2 { font-size: 29px; line-height: 1.7; }
.intro p { font-size: 15px; margin-top: 14px; }
.features { padding-top: 12px; padding-bottom: 72px; }
.feature-grid { max-width: 980px; gap: 28px; }
.feature-card { min-height: 260px; padding: 25px 24px 28px; box-shadow: 0 2px 0 #b96b2d; }
.feature-number { top: 18px; left: 16px; font-size: 16px; padding: 3px 5px; }
.feature-icon { width: 92px; height: 92px; margin: 0 auto 23px; }
.feature-card h3 { font-size: 17px; white-space: normal; }
.feature-card p { font-size: 14px; line-height: 1.9; margin-top: 10px; }
.photo-banner { max-width: 1100px; margin: 0 auto; height: 320px; }
.banner-content { padding: 50px 24px 35px; }
.banner-content p { font-size: 15px; line-height: 1.8; margin: 25px 0 28px; }
.home-price { padding-top: 68px; padding-bottom: 72px; }
.sample-plan { width: 380px; padding: 48px 50px 28px; margin: 64px auto 25px; }
.sample-plan h3, .plan-card h3 { top: -22px; font-size: 17px; min-width: 164px; border-radius: 6px; padding: 11px 20px; }
.price-amount { font-size: 18px; }
.price-amount strong { font-size: 29px; }
.sample-plan .check-list { font-size: 14px; line-height: 1.9; margin-top: 18px; }
.plan-note { font-size: 14px; margin-bottom: 28px; }
.home-trial { padding-top: 64px; padding-bottom: 60px; }
.step-grid { max-width: 1040px; gap: 24px; margin: 45px auto 32px; }
.step-card { padding: 20px 20px 22px; box-shadow: 0 2px 0 #b96b2d; }
.step-icon { height: 64px; width: 78px; margin-bottom: 14px; }
.step-number { font-size: 12px; }
.step-card h3 { font-size: 17px; }
.step-card > p:last-child { font-size: 13px; line-height: 1.8; margin-top: 10px; }
.step-card:not(:last-child)::after { font-size: 26px; right: -20px; }
.home-faq { padding-top: 22px; padding-bottom: 55px; }
.faq-list { max-width: 720px; margin-top: 30px; }
.faq-list details { font-size: 15px; }
.faq-list summary { min-height: 64px; padding: 17px 48px 17px 15px; font-size: 15px; }
.faq-list summary::after { font-size: 21px; }
.faq-list details > p { font-size: 14px; line-height: 1.9; }
.access { padding-top: 25px; padding-bottom: 78px; }
.access-inner { max-width: 720px; margin-top: 32px; }
.map-panel { aspect-ratio: 720 / 300; }
.map-panel { position: relative; display: block; overflow: hidden; }
.map-panel iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map-open { margin-top: 10px; text-align: right; font-size: 12px; }
.map-open a { text-decoration: underline; text-underline-offset: 3px; }
.access-grid { margin-top: 32px; gap: 30px 35px; }
.access-grid dd { font-size: 13px; }
.footer { padding: 35px 25px 24px; }
.brand-footer { width: 245px; height: 94px; }
.brand-footer .brand-image { width: 245px; height: 138px; top: -28px; }
.brand-footer > span { font-size: 17px; }
.footer-nav { font-size: 14px; max-width: 600px; gap: 28px 35px; margin: 30px auto 32px; }
.social-title { font-size: 14px; margin-bottom: 25px; }
.socials { gap: 26px; }
.socials > a, .socials > span { width: 44px; height: 44px; padding: 8px; }
.socials img { max-height: 28px; }
.footer-legal { margin: 30px 0 20px; font-size: 11px; }
.footer small { font-size: 11px; }
.page-hero { height: 260px; }
.page-hero h1 { font-size: 28px; min-width: 340px; }
.facility-body { padding: 55px 28px 85px; }
.icon-strip { margin: 55px auto 65px; max-width: 780px; }
.icon-strip img { width: 75px; height: 78px; margin-bottom: 24px; }
.icon-strip li:not(:last-child)::after { height: 78px; }
.icon-strip span { font-size: 16px; }
.ruled-title { font-size: 25px; gap: 24px; margin: 40px auto 50px; }
.ruled-title::before, .ruled-title::after { width: 65px; }
.facility-grid { gap: 30px; }
.equipment-card { padding: 24px 22px; }
.equipment-card h3 { font-size: 17px; margin-bottom: 22px; }
.equipment-card p { font-size: 14px; line-height: 1.9; margin-top: 8px; }
.price-body { padding-top: 45px; padding-bottom: 65px; }
.admission { width: 410px; padding: 25px; margin: 45px auto 30px; gap: 28px; }
.admission > img { width: 66px; height: 66px; }
.admission h3 { font-size: 21px; }
.admission strong { font-size: 34px; }
.price-body .ruled-title { margin: 30px auto 45px; }
.plan-group-title { font-size: 21px; margin-bottom: 50px; }
.plan-grid { max-width: 860px; gap: 40px; }
.plan-card { min-height: 405px; padding: 48px 55px 30px; }
.person-disc { width: 66px; height: 66px; padding: 16px; margin-bottom: 23px; }
.plan-card .price-amount strong { font-size: 31px; }
.plan-card .price-amount small { font-size: 14px; }
.plan-badge { font-size: 14px; padding: 10px 5px; border-radius: 6px; margin: 24px -10px; }
.plan-card .check-list { font-size: 14px; }
.weekday-note { width: min(100%, 860px); max-width: 100%; font-size: 14px; padding-left: 0; margin: 22px auto 55px; }
.price-body .plan-grid + .plan-group-title { margin-top: 55px; }
.price-notes { font-size: 14px; max-width: 450px; margin-top: 55px; }
.lesson-intro { padding: 50px 28px 40px; }
.lesson-intro h2 { font-size: 30px; }
.lesson-intro p { font-size: 21px; line-height: 1.8; margin-top: 30px; }
.lesson-group { padding: 30px 28px 55px; }
.lesson-group h2, .lesson-features h2, .coaches h2, .schedule h2 { font-size: 26px; }
.eyebrow { font-size: 12px; margin-bottom: 10px; }
.lesson-group-image { width: 600px; height: 360px; margin: 25px auto; }
.lesson-group > p:not(.eyebrow) { font-size: 16px; line-height: 1.8; margin: 25px auto 32px; }
.lesson-features { padding: 15px 28px 25px; }
.lesson-features h3 { font-size: 23px; margin: 30px 0 18px; }
.lesson-features > p:not(.eyebrow) { font-size: 15px; line-height: 2; }
.lesson-features .icon-strip { margin: 45px auto 25px; }
.lesson-features .icon-strip span { font-size: 15px; }
.coaches { padding-top: 20px; padding-bottom: 45px; }
.coach-card { padding: 35px; margin-top: 40px; grid-template-columns: 220px 1fr; gap: 32px; }
.coach-card > img { height: 260px; }
.coach-card h3 { font-size: 26px; }
.coach-card h3 span { font-size: 14px; }
.coach-card p, .coach-card ul { font-size: 14px; line-height: 1.5; margin-top: 22px; }
.schedule { padding-top: 15px; padding-bottom: 75px; }
.schedule-grid { max-width: 820px; gap: 75px; padding: 40px 60px 45px; margin: 40px auto 35px; }
.schedule-grid h3 { font-size: 23px; margin-bottom: 28px; }
.schedule thead th { font-size: 15px; padding-bottom: 14px; }
.schedule tbody th, .schedule td { font-size: 19px; }
.schedule > p:last-child { font-size: 17px; }
.trial-options { padding: 45px 28px 60px; }
.trial-options > h2:first-child { font-size: 28px; }
.trial-options .lead { font-size: 19px; margin: 25px 0 40px; }
.trial-options .ruled-title { font-size: 23px; margin-bottom: 40px; }
.trial-grid { max-width: 860px; gap: 40px; margin-bottom: 35px; }
.trial-card { padding: 35px 48px 25px; }
.trial-card h3 { font-size: 24px; }
.trial-price { font-size: 48px; margin: 20px; }
.trial-price small { font-size: 22px; }
.trial-card .check-list { font-size: 14px; }
.trial-card > p:last-of-type { font-size: 16px; margin-top: 15px; }
.trial-card > small { font-size: 12px; }
.trial-flow .ruled-title { font-size: 23px; margin-bottom: 50px; }
.trial-flow .step-icon { margin-bottom: 22px; }
.trial-flow .step-card h3 { margin-bottom: 15px; }
.trial-rentals { padding: 70px 28px; }
.trial-rentals .ruled-title { font-size: 23px; margin: 0 auto 42px; }
.trial-rentals .icon-strip img { width: 88px; height: 88px; margin-bottom: 28px; padding: 16px; }
.trial-faq .ruled-title { font-size: 23px; margin-bottom: 45px; }
.trial-faq .faq-list { gap: 25px 30px; }
.trial-faq summary { font-size: 15px; min-height: 64px; }
.legal-title { font-size: 28px; margin-top: 75px; margin-bottom: 65px; }
.legal-body { font-size: 15px; line-height: 1.7; margin-bottom: 85px; }
.legal-body h2, .commerce-body h2 { font-size: 15px; }
.legal-body p, .legal-body li { line-height: 1.7; }
.legal-body section { margin: 48px 0; }
.commerce-body section { margin: 0; }
@media (max-width: 960px) {
  .desktop-nav { display: none; }
  .header .menu-toggle { display: flex; }
  .menu-toggle { width: 52px; height: 48px; gap: 14px; padding: 7px; }
  .menu-toggle span { width: 36px; height: 2px; }
}
@media (max-width: 600px) {
  :root { --header: 64px; }
  html { scroll-padding-top: 78px; }
  body { font-size: 14px; }
  .section { padding: 45px 22px; }
  .section-title { font-size: 21px; }
  .section-intro { font-size: 13px; margin: 18px 0 28px; }
  .header { height: 64px; padding: 0 20px; }
  .header .brand { width: 155px; height: 62px; padding-bottom: 5px; }
  .header .brand-image { width: 155px; height: 87px; top: -17px; }
  .header .brand > span { font-size: 12px; }
  .home-hero { height: 405px; padding-bottom: 0; }
  .hero-copy { left: 24px; bottom: 47px; }
  .hero-copy h1 { font-size: 28px; line-height: 1.25; }
  .hero-copy p { font-size: 18px; margin-top: 14px; }
  .hero-copy strong { font-size: 29px; margin-top: 9px; letter-spacing: 0; }
  .intro { padding: 42px 25px 35px; }
  .intro h2 { font-size: 21px; line-height: 1.8; }
  .intro p { font-size: 13px; margin-top: 12px; }
  .features { padding-top: 5px; padding-bottom: 45px; }
  .feature-grid { gap: 14px; }
  .feature-card { min-height: 0; padding: 22px 20px 22px 98px; }
  .feature-icon { position: absolute; left: 22px; top: 50%; transform: translateY(-50%); width: 55px; height: 62px; margin: 0; }
  .feature-number { font-size: 11px; top: 8px; left: 9px; padding: 1px 4px; }
  .feature-card h3 { text-align: left; font-size: 15px; line-height: 1.6; white-space: normal; }
  .feature-card p { font-size: 12px; line-height: 1.8; margin-top: 5px; }
  .photo-banner { height: 295px; }
  .banner-content { padding: 37px 23px 28px; }
  .banner-content .section-title { font-size: 21px; }
  .banner-content p { font-size: 13px; margin: 23px 0 24px; line-height: 1.8; }
  .outline-button { width: 240px; min-height: 46px; padding: 10px 30px; font-size: 13px; }
  .home-price { padding-top: 45px; padding-bottom: 50px; }
  .home-price .section-intro { font-size: 13px; max-width: 290px; margin: 18px auto 48px; text-align: center; line-height: 1.9; }
  .sample-plan { width: 290px; padding: 42px 35px 24px; margin: 50px auto 20px; }
  .sample-plan h3 { min-width: 155px; font-size: 17px; padding: 9px 18px; top: -21px; }
  .price-amount strong { font-size: 28px; }
  .sample-plan .check-list { font-size: 12px; margin-top: 14px; }
  .plan-note { font-size: 12px; line-height: 1.9; text-align: center; margin-bottom: 25px; }
  .home-trial { padding-top: 45px; padding-bottom: 40px; }
  .home-trial .section-title { font-size: 20px; }
  .home-trial .step-grid { max-width: 340px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 32px auto 28px; }
  .home-trial .step-card { height: auto; min-height: 202px; padding: 17px 14px; }
  .home-trial .step-icon { position: static; width: 60px; height: 52px; margin: 0 auto 10px; transform: none; }
  .home-trial .step-number { font-size: 11px; }
  .home-trial .step-card h3 { font-size: 15px; }
  .home-trial .step-card > p:last-child { font-size: 12px; line-height: 1.8; margin-top: 8px; }
  .home-trial .step-card:not(:last-child)::after { display: none; }
  .home-faq { padding-top: 10px; padding-bottom: 36px; }
  .home-faq .faq-list summary, .faq-list summary { min-height: 62px; padding: 15px 36px 15px 5px; font-size: 13px; }
  .faq-list details > p { font-size: 12px; }
  .access { padding-top: 20px; padding-bottom: 50px; }
  .access-inner { margin-top: 28px; }
  .map-panel { max-width: 100%; aspect-ratio: 320 / 190; }
  .access-grid { margin: 25px 0 0; gap: 20px; }
  .access-grid dd { font-size: 12px; line-height: 1.6; }
  .footer { padding: 26px 24px 20px; }
  .brand-footer { width: 215px; height: 85px; }
  .brand-footer .brand-image { width: 215px; height: 121px; top: -24px; }
  .brand-footer > span { font-size: 15px; }
  .footer-nav { font-size: 12px; gap: 23px 16px; margin: 24px auto 28px; }
  .social-title { font-size: 12px; margin-bottom: 22px; }
  .socials { gap: 21px; }
  .socials > a, .socials > span { width: 37px; height: 37px; padding: 7px; }
  .footer-legal { font-size: 10px; gap: 10px; margin: 25px 0 18px; }
  .footer small { font-size: 10px; }
  .page-hero { height: 175px; padding: 0 25px; }
  .page-hero h1 { font-size: 23px; min-width: 0; max-width: 290px; }
  .lead { font-size: 17px; }
  .facility-body { padding: 35px 22px 50px; }
  .facility-body .lead { font-size: 13px; }
  .facility-body .icon-strip, .lesson-features .icon-strip { margin: 35px auto 40px; }
  .facility-body .icon-strip img, .lesson-features .icon-strip img { width: 46px; height: 50px; margin-bottom: 15px; }
  .facility-body .icon-strip span, .lesson-features .icon-strip span { font-size: 11px; }
  .facility-body .icon-strip li:not(:last-child)::after, .lesson-features .icon-strip li:not(:last-child)::after { height: 50px; }
  .facility-body .ruled-title { margin: 35px auto 30px; font-size: 14px; }
  .ruled-title { font-size: 20px; gap: 13px; margin: 30px auto; }
  .ruled-title::before, .ruled-title::after { width: 30px; }
  .facility-grid { gap: 22px; }
  .equipment-card, .equipment-card:first-child { min-height: 0; padding: 20px; }
  .equipment-card h3 { font-size: 16px; margin-bottom: 18px; }
  .equipment-card p { font-size: 13px; line-height: 1.6; margin-top: 12px; }
  .price-body { padding: 35px 22px 50px; }
  .price-body > .lead { font-size: 17px; }
  .admission { width: 300px; padding: 22px; gap: 22px; margin-top: 32px; }
  .admission > img { width: 50px; height: 50px; }
  .admission h3 { font-size: 18px; }
  .admission strong { font-size: 29px; }
  .admission small { font-size: 11px; }
  .plan-group-title { font-size: 17px; margin-bottom: 42px; }
  .plan-grid { gap: 48px; max-width: 330px; }
  .plan-card { min-height: 350px; padding: 42px 35px 25px; }
  .plan-card h3 { font-size: 16px; min-width: 175px; }
  .person-disc { width: 56px; height: 56px; padding: 13px; margin-bottom: 20px; }
  .plan-card .price-amount strong { font-size: 28px; }
  .plan-card .price-amount small { font-size: 12px; }
  .plan-badge { font-size: 12px; margin: 18px 0; padding: 9px 4px; }
  .plan-card .check-list { font-size: 12px; }
  .weekday-note { font-size: 12px; margin: 20px auto 45px; }
  .price-notes { font-size: 12px; margin-top: 35px; }
  .lesson-intro { padding: 35px 22px 30px; }
  .lesson-intro h2 { font-size: 20px; line-height: 1.8; }
  .lesson-intro p { font-size: 14px; line-height: 1.8; margin-top: 18px; }
  .lesson-group, .lesson-features, .coaches { padding: 25px 22px 35px; }
  .lesson-group h2, .lesson-features h2, .coaches h2, .schedule h2 { font-size: 22px; }
  .lesson-group-image { width: 100%; height: auto; margin: 20px auto; }
  .lesson-group > p:not(.eyebrow) { font-size: 13px; margin: 20px auto 25px; }
  .lesson-features h3 { font-size: 18px; line-height: 1.7; margin: 25px 0 15px; }
  .lesson-features > p:not(.eyebrow) { font-size: 13px; line-height: 1.8; }
  .coach-card { display: flex; padding: 25px; gap: 18px; margin-top: 30px; }
  .coach-card > img { width: 170px; height: 180px; }
  .coach-card h3 { font-size: 23px; white-space: normal; }
  .coach-card h3 span { font-size: 12px; }
  .coach-card p, .coach-card ul { font-size: 12px; margin-top: 17px; line-height: 1.7; }
  .schedule { padding: 15px 22px 45px; }
  .schedule-grid { padding: 0; gap: 30px; margin: 30px auto; }
  .schedule-grid > div { padding: 25px; }
  .schedule-grid h3 { font-size: 19px; margin-bottom: 22px; }
  .schedule td, .schedule tbody th { font-size: 15px; }
  .schedule > p:last-child { font-size: 13px; }
  .trial-options { padding: 35px 22px 45px; }
  .trial-options > h2:first-child { font-size: 23px; }
  .trial-options .lead { font-size: 15px; margin: 20px auto 30px; }
  .trial-options .ruled-title { font-size: 20px; margin-bottom: 30px; }
  .trial-grid { gap: 22px; margin-bottom: 30px; }
  .trial-card { padding: 26px 30px 23px; }
  .trial-card h3 { font-size: 22px; }
  .trial-price { font-size: 42px; margin: 15px; }
  .trial-price small { font-size: 20px; }
  .trial-card .check-list { font-size: 13px; }
  .trial-card > p:last-of-type { font-size: 15px; }
  .trial-card > small { font-size: 11px; }
  .trial-flow .ruled-title { font-size: 21px; margin-bottom: 30px; }
  .trial-flow .step-grid { gap: 22px; }
  .trial-flow .step-card { min-height: 110px; }
  .trial-flow .step-icon { width: 65px; height: 65px; }
  .trial-rentals { padding: 45px 22px; }
  .trial-rentals .ruled-title { font-size: 20px; margin-bottom: 30px; }
  .trial-rentals .icon-strip img { width: 65px; height: 65px; margin-bottom: 16px; padding: 12px; }
  .trial-rentals .icon-strip span { font-size: 11px; }
  .trial-faq .ruled-title { font-size: 20px; margin-bottom: 30px; }
  .trial-faq summary { font-size: 13px; min-height: 58px; }
  .legal-title { font-size: 22px; max-width: calc(100% - 48px); margin: 45px 24px 35px; }
  .legal-body { padding: 0 24px; font-size: 13px; margin-bottom: 55px; }
  .legal-body h2, .commerce-body h2 { font-size: 13px; }
  .legal-body section { margin: 30px 0; }
  .commerce-body section { margin: 0; }
}
