/* FITNESSCORE — shared visual system. Content and DOM order belong to the mirror. */
:root {
  --ink:#133b4b;
  --muted:#516d78;
  --accent:#133b4b;
  --accent-hover:#0b2935;
  --line:#dce3e7;
  --soft:#f4f7f9;
  --paper:#fff;
  --radius:10px;
  --wp--style--global--content-size:100%;
  --wp--style--global--wide-size:100%
}

*,*::before,*::after {
  box-sizing:border-box
}

html {
  font-size:16px;
  scroll-padding-top:24px;
  -webkit-text-size-adjust:100%
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  font-size:16px;
  line-height:1.95;
  overflow-wrap:anywhere
}

a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:.2em;
  transition:color .15s,background .15s,border-color .15s
}

a:hover {
  color:var(--accent-hover)
}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid #3893be;
  outline-offset:4px
}

img {
  max-width:100%;
  height:auto;
  vertical-align:middle
}

figure {
  margin:0 0 24px
}

figcaption {
  margin-top:10px;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.7;
  text-align:center
}

iframe,video {
  max-width:100%
}

iframe[src*="maps"] {
  display:block;
  width:100%;
  height:360px;
  border:0;
  border-radius:var(--radius);
  margin:24px 0
}

button,input,textarea,select {
  font:inherit;
  color:inherit
}

button,select,input[type=submit],summary {
  cursor:pointer
}

input,textarea,select {
  max-width:100%;
  border:1px solid var(--line);
  border-radius:6px;
  padding:10px 12px;
  background:#fff
}

button,input[type=submit] {
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--soft);
  padding:10px 18px
}

p {
  margin:0 0 1.5em
}

ul,ol {
  padding-left:1.6em;
  margin:0 0 1.6em
}

li {
  margin:.3em 0
}

li>ul,li>ol {
  margin:.5em 0
}

h1,h2,h3,h4,h5,h6 {
  color:var(--ink);
  line-height:1.6;
  letter-spacing:.02em;
  overflow-wrap:anywhere
}

h1 {
  font-size:clamp(1.6rem,2.6vw,2.2rem);
  margin:0 0 28px
}

h2 {
  font-size:1.5rem;
  margin:64px 0 28px;
  padding:0 0 16px;
  border-bottom:2px solid var(--ink)
}

h3 {
  font-size:1.2rem;
  margin:40px 0 20px;
  padding:0 0 0 14px;
  border-left:3px solid var(--accent)
}

h4 {
  font-size:1.05rem;
  margin:28px 0 14px
}

h5,h6 {
  font-size:1rem
}

hr {
  border:0;
  border-top:1px solid var(--line);
  margin:40px 0
}

blockquote {
  margin:24px 0;
  padding:24px;
  background:var(--soft);
  border-left:3px solid var(--line);
  color:var(--muted)
}

blockquote>:last-child {
  margin-bottom:0
}

code,pre {
  background:var(--soft);
  border-radius:4px
}

pre {
  padding:20px;
  overflow:auto
}

strong,b {
  font-weight:700
}

.wrap {
  width:min(1160px,calc(100% - 64px));
  margin-inline:auto
}

.header-container {
  border-bottom:1px solid var(--line);
  background:#fff
}

.header-in {
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:100px
}

.logo {
  margin:0;
  padding:0;
  line-height:1
}

.logo a {
  display:inline-block
}

.header-site-logo-image {
  width:210px;
  height:auto
}

.tagline:empty,#navi-in:empty {
  display:none
}

.content {
  margin:40px 0 64px
}

.content-in {
  display:grid;
  grid-template-columns:minmax(0,1fr) 264px;
  gap:48px;
  align-items:start
}

.main,.sidebar {
  min-width:0;
  margin:0;
  padding:0
}

.no-sidebar .content-in,.column1 .content-in,.column-wide .content-in {
  display:block
}

.no-sidebar .main,.column1 .main {
  width:100%
}

.sidebar {
  font-size:.86rem
}

.article-header {
  margin-bottom:32px
}

.entry-title,.archive-title {
  margin-top:0
}

.entry-title:empty {
  display:none
}

.entry-content {
  min-width:0
}

.date-tags {
  display:flex;
  justify-content:flex-end;
  gap:16px;
  color:var(--muted);
  font-size:.75rem
}

.no-post-date .article-header .post-date,.no-post-update .article-header .post-update,.no-post-author .author-info {
  display:none
}

.article-footer {
  margin-top:40px
}

.home .article-header {
  margin:0
}

.home .entry-content>.full-width-image {
  margin:0 0 48px
}

.full-width-image img {
  display:block;
  width:100%;
  border-radius:var(--radius)
}

.home .content {
  margin-top:32px
}

.home h2 {
  margin-top:64px
}

.home .full-width-image+h2 {
  margin-top:0
}

.eye-catch img {
  display:block;
  width:100%;
  border-radius:var(--radius)
}

/* Region directory: original region and prefecture order. */
[id="japan-map"] {
  padding:8px 24px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin:24px 0 40px;
  background:#fff
}

[id="japan-map"]>.clearfix {
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:24px;
  align-items:start;
  padding:20px 0;
  border-bottom:1px solid var(--line)
}

[id="japan-map"]>.clearfix:last-child {
  border-bottom:0
}

[id="japan-map"] .area-title {
  margin:7px 0 0;
  font-size:.9rem;
  font-weight:700
}

[id="japan-map"] .area {
  display:flex;
  flex-wrap:wrap;
  gap:8px
}

[id="japan-map"] .area a {
  min-width:66px;
  padding:7px 13px;
  border:1px solid var(--line);
  border-radius:5px;
  text-decoration:none;
  text-align:center;
  font-size:.85rem;
  color:var(--ink);
  background:var(--soft)
}

[id="japan-map"] .area a:hover {
  background:var(--accent);
  color:#fff;
  border-color:var(--accent)
}

/* Cards keep every title, address and access note visible. */
.l-wrapper_01 {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  margin:24px 0 32px
}

.card_01 {
  min-width:0;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:#fff
}

.card_01>a {
  display:block;
  height:100%;
  color:inherit;
  text-decoration:none
}

.card_01:hover {
  border-color:var(--accent)
}

.card__thumbnail_01 {
  margin:0
}

.card__image_01 {
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover
}

.card__body_01 {
  padding:18px
}

.card__title_01 {
  font-size:1rem;
  line-height:1.7;
  font-weight:700;
  margin:0 0 12px
}

.card__address_01,.card__access_01,.card__text_01,.card__text2_01 {
  font-size:.8rem;
  color:var(--muted);
  line-height:1.8;
  margin:0 0 8px
}

.new-store-list {
  list-style:none;
  padding:0;
  margin:24px 0 48px;
  font-size:.88rem
}

.new-store-list li {
  padding:13px 0;
  border-bottom:1px solid var(--line);
  margin:0
}

.new-store-list a {
  text-decoration:none
}

.new-store-list .post-date {
  display:inline-block;
  color:var(--muted);
  margin-left:8px
}

.entry-card,.related-entry-card {
  min-width:0
}

.list>.entry-card,.studios .entry-card {
  padding:28px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin:32px 0 48px
}

.entry-card-title,.related-entry-card-title {
  font-size:1.25rem;
  line-height:1.65;
  margin:0 0 18px;
  border:0;
  padding:0
}

.entry-card-thumb {
  margin:0 0 24px
}

.entry-card-thumb img {
  border-radius:6px;
  max-height:340px;
  object-fit:contain
}

.entry-card-content,.related-entry-card-content {
  min-width:0
}

.a-wrap {
  text-decoration:none;
  color:inherit
}

.widget-title {
  font-size:.95rem;
  border:0;
  border-bottom:2px solid var(--ink);
  padding:0 0 12px;
  margin:0 0 20px
}

.widget {
  margin-bottom:40px
}

.widget-entry-card-link {
  display:block;
  padding:16px 0;
  border-bottom:1px solid var(--line)
}

.widget-entry-card {
  display:grid;
  grid-template-columns:84px minmax(0,1fr);
  gap:12px
}

.widget-entry-card-thumb {
  margin:0
}

.widget-entry-card-thumb img {
  width:84px;
  aspect-ratio:16/10;
  object-fit:cover;
  border-radius:4px
}

.widget-entry-card-title {
  font-size:.8rem;
  line-height:1.65;
  font-weight:600
}

.widget-entry-card-meta,.card-meta,.blogcard-footer {
  font-size:.72rem;
  color:var(--muted)
}

.related-entry-card-link {
  display:block;
  margin:24px 0;
  padding:20px;
  border:1px solid var(--line);
  border-radius:var(--radius)
}

.related-entry-card-thumb {
  margin-bottom:14px
}

.blogcard-wrap {
  display:block;
  margin:24px 0;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  color:inherit;
  text-decoration:none
}

.blogcard {
  display:flow-root
}

.blogcard-thumbnail {
  float:right;
  width:28%;
  margin:0 0 12px 20px
}

.blogcard-title {
  font-weight:700
}

.blogcard-snippet {
  font-size:.85rem;
  color:var(--muted)
}

.blogcard-site {
  display:flex;
  gap:8px;
  align-items:center
}

.blogcard-favicon img {
  width:16px
}

.blogcard-label {
  font-size:.8rem
}

.internal-blogcard-footer {
  margin-top:12px
}

/* Tables: fixed wrapping avoids page-wide overflow on phones. */
table {
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  margin:24px 0 12px;
  font-size:.9rem;
  line-height:1.8
}

th,td {
  padding:16px;
  border:1px solid var(--line);
  text-align:left;
  vertical-align:top;
  overflow-wrap:anywhere
}

th {
  background:var(--soft);
  font-weight:600
}

thead th {
  background:var(--ink);
  color:#fff
}

table.studio_info th,table.studio_price th {
  width:28%
}

td ul {
  margin:0;
  padding-left:1.3em
}

caption {
  text-align:left;
  font-weight:700;
  margin-bottom:12px
}

.scroll,.wp-block-table {
  max-width:100%;
  overflow-x:auto;
  margin:24px 0
}

.scroll table,.wp-block-table table {
  margin:0
}

.comparison-scroll table {
  font-size:.86rem
}

.gym-comparison .item-col {
  width:22%
}

.gym-comparison .gym-col {
  width:39%
}

.annual-cost .plan-col {
  width:68%
}

.annual-cost .total-col {
  width:32%
}

.annual-cost td {
  font-weight:700;
  text-align:right;
  font-variant-numeric:tabular-nums
}

.plan-detail {
  display:block;
  font-size:.85em;
  color:var(--muted)
}

/* Buttons and navigation. */
.link-button {
  text-align:center;
  margin:28px 0
}

.link-button p {
  font-size:.85rem;
  font-weight:600;
  margin:0 0 10px
}

.link-button>a,.button-block .btn,.wp-block-button__link,.btn,.more__btn {
  display:inline-block;
  max-width:100%;
  padding:14px 24px;
  border:1px solid var(--accent);
  border-radius:6px;
  background:var(--accent)!important;
  color:#fff!important;
  font-size:.95rem;
  font-weight:700;
  text-align:center;
  line-height:1.7;
  text-decoration:none;
  box-shadow:none
}

.link-button>a {
  width:min(100%,480px)
}

.link-button>a.show-link,.link-button>a.on-site-link {
  background:#fff!important;
  color:var(--accent)!important
}

.link-button>a:hover,.btn:hover,.more__btn:hover {
  background:var(--accent-hover)!important;
  color:#fff!important
}

.button-block {
  text-align:center;
  margin:28px 0
}

.breadcrumb {
  display:flex;
  flex-wrap:wrap;
  gap:4px 10px;
  font-size:.75rem;
  line-height:1.8;
  color:var(--muted);
  margin:0 0 24px
}

.breadcrumb>div:not(:last-child)::after {
  content:'›';
  margin-left:10px;
  color:#8b9ea6
}

.breadcrumb a {
  text-decoration:none
}

.breadcrumb .fa {
  display:none
}

.tag_area01 ul {
  display:flex;
  flex-wrap:wrap;
  list-style:none;
  gap:8px;
  margin:16px 0 24px;
  padding:0
}

.tag_area01 li {
  margin:0
}

.tag_area01 a,.tag-link,.cat-link {
  display:inline-block;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--soft);
  color:var(--accent);
  padding:4px 10px;
  font-size:.75rem;
  text-decoration:none
}

.pagination,.page-numbers {
  display:flex;
  flex-wrap:wrap;
  gap:8px
}

.pagination a,.pagination span.current {
  padding:8px 16px;
  border:1px solid var(--line);
  border-radius:4px
}

.pagination .current {
  background:var(--accent);
  color:#fff
}

.tab-links {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  list-style:none;
  padding:0;
  margin:24px 0 0!important
}

.tab-links li {
  margin:0
}

.tab-links a {
  display:block;
  padding:8px 14px;
  border:1px solid var(--line);
  border-radius:5px;
  text-decoration:none;
  font-size:.83rem;
  background:var(--soft);
  color:var(--ink)
}

.tab-links .active a {
  background:var(--accent);
  border-color:var(--accent);
  color:#fff
}

.tab-content {
  padding-top:24px
}

.tab-content>.tab {
  display:none
}

.tab-content>.tab.active {
  display:block
}

.tab-content-slide,.slide-track {
  display:flex;
  overflow-x:auto;
  gap:20px;
  padding-bottom:16px;
  scroll-snap-type:x proximity
}

.tab-slide {
  flex:0 0 min(85vw,540px);
  min-width:0;
  white-space:normal;
  padding:20px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  scroll-snap-align:start
}

.slide {
  flex:0 0 220px;
  min-width:0
}

.slide img {
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:6px
}

.slide p,.caption {
  font-size:.85rem
}

.rank {
  font-weight:700;
  color:var(--accent)
}

/* Article blocks and emphasis. */
.has-background:not(.btn):not(.wp-block-button__link) {
  background-color:var(--soft)!important
}

.has-text-color {
  color:var(--ink)!important
}

.has-small-font-size {
  font-size:.85em
}

.has-large-font-size {
  font-size:1.5em
}

.has-x-large-font-size {
  font-size:2em
}

.has-drop-cap:first-letter {
  float:left;
  font-size:3em;
  line-height:1;
  margin-right:.15em
}

.toc,.remake-toc {
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px;
  background:var(--soft);
  margin:32px 0;
  font-size:.9rem
}

.toc-title {
  display:block;
  font-weight:700;
  margin:0 0 12px;
  cursor:pointer
}

.toc a {
  text-decoration:none
}

.toc ol,.toc ul {
  margin-bottom:0
}

.toc-checkbox {
  position:absolute;
  opacity:0;
  pointer-events:none
}

.toc-checkbox:not(:checked)~.toc-content {
  display:none
}

.toc-checkbox:focus-visible+label {
  outline:3px solid var(--accent)
}

.toc-content {
  margin-top:12px
}

.toc-content li {
  margin:.5em 0
}

.pickup,.list_ironaka,.list_line {
  background:var(--soft);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px 24px 24px 44px;
  margin:24px 0
}

.pickup li::marker {
  color:var(--accent)
}

.blank-box,.common-icon-box,.tab-caption-box,.caption-box,.memo-box,.information-box,.success-box,.alert-box {
  border:1px solid var(--line)!important;
  border-radius:var(--radius);
  padding:24px;
  background:var(--soft)!important;
  margin:28px 0;
  color:var(--ink)!important
}

.box-label,.tab-caption-box-label {
  display:block;
  font-weight:700;
  margin-bottom:12px;
  background:transparent!important;
  color:var(--accent)!important
}

.box-content>:last-child,.block-box>p:last-child {
  margin-bottom:0
}

.speech-wrap {
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin:28px 0
}

.speech-person {
  width:64px;
  flex-shrink:0;
  text-align:center
}

.speech-icon {
  margin:0 0 6px
}

.speech-icon img {
  width:64px;
  height:64px;
  object-fit:cover;
  border-radius:50%
}

.speech-name {
  font-size:.7rem;
  line-height:1.5
}

.speech-balloon {
  min-width:0;
  flex:1;
  padding:20px;
  background:var(--soft);
  border:1px solid var(--line);
  border-radius:var(--radius)
}

.speech-balloon>:last-child {
  margin-bottom:0
}

.sbp-r {
  flex-direction:row-reverse
}

.bold-red,.bold-blue,.red,.blue {
  font-weight:700;
  color:var(--accent)!important
}

.marker,.marker-under,.marker-under-red,.marker-under-blue {
  background:linear-gradient(transparent 65%,#dfeaf0 65%)
}

.fz-12px {
  font-size:.75rem
}

.fz-14px {
  font-size:.875rem
}

.fz-16px {
  font-size:1rem
}

.fz-22px {
  font-size:1.375rem
}

.has-text-align-center {
  text-align:center
}

.has-text-align-right {
  text-align:right
}

.has-text-align-left {
  text-align:left
}

.wp-block-columns {
  display:flex;
  gap:24px;
  margin:24px 0
}

.wp-block-column {
  flex:1;
  min-width:0
}

.wp-block-gallery,.img-gallery {
  display:flex;
  flex-wrap:wrap;
  gap:16px
}

.wp-block-gallery figure,.img-gallery>* {
  flex:1;
  min-width:150px
}

.aligncenter {
  display:block;
  margin-inline:auto
}

.alignleft {
  float:left;
  margin:0 24px 16px 0
}

.alignright {
  float:right;
  margin:0 0 16px 24px
}

.wp-block-separator {
  border:0;
  border-top:1px solid var(--line)
}

.wp-block-search__inside-wrapper {
  display:flex;
  gap:8px
}

.wp-block-search__input {
  min-width:0;
  flex:1
}

.wp-block-search__button {
  flex-shrink:0
}

dl {
  margin:24px 0
}

dt {
  font-weight:700;
  margin-top:24px
}

dd {
  margin:12px 0 24px;
  padding-left:20px
}

.qaContainer dt {
  color:var(--accent)
}

.qaContainer dt::before {
  content:'Q. ';
  font-weight:700
}

.qaContainer dd::before {
  content:'A. ';
  font-weight:700
}

.more__content {
  max-height:200px;
  overflow:hidden
}

.more__content.open {
  max-height:none
}

.more__btn {
  margin:16px 0
}

/* Utility visibility matches the existing theme's content states. */
.display-none,.hidden,.screen-reader-text,.mobile-menu-buttons,.mobile-menu-buttons-sp,.mobile-menu-buttons-dt {
  display:none
}

.screen-reader-text:focus {
  display:block;
  position:fixed;
  top:8px;
  left:8px;
  background:#fff;
  padding:16px;
  z-index:99999
}

.no-sidebar .sidebar {
  display:none
}

.home .date-tags {
  display:none
}

.kk {
  position:absolute;
  top:8px;
  right:12px;
  line-height:1
}

.kk img {
  width:32px!important;
  height:auto!important
}

.footer {
  border-top:1px solid var(--line);
  background:var(--soft);
  padding:40px 0;
  color:var(--muted);
  font-size:.8rem
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:32px;
  align-items:center
}

.footer-site-logo-image {
  width:170px
}

.footer-bottom-content {
  min-width:0
}

.footer-navi ul {
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  list-style:none;
  padding:0;
  margin:0 0 16px
}

.footer a {
  text-decoration:none;
  color:inherit
}

.copyright {
  text-align:right;
  font-size:.72rem
}

.go-to-top {
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:20;
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px
}

.go-to-top-button {
  background:transparent;
  border:0;
  padding:8px 14px
}

.go-to-top-hide {
  opacity:0;
  pointer-events:none
}

.go-to-top-show {
  opacity:1;
  pointer-events:auto
}

.go-to-top a {
  display:block;
  padding:6px 14px;
  text-decoration:none
}

.floating-banner {
  position:fixed;
  bottom:12px;
  left:50%;
  transform:translateX(-50%);
  z-index:15;
  width:min(480px,calc(100% - 32px));
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:8px
}

.floating-banner img {
  display:block;
  max-height:110px;
  width:100%;
  object-fit:contain
}

.floating-banner p {
  margin:0;
  font-size:.75rem
}

.overlay-button,.overlay-chains-button {
  display:none
}

.close-btn,.open-btn {
  border:1px solid var(--line);
  border-radius:5px;
  background:#fff
}

.not-found {
  max-width:500px
}

.cf::after,.clearfix::after {
  content:'';
  display:table;
  clear:both
}

#mobile-toc-widget-wrap {
  display:none
}

@media(max-width:1000px) {
  .content-in {
    grid-template-columns:minmax(0,1fr) 220px;
    gap:28px
  }

  .wrap {
    width:calc(100% - 40px)
  }

  .l-wrapper_01 {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .list>.entry-card,.studios .entry-card {
    padding:20px
  }

}

@media(max-width:800px) {
  .content-in {
    display:block
  }

  .sidebar {
    margin-top:56px;
    padding-top:32px;
    border-top:1px solid var(--line)
  }

  .header-in {
    min-height:82px
  }

  .header-site-logo-image {
    width:190px
  }

  .content {
    margin-top:28px
  }

  .footer-bottom {
    display:block
  }

  .footer-bottom-content {
    margin-top:24px
  }

  .copyright {
    text-align:left
  }

  .wp-block-columns {
    flex-direction:column
  }

  .overlay-button,.overlay-chains-button {
    position:fixed;
    bottom:12px;
    left:16px;
    right:16px;
    z-index:15;
    background:#fff;
    padding:12px;
    border:1px solid var(--line);
    border-radius:8px;
    box-shadow:0 4px 20px #133b4b1a
  }

  .overlay-chains-button {
    display:block
  }

  .overlay-button .link-button,.overlay-chains-button .link-button {
    margin:0
  }

  .overlay-button .link-button p,.overlay-chains-button .link-button p,.overlay-button .link-button br,.overlay-chains-button .link-button br {
    display:none
  }

  .overlay-button .close-btn,.overlay-chains-button .close-btn {
    position:absolute;
    top:-20px;
    right:0
  }

  .floating-banner~.go-to-top {
    bottom:140px
  }

  body:has(.overlay-chains-button) .footer {
    padding-bottom:130px
  }

}

@media(max-width:540px) {
  body {
    font-size:15px;
    line-height:1.95
  }

  .wrap {
    width:calc(100% - 36px)
  }

  .content {
    margin-bottom:44px
  }

  .header-in {
    min-height:80px
  }

  .header-site-logo-image {
    width:182px
  }

  .home .content {
    margin-top:20px
  }

  .home .entry-content>.full-width-image {
    margin-bottom:32px
  }

  .full-width-image img {
    border-radius:7px
  }

  h1 {
    font-size:1.5rem;
    line-height:1.65
  }

  h2 {
    font-size:1.25rem;
    margin:44px 0 22px;
    padding-bottom:12px
  }

  h3 {
    font-size:1.08rem;
    margin:32px 0 18px
  }

  .home h2 {
    margin-top:44px
  }

  [id="japan-map"] {
    padding:0 16px;
    margin:20px 0 32px
  }

  [id="japan-map"]>.clearfix {
    display:block;
    padding:18px 0
  }

  [id="japan-map"] .area-title {
    margin:0 0 12px
  }

  [id="japan-map"] .area {
    gap:7px
  }

  [id="japan-map"] .area a {
    min-width:56px;
    padding:7px 10px;
    font-size:.8rem
  }

  .l-wrapper_01 {
    grid-template-columns:1fr;
    gap:16px
  }

  .card_01>a {
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    align-items:start
  }

  .card__image_01 {
    aspect-ratio:1;
    object-fit:cover
  }

  .card__body_01 {
    padding:12px
  }

  .card__title_01 {
    font-size:.9rem;
    margin-bottom:6px
  }

  .card__address_01,.card__access_01 {
    font-size:.75rem
  }

  .new-store-list {
    font-size:.82rem
  }

  .list>.entry-card,.studios .entry-card {
    padding:16px;
    margin:24px 0 36px
  }

  .entry-card-title {
    font-size:1.15rem
  }

  th,td {
    padding:11px 9px
  }

  table {
    font-size:.82rem
  }

  .comparison-scroll table {
    font-size:.78rem
  }

  .comparison-scroll th,.comparison-scroll td {
    padding:10px 7px
  }

  .annual-cost .plan-col {
    width:66%
  }

  .annual-cost .total-col {
    width:34%
  }

  .toc,.remake-toc,.blank-box,.common-icon-box,.tab-caption-box,.caption-box {
    padding:18px
  }

  .speech-person {
    width:48px
  }

  .speech-icon img {
    width:48px;
    height:48px
  }

  .speech-wrap {
    gap:12px
  }

  .speech-balloon {
    padding:16px
  }

  .pickup {
    padding:18px 18px 18px 36px
  }

  .tab-links a {
    padding:7px 10px;
    font-size:.78rem
  }

  .footer {
    padding-top:32px
  }

  iframe[src*="maps"] {
    height:280px
  }

  .alignleft,.alignright {
    float:none;
    margin:20px auto
  }

  .blogcard-wrap {
    padding:16px
  }

  .blogcard-thumbnail {
    width:30%;
    margin-left:12px
  }

}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important
  }

}

@media print {
  body {
    font-size:10pt
  }

  .wrap {
    width:100%
  }

  .content-in {
    display:block
  }

  .sidebar,.go-to-top,.floating-banner,.overlay-button,.overlay-chains-button {
    display:none!important
  }

  a {
    color:inherit
  }

  .tab-content>.tab {
    display:block
  }

  h2,h3 {
    break-after:avoid
  }

  img,table {
    break-inside:avoid
  }

}

/* Cocoon toggles visibility on body, rather than on the button itself. */
body:not(.go-to-top-visible) .go-to-top {
  opacity: 0;
  pointer-events: none;
}
.go-to-top-visible .go-to-top-hide {
  opacity: 1;
  pointer-events: auto;
}

/* Layout compatibility: the legacy DOM uses theme utilities as well as styles. */
#header-in { display:flex; align-items:center; justify-content:center; }
#content-in { display:grid; grid-template-columns:minmax(0,1fr) 264px; gap:48px; align-items:start; }
.no-sidebar #content-in, .column1 #content-in, .column-wide #content-in { display:block; }
#main, #sidebar { float:none; width:auto; min-width:0; margin:0; padding:0; border:0; background:transparent; }
#main { overflow:visible; }
#main .article { padding:0; }
#main h2 { color:var(--ink); background:transparent; border:0; border-bottom:2px solid var(--ink); border-radius:0; padding:0 0 16px; margin:64px 0 28px; font-size:1.5rem; line-height:1.6; }
#main h3 { color:var(--ink); background:transparent; border:0; border-left:3px solid var(--accent); border-radius:0; padding:0 0 0 14px; margin:40px 0 20px; font-size:1.2rem; line-height:1.6; }
#main .entry-card-title { margin:0 0 18px; border:0; padding:0; }
#main .entry-card-thumb { float:none; width:100%; margin:0 0 24px; }
#main .entry-card-content, #sidebar .widget-entry-card-content { margin:0; padding:0; }
#sidebar .widget-entry-card-thumb { float:none; width:84px; margin:0; }
.home #main .full-width-image { width:100%; margin:0 0 48px; }
.home #main .full-width-image+h2 { margin-top:0; }
#main .entry-title { background:transparent; border:0; padding:0; }
#main .entry-title:empty { display:none; }
@media(max-width:1000px){ #content-in { grid-template-columns:minmax(0,1fr) 220px; gap:28px; } }
@media(max-width:800px){ #content-in { display:block; } #sidebar { margin-top:56px; padding-top:32px; border-top:1px solid var(--line); } }
@media(max-width:540px){ #main h2 { font-size:1.25rem; margin:44px 0 22px; padding-bottom:12px; } #main h3 { font-size:1.08rem; margin:32px 0 18px; } .home #main .full-width-image { margin-bottom:32px; } }

/* The clearfix pseudo-element must not create a second row in the region grid. */
[id="japan-map"] > .clearfix::after { display:none; content:none; }
#header-in { min-height:100px; }
@media(max-width:800px){ #header-in { min-height:82px; } }
@media(max-width:540px){ #header-in { min-height:80px; } }
/* Neutralize theme font utility classes and compounded table-cell scaling. */
body.body { font-size:16px; }
#main table th, #main table td { font-size:inherit; }
#sidebar .widget-title { background:transparent; }
#main .common-icon-box { position:relative; padding-left:48px; }
#main .common-icon-box::before { position:absolute; top:18px; left:16px; color:var(--accent); }
#main .annual-cost { max-width:680px; margin-inline:auto; }
#main .annual-cost .plan-col { width:72%; }
#main .annual-cost .total-col { width:28%; }
@media(max-width:540px){
  body.body { font-size:15px; }
  #main .comparison-scroll table { font-size:14px; }
  #main .annual-cost .plan-col { width:70%; }
  #main .annual-cost .total-col { width:30%; }
}
/* Keep text embedded in the original thumbnails visible on narrow screens. */
.card__image_01, .widget-entry-card-thumb img, .slide img { object-fit:contain; }
@media(max-width:540px){ .card__image_01 { aspect-ratio:16/9; background:var(--soft); } }
/* Multi-brand comparison tables stay readable inside their existing scroll area. */
.scroll table:has(tr > :nth-child(5)) { min-width:960px; table-layout:auto; }
/* Five new-store cards stay in the same row; narrow screens scroll the row. */
#main .l-wrapper_01 { grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; align-items:stretch; }
#main .l-wrapper_01 .card_01 { width:auto; margin:0; }
#main .l-wrapper_01 .card_01 > a { display:block; }
#main .l-wrapper_01 .card__body_01 { padding:14px; }
#main .l-wrapper_01 .card__title_01 { font-size:.9rem; }
#main .l-wrapper_01 .card__address_01, #main .l-wrapper_01 .card__access_01 { font-size:.75rem; }
@media(max-width:1000px){
  #main .l-wrapper_01 { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:240px; overflow-x:auto; padding-bottom:12px; scroll-snap-type:x proximity; }
  #main .l-wrapper_01 .card_01 { scroll-snap-align:start; }
}
@media(max-width:540px){ #main .l-wrapper_01 { grid-auto-columns:280px; } }
/* Reset inherited blog-card floats, reserved image margins and the inner frame. */
#main .blogcard-wrap { display:block; width:100%; max-width:100%; margin:0; padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; color:var(--ink); box-shadow:none; }
#main .blogcard { display:grid; grid-template-columns:160px minmax(0,1fr); gap:20px; align-items:center; width:100%; min-height:0; height:auto; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
#main .blogcard-label, #main .internal-blogcard-footer, #main .blogcard::after, #main .blogcard-wrap::after { display:none; }
#main .blogcard-thumbnail { grid-column:1; grid-row:1; float:none; width:100%; height:auto; margin:0; padding:0; }
#main .blogcard-thumbnail img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; margin:0; border-radius:4px; }
#main .blogcard-content { grid-column:2; grid-row:1; width:auto; min-width:0; margin:0; padding:0; }
#main .blogcard-title { margin:0; padding:0; font-size:1rem; line-height:1.7; font-weight:700; }
#main .blogcard-snippet:empty { display:none; }
@media(max-width:540px){
  #main .blogcard-wrap { padding:14px; }
  #main .blogcard { grid-template-columns:100px minmax(0,1fr); gap:14px; }
  #main .blogcard-title { font-size:.9rem; }
}
#main .blogcard-content { min-height:0; align-self:center; }
#main .blogcard-title { display:block; max-height:none; overflow:visible; white-space:normal; }
/* Homepage KV uses the approved photograph without a logo overlay. */
.home #content { margin-top:0; }
.home #main .entry-content > .fitnesscore-hero { position:relative; display:block; width:100vw; max-width:none; margin:0 0 56px calc(50% - 50vw); padding:0; overflow:hidden; line-height:0; border-radius:0; isolation:isolate; }
.home #main .fitnesscore-hero .fitnesscore-hero-photo { display:block; width:100%; height:auto; aspect-ratio:2036/772; object-fit:cover; object-position:70% center; border-radius:0; margin:0; }
@media(max-width:540px){
  .home #main .entry-content > .fitnesscore-hero { margin-bottom:36px; }
  .home #main .fitnesscore-hero .fitnesscore-hero-photo { height:230px; aspect-ratio:auto; }
}
/* Replace conflicting theme floats in the footer with a predictable two-column layout. */
#footer .footer-bottom { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:32px; margin:0; padding:0; }
#footer .footer-bottom::after { display:none; }
#footer .footer-bottom-logo, #footer .footer-bottom-content, #footer .logo-footer { position:static; float:none; width:auto; max-width:none; margin:0; padding:0; }
#footer .footer-bottom-content { display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
#footer .footer-site-logo-image { display:block; width:180px; height:auto; max-height:none; margin:0; mix-blend-mode:multiply; }
#navi-footer { display:block; float:none; margin:0; padding:0; }
#navi-footer .menu-footer { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 24px; list-style:none; margin:0; padding:0; line-height:1.8; }
#navi-footer .menu-footer li { float:none; width:auto; margin:0; padding:0; border:0; }
#navi-footer .menu-footer a { display:block; padding:0; border:0; color:var(--muted); font-size:.82rem; }
#footer .copyright { clear:none; margin:0; padding:0; font-size:.75rem; line-height:1.8; text-align:right; }
@media(max-width:600px){
  #footer .footer-bottom { grid-template-columns:1fr; gap:24px; }
  #footer .footer-bottom-logo { justify-self:center; }
  #footer .footer-bottom-content { align-items:center; }
  #navi-footer .menu-footer { justify-content:center; }
  #footer .copyright { text-align:center; }
}

/* Keep the hero flush with the header. */
.home #main .entry-content { margin-top:0; }
#footer .site-name { padding:0; }
/* Latest columns use the same thumbnail, frame and spacing as featured articles. */
#main .new-entry-cards { display:grid; gap:16px; }
#main .new-entry-cards::after { display:none; }
#main .new-entry-card-link { display:block; margin:0; padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; color:var(--ink); box-shadow:none; }
#main .new-entry-card { display:grid; grid-template-columns:160px minmax(0,1fr); gap:20px; align-items:center; min-height:0; margin:0; padding:0; }
#main .new-entry-card::after { display:none; }
#main .new-entry-card-thumb { float:none; width:100%; margin:0; padding:0; }
#main .new-entry-card-thumb img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; margin:0; border-radius:4px; }
#main .new-entry-card-content { min-width:0; min-height:0; margin:0; padding:0; }
#main .new-entry-card-title { font-size:1rem; font-weight:700; line-height:1.7; margin:0; padding:0; }
@media(max-width:540px){
  #main .new-entry-card-link { padding:14px; }
  #main .new-entry-card { grid-template-columns:100px minmax(0,1fr); gap:14px; }
  #main .new-entry-card-title { font-size:.9rem; }
}
/* Fixed column tracks align every prefecture, including shorter names. */
@media(max-width:800px){
  [id="japan-map"] .area { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; width:100%; }
  [id="japan-map"] .area a { display:flex; align-items:center; justify-content:center; min-width:0; width:100%; min-height:44px; margin:0; padding:8px 2px; }
}
@media(max-width:360px){
  [id="japan-map"] { padding-inline:16px; }
  [id="japan-map"] .area { gap:6px; }
  [id="japan-map"] .area a { font-size:.8rem; }
}
/* Override the theme's more-specific list indentation on update notices. */
#main .new-store-list { list-style:none; padding:0; margin:24px 0 48px; }
#main .new-store-list > li { margin:0; padding:13px 0; }
@media(max-width:540px){
  #main .new-store-list .post-date { display:block; margin:4px 0 0; }
}
/* Theme table-like TOCs otherwise shrink to their longest line. */
#main .toc { display:block; width:100%; max-width:none; }
#main .blogcard-snippet { margin:8px 0 0; font-size:.82rem; line-height:1.8; }
/* Center standalone editorial images without disturbing floated image layouts. */
#main .wp-block-image:not(.alignleft):not(.alignright) > img { display:block; margin-inline:auto; }

/* Align icon callouts to the first text line, with no legacy divider or offset. */
#main .common-icon-box { position:relative; padding:20px 22px 20px 58px; }
#main .common-icon-box::before { position:absolute; top:23px; left:20px; width:22px; height:22px; margin:0; padding:0; border:0; font-size:22px; line-height:1; transform:none; color:var(--accent); }
#main .common-icon-box > p { margin:0; }
#main .blank-box.bb-tab { border-radius:var(--radius); margin-top:28px; padding:20px 22px; }
#main .blank-box.bb-tab .bb-label { position:static; display:table; width:auto; height:auto; margin:0 0 12px; padding:3px 10px; border-radius:4px; background:var(--accent); color:#fff; font-size:.75rem; line-height:1.6; }
#main .toc { padding:20px 24px; }
#main .toc-title { text-align:left; margin:0 0 12px; padding:0 0 10px; border-bottom:1px solid var(--line); }
#main .toc-list { display:block; padding-left:1.6em; margin:0; }
#main .toc-list li { margin:4px 0; line-height:1.9; }
