/* Use display-sized images without changing the original photo viewer. */
:root { --hero-image: url('assets/jukjeon-1920.webp'); }
.title-line { display: block; }
.copy-phrase { display: inline-block; }

@media(max-width:1000px) {
  :root { --hero-image: url('assets/jukjeon-960.webp'); }
}
/* Preserve the black/yellow surfaces; avoid repaints and off-screen 3D layers on touch. */
@media(max-width:1000px), (hover:none), (pointer:coarse) {
  .hero-content, .event-card, .bf-dday, .dumbbell-render { animation: none; }
  .event-card { background-position: 45% 50%; }
  .depth-card, .depth-card:hover { transform: none; transition: none; }
  :is(.price-card, .program-card):before, .sweep-ready:after { content: none; }
  .scroll-reveal, .scroll-reveal.reveal-pending { opacity: 1; translate: none; pointer-events: auto; transition: none; }
  .photo-entering { animation: none; transform: none; }
  .header:before, .header .mobile-menu, .review-dialog::backdrop {
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  .header .mobile-menu { background: #101010fa; }
  .review-dialog::backdrop { background: #000b; }
}
@media(max-width:640px) {
  h2 { text-wrap: balance; }
  .section-description, .event-details p, .terms-foot, .faq-list details>p,
  .program-card>p, .directions-card p, .building-note { word-break: keep-all; overflow-wrap: break-word; }
  .hero-description { font-size: 14px; line-height: 1.85; letter-spacing: 0; }
  .hero-description .copy-phrase { display: block; }
  .hero-separator { display: none; }
  .membership-section h2 { font-size: clamp(24px, 6.5vw, 38px); }
  .facility-stage h3 { text-wrap: balance; }
  .review-profile time, .review-verified { font-size: 12px; }
  .review-card-foot { flex-wrap: wrap; row-gap: 6px; }
  .review-source, .review-coach { font-size: 12px; }
  .review-card { height: 492px; }
  .review-card blockquote p { line-height: 1.85; }
  .review-dialog .review-profile time { font-size: 12px; }
  .event-condition { text-wrap: pretty; }
}
@media(max-width:360px) {
  .hero-description { font-size: 13px; }
  .review-surface { padding-inline: 16px; }
  .review-card { height: 510px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *:before, *:after { animation: none !important; transition: none !important; }
}
/* Logo remains square inside its existing cropped brand frame. */
.brand-image img { height: auto; }

/* Gym photos are shown one at a time at their original ratio, never in tall cropped columns. */
.facility-stage.is-gym-gallery { aspect-ratio: auto; background: #141414; }
.facility-stage.is-gym-gallery>img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; transform: none; animation: none; }
.facility-stage.is-gym-gallery:after { content: none; }
.facility-stage.is-gym-gallery figcaption { position: static; padding: 24px 20px; }
.facility-photo-controls { display: flex; justify-content: center; align-items: center; gap: 24px; margin-top: 20px; }
.facility-photo-controls>span { min-width: 44px; font-size: 13px; letter-spacing: .1em; color: #ddd; }
.facility-photo-controls button { width: 44px; height: 44px; border: 1px solid #77776b; border-radius: 50%; background: #171717; color: #ffe000; font-size: 22px; }
@media(hover:hover) { .facility-photo-controls button:hover { background: #ffe000; color: #080808; } }
@media(max-width:640px) {
  .facility-stage.is-gym-gallery figcaption { padding: 20px 14px; }
  .facility-stage.is-gym-gallery h3 { font-size: 21px; line-height: 1.5; }
  .facility-stage.is-gym-gallery figcaption p { font-size: 13px; }
  .facility-photo-controls { margin-top: 16px; }
}
