    :root {
      --blue: #2e395e;
      --blue-dark: #1d2746;
      --cream: #f8f6f4;
      --white: #fff;
      --text: #151515;
      --muted: #686b76;
      --line: rgba(46,57,94,.14);
      --soft: rgba(255,255,255,.7);
      --shadow: 0 30px 80px rgba(29,39,70,.13);
      --radius: 34px;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      background: var(--cream);
      color: var(--text);
      font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Segoe UI", sans-serif;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    a { color: inherit; text-decoration: none; }
    img { max-width: 100%; height: auto; display: block; }

    .skip-link {
      position: absolute;
      left: -999px;
      top: 12px;
      background: var(--blue);
      color: #fff;
      padding: 10px 14px;
      border-radius: 999px;
      z-index: 100;
    }
    .skip-link:focus { left: 12px; }

    .nav {
      position: sticky;
      top: 0;
      z-index: 50;
      backdrop-filter: saturate(180%) blur(18px);
      background: rgba(248,246,244,.76);
      border-bottom: 1px solid var(--line);
    }

    .nav-inner {
      max-width: 1180px;
      margin: 0 auto;
      padding: 13px 22px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
    }

    .brand {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: var(--blue);
      font-size: 20px;
      font-weight: 900;
      letter-spacing: -.045em;
    }

    .brand-mark {
      width: 30px;
      height: 30px;
      border-radius: 10px;
      background: var(--blue);
      color: #fff;
      display: grid;
      place-items: center;
      font-size: 12px;
      letter-spacing: -.04em;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 22px;
      color: rgba(21,21,21,.68);
      font-size: 14px;
      font-weight: 700;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 999px;
      padding: 12px 19px;
      font-weight: 900;
      border: 1px solid transparent;
      cursor: pointer;
      transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
      white-space: nowrap;
    }

    .btn-primary {
      background: var(--blue);
      color: #fff;
      box-shadow: 0 15px 34px rgba(46,57,94,.22);
    }

    .btn-primary:hover {
      transform: translateY(-1px);
      background: var(--blue-dark);
      box-shadow: 0 20px 42px rgba(46,57,94,.28);
    }

    .btn-secondary {
      background: rgba(255,255,255,.68);
      color: var(--blue);
      border-color: var(--line);
    }

    main { overflow: hidden; }

    .hero {
      max-width: 1180px;
      min-height: 92vh;
      margin: 0 auto;
      padding: 82px 22px 46px;
      display: grid;
      grid-template-columns: 1fr;
      align-items: center;
      text-align: center;
      position: relative;
    }

    .eyebrow {
      justify-self: center;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 8px 13px;
      margin-bottom: 24px;
      border: 1px solid var(--line);
      background: rgba(255,255,255,.64);
      border-radius: 999px;
      color: var(--blue);
      font-size: 13px;
      font-weight: 900;
    }

    .dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: #2eaf72;
      box-shadow: 0 0 0 5px rgba(46,175,114,.12);
    }

    h1, h2, h3 { text-wrap: balance; }

    h1 {
      margin: 0 auto;
      max-width: 980px;
      color: var(--blue);
      font-size: clamp(58px, 10vw, 128px);
      line-height: .86;
      letter-spacing: -.08em;
    }

    .hero-sub {
      max-width: 720px;
      margin: 28px auto 0;
      color: rgba(21,21,21,.74);
      font-size: clamp(20px, 2.3vw, 30px);
      line-height: 1.22;
      letter-spacing: -.035em;
      font-weight: 680;
    }

    .hero-sub strong { color: var(--text); }

    .hero-actions {
      margin-top: 32px;
      display: flex;
      justify-content: center;
      gap: 12px;
      flex-wrap: wrap;
    }

    .proof-strip {
      margin: 44px auto 0;
      width: min(100%, 860px);
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
    }

    .proof-item {
      background: rgba(255,255,255,.7);
      border: 1px solid var(--line);
      border-radius: 26px;
      padding: 18px 16px;
      box-shadow: 0 12px 36px rgba(46,57,94,.06);
    }

    .proof-item b {
      display: block;
      color: var(--blue);
      font-size: 30px;
      line-height: 1;
      letter-spacing: -.06em;
    }

    .proof-item span {
      display: block;
      margin-top: 7px;
      color: var(--muted);
      font-size: 14px;
      font-weight: 750;
    }

    .hero-visual {
      margin: 46px auto 0;
      width: min(100%, 960px);
      min-height: 360px;
      border-radius: 46px;
      background:
        linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02)),
        linear-gradient(135deg, #2e395e, #11172c);
      box-shadow: var(--shadow);
      overflow: hidden;
      position: relative;
      display: grid;
      place-items: center;
      color: white;
    }

    .hero-visual::before {
      content: "";
      position: absolute;
      inset: 0;
      background: url('/mnt/data/_DSC2406.jpg') center/cover no-repeat;
      opacity: .28;
    }

    .hero-visual-content {
      position: relative;
      z-index: 1;
      padding: 40px 24px;
      max-width: 650px;
    }

    .hero-visual-content p {
      margin: 0;
      font-size: clamp(30px, 5vw, 62px);
      line-height: .94;
      letter-spacing: -.065em;
      font-weight: 950;
    }

    .section {
      max-width: 1180px;
      margin: 0 auto;
      padding: 88px 22px;
    }

    .center { text-align: center; }

    .kicker {
      margin-bottom: 14px;
      color: var(--blue);
      font-size: 13px;
      font-weight: 950;
      letter-spacing: .15em;
      text-transform: uppercase;
    }

    h2 {
      margin: 0;
      color: var(--blue);
      font-size: clamp(40px, 6vw, 84px);
      line-height: .93;
      letter-spacing: -.08em;
    }

    .lead {
      max-width: 720px;
      margin: 22px auto 0;
      color: rgba(21,21,21,.7);
      font-size: clamp(18px, 2vw, 24px);
      line-height: 1.32;
      letter-spacing: -.03em;
      font-weight: 650;
    }

    .steps, .seo-grid {
      margin-top: 44px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
    }

    .card {
      background: var(--soft);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 30px;
      text-align: left;
      box-shadow: 0 18px 50px rgba(46,57,94,.07);
    }

    .num {
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      margin-bottom: 24px;
      border-radius: 16px;
      background: var(--blue);
      color: #fff;
      font-weight: 950;
    }

    .card h3 {
      margin: 0 0 10px;
      color: var(--blue);
      font-size: 27px;
      line-height: 1;
      letter-spacing: -.055em;
    }

    .card p {
      margin: 0;
      color: rgba(21,21,21,.68);
      font-size: 16px;
      line-height: 1.55;
      font-weight: 560;
    }

    .split {
      display: grid;
      grid-template-columns: .95fr 1.05fr;
      gap: 18px;
      align-items: stretch;
    }

    .statement {
      min-height: 540px;
      padding: 40px;
      border-radius: 44px;
      background: var(--blue);
      color: #fff;
      box-shadow: var(--shadow);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      position: relative;
      overflow: hidden;
    }

    .statement::after {
      content: "";
      position: absolute;
      right: -120px;
      bottom: -120px;
      width: 340px;
      height: 340px;
      border-radius: 50%;
      background: rgba(255,255,255,.075);
    }

    .statement h2 { color: #fff; }
    .statement p {
      max-width: 470px;
      margin: 28px 0 0;
      color: rgba(255,255,255,.76);
      font-size: 22px;
      line-height: 1.3;
      letter-spacing: -.03em;
      font-weight: 650;
    }

    .benefits {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .benefit {
      min-height: 262px;
      padding: 28px;
      border-radius: 34px;
      border: 1px solid var(--line);
      background: var(--soft);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .icon {
      width: 40px;
      height: 40px;
      border-radius: 15px;
      background: #fff;
      border: 1px solid var(--line);
      color: var(--blue);
      display: grid;
      place-items: center;
      font-weight: 950;
      font-size: 13px;
    }

    .benefit h3 {
      margin: 24px 0 10px;
      color: var(--blue);
      font-size: 28px;
      line-height: 1;
      letter-spacing: -.06em;
    }

    .benefit p {
      margin: 0;
      color: rgba(21,21,21,.66);
      line-height: 1.5;
      font-weight: 580;
    }

    .pricing {
      max-width: 880px;
      margin: 46px auto 0;
      padding: 18px;
      border-radius: 42px;
      border: 1px solid var(--line);
      background: #fff;
      box-shadow: var(--shadow);
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 18px;
      text-align: left;
    }

    .price-main {
      padding: 34px;
      border-radius: 32px;
      background: var(--blue);
      color: #fff;
    }

    .price-main small {
      color: rgba(255,255,255,.66);
      font-weight: 900;
    }

    .price {
      margin: 13px 0 10px;
      font-size: 74px;
      line-height: .9;
      letter-spacing: -.08em;
      font-weight: 950;
    }

    .price-main p {
      margin: 0;
      color: rgba(255,255,255,.76);
      line-height: 1.45;
      font-weight: 650;
    }

    .price-side {
      padding: 30px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      gap: 24px;
    }

    .checklist {
      display: grid;
      gap: 14px;
      color: rgba(21,21,21,.72);
      font-weight: 750;
    }

    .checklist div::before {
      content: "✓";
      color: var(--blue);
      font-weight: 950;
      margin-right: 8px;
    }

    .location-copy {
      max-width: 820px;
      margin: 34px auto 0;
      color: rgba(21,21,21,.7);
      font-size: 17px;
      line-height: 1.7;
      font-weight: 560;
      text-align: left;
    }

    .location-copy strong { color: var(--text); }

    .locations {
      margin-top: 30px;
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 16px;
    }

    .location-card {
      min-height: 280px;
      padding: 28px;
      border-radius: 36px;
      border: 1px solid var(--line);
      background: var(--soft);
      text-align: left;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .location-card h3 {
      margin: 0;
      color: var(--blue);
      font-size: 36px;
      letter-spacing: -.065em;
    }

    .location-card p {
      margin: 10px 0 0;
      color: rgba(21,21,21,.66);
      line-height: 1.5;
      font-weight: 600;
    }

    .tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 18px;
    }

    .tag {
      padding: 8px 11px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: #fff;
      color: var(--blue);
      font-size: 13px;
      font-weight: 850;
    }

    .faq {
      max-width: 880px;
      margin: 44px auto 0;
      display: grid;
      gap: 10px;
    }

    details {
      padding: 19px 22px;
      border-radius: 24px;
      border: 1px solid var(--line);
      background: var(--soft);
      text-align: left;
    }

    summary {
      cursor: pointer;
      color: var(--blue);
      font-size: 18px;
      font-weight: 900;
      letter-spacing: -.025em;
    }

    details p {
      margin: 12px 0 0;
      color: rgba(21,21,21,.68);
      line-height: 1.55;
      font-weight: 560;
    }

    .final-cta {
      margin-top: 44px;
      padding: 70px 24px;
      border-radius: 48px;
      background: #0d1225;
      color: #fff;
      text-align: center;
      box-shadow: var(--shadow);
    }

    .final-cta h2 { color: #fff; }
    .final-cta p {
      max-width: 600px;
      margin: 20px auto 30px;
      color: rgba(255,255,255,.74);
      font-size: 22px;
      line-height: 1.32;
      letter-spacing: -.03em;
      font-weight: 650;
    }

    .footer {
      margin-top: 48px;
      padding: 36px 22px;
      background: var(--blue);
      color: rgba(255,255,255,.75);
      font-size: 14px;
      font-weight: 700;
    }

    .footer-inner {
      max-width: 1180px;
      margin: 0 auto;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 18px;
      flex-wrap: wrap;
    }

    .footer a { color: #fff; }

    @media (max-width: 920px) {
      .nav-links a:not(.btn) { display: none; }
      .proof-strip, .steps, .seo-grid, .split, .pricing, .locations { grid-template-columns: 1fr; }
      .benefits { grid-template-columns: 1fr; }
      .hero { min-height: auto; padding-top: 56px; }
      .statement { min-height: 420px; }
    }

    @media (max-width: 520px) {
      .nav-inner { padding: 12px 16px; }
      .brand { font-size: 18px; }
      .btn { width: 100%; }
      .nav .btn { width: auto; padding: 10px 13px; font-size: 13px; }
      .hero, .section { padding-left: 16px; padding-right: 16px; }
      h1 { font-size: 60px; }
      .hero-actions { flex-direction: column; }
      .proof-item b { font-size: 27px; }
      .hero-visual { min-height: 300px; border-radius: 34px; }
      .pricing { padding: 12px; border-radius: 34px; }
      .price { font-size: 58px; }
      .card, .benefit, .location-card { padding: 24px; }
    }

.jg-nav {
  backdrop-filter: saturate(180%) blur(18px);
  background: rgba(248, 246, 244, .78);
  border-bottom: 1px solid rgba(46,57,94,.14);
  padding: 0;
  z-index: 999;
}

.jg-nav-inner {
  min-height: 76px;
  display: flex;
  align-items: center;
  gap: 18px;
}

.jg-brand {
  display: inline-flex;
  align-items: center;
}

.jg-logo {
  height: 35px;
  width: auto;
  display: block;
}

.jg-menu {
  display: flex;
  align-items: center;
  gap: 4px;
}

.jg-link {
  display: inline-flex;
  align-items: center;
  padding: 10px 13px;
  color: rgba(21,21,21,.68);
  font-size: 15px;
  font-weight: 850;
  letter-spacing: -.02em;
  border-radius: 999px;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

.jg-link:hover,
.jg-link.is-active {
  color: #2e395e;
  background: rgba(46,57,94,.08);
}

.jg-dropdown {
  border: 1px solid rgba(46,57,94,.14);
  border-radius: 22px;
  padding: 8px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 24px 60px rgba(29,39,70,.14);
  overflow: hidden;
}

.jg-dropdown .dropdown-item {
  border-radius: 14px;
  padding: 10px 14px;
  color: #2e395e;
  font-weight: 800;
}

.jg-dropdown .dropdown-item:hover {
  background: rgba(46,57,94,.08);
}

.jg-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}

.jg-reservation {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 26px;
  border-radius: 999px;
  background: #2e395e;
  color: #fff;
  font-size: 18px;
  font-weight: 950;
  letter-spacing: -.03em;
  box-shadow: 0 15px 34px rgba(46,57,94,.22);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.jg-reservation:hover {
  color: #fff;
  background: #1d2746;
  transform: translateY(-1px);
  box-shadow: 0 20px 42px rgba(46,57,94,.28);
}

.jg-mode {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(46,57,94,.22);
  background: rgba(255,255,255,.68);
  color: #2e395e;
  display: grid;
  place-items: center;
  font-size: 19px;
}

.jg-menu-toggle {
  border: 1px solid rgba(46,57,94,.18);
  border-radius: 999px;
  color: #2e395e;
  padding: 9px 12px;
}

.jg-menu-toggle:focus {
  box-shadow: 0 0 0 4px rgba(46,57,94,.10);
}

@media (min-width: 992px) {
  .jg-nav .dropdown:hover .dropdown-menu {
    display: block;
    margin-top: 0;
  }
}

@media (max-width: 991px) {
  .jg-nav-inner {
    min-height: 68px;
  }

  .jg-logo {
    height: 42px;
  }

  .navbar-collapse {
    margin-top: 12px;
    padding: 14px;
    border: 1px solid rgba(46,57,94,.14);
    border-radius: 26px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 24px 60px rgba(29,39,70,.12);
  }

  .jg-menu {
    gap: 2px;
  }

  .jg-link {
    width: 100%;
    justify-content: space-between;
    padding: 13px 14px;
  }

  .jg-actions {
    margin-left: 0;
    margin-top: 12px;
    display: grid;
    grid-template-columns: 1fr auto;
    width: 100%;
  }

  .jg-reservation {
    width: 100%;
  }
}
/* ===== JIMGYM HEADER FIX ===== */

.jg-header {
  height: 76px;
}

.jg-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  backdrop-filter: saturate(180%) blur(18px);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  background: rgba(248, 246, 244, .82);
  border-bottom: 1px solid rgba(46,57,94,.14);
}

.jg-nav-inner {
  max-width: 1180px;
  min-height: 76px;
  margin: 0 auto;
  padding: 0 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.jg-brand {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.jg-logo {
  height: 40px;
  width: auto;
  display: block;
}

.jg-menu-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  flex: 1;
}

.jg-menu {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.jg-menu li {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.jg-link,
.jg-dropdown-toggle {
  border: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 14px;
  color: rgba(21,21,21,.68);
  font-size: 15px;
  font-weight: 850;
  letter-spacing: -.02em;
  border-radius: 999px;
  cursor: pointer;
  transition: background .18s ease, color .18s ease;
}

.jg-link:hover,
.jg-link.is-active,
.jg-dropdown-parent:hover > .jg-dropdown-toggle,
.jg-dropdown-parent.is-open > .jg-dropdown-toggle {
  color: #2e395e;
  background: rgba(46,57,94,.08);
}

.jg-dropdown {
  list-style: none;
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 190px;
  margin: 0;
  padding: 8px;
  border-radius: 22px;
  border: 1px solid rgba(46,57,94,.14);
  background: rgba(255,255,255,.96);
  box-shadow: 0 24px 60px rgba(29,39,70,.14);
}

.jg-dropdown-parent:hover > .jg-dropdown,
.jg-dropdown-parent.is-open > .jg-dropdown {
  display: block;
}

.jg-dropdown li {
  list-style: none;
}

.jg-dropdown a {
  display: block;
  padding: 10px 14px;
  border-radius: 14px;
  color: #2e395e;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}

.jg-dropdown a:hover {
  background: rgba(46,57,94,.08);
}

.jg-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.jg-reservation {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 26px;
  border-radius: 999px;
  background: #2e395e;
  color: #fff;
  font-size: 18px;
  font-weight: 950;
  letter-spacing: -.03em;
  box-shadow: 0 15px 34px rgba(46,57,94,.22);
}

.jg-reservation:hover {
  color: #fff;
  background: #1d2746;
}

.jg-mode,
.jg-menu-toggle {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(46,57,94,.22);
  background: rgba(255,255,255,.68);
  color: #2e395e;
  display: grid;
  place-items: center;
  font-size: 19px;
  cursor: pointer;
}

.jg-menu-toggle {
  display: none;
}

main {
  padding-top: 0;
}

/* MOBILE */
@media (max-width: 920px) {
  .jg-header {
    height: 68px;
  }

  .jg-nav-inner {
    min-height: 68px;
    padding: 0 16px;
  }

  .jg-logo {
    height: 40px;
  }

  .jg-menu-toggle {
    display: grid;
  }

  .jg-menu-wrap {
    display: none;
    position: absolute;
    top: 76px;
    left: 16px;
    right: 16px;
    padding: 14px;
    border-radius: 26px;
    border: 1px solid rgba(46,57,94,.14);
    background: rgba(255,255,255,.96);
    box-shadow: 0 24px 60px rgba(29,39,70,.14);
  }

  .jg-menu-wrap.is-open {
    display: block;
  }

  .jg-menu {
    display: grid;
    gap: 4px;
    margin: 0;
  }

  .jg-link,
  .jg-dropdown-toggle {
    width: 100%;
    justify-content: space-between;
    padding: 13px 14px;
  }

  .jg-dropdown {
    position: static;
    transform: none;
    box-shadow: none;
    border-radius: 18px;
    margin: 4px 0 8px;
    background: rgba(46,57,94,.05);
  }

  .jg-dropdown-parent:hover > .jg-dropdown {
    display: none;
  }

  .jg-dropdown-parent.is-open > .jg-dropdown {
    display: block;
  }

  .jg-actions {
    margin-top: 12px;
    display: grid;
    grid-template-columns: 1fr auto;
    width: 100%;
  }

  .jg-reservation {
    width: 100%;
  }
}
.jg-hotline {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(46,57,94,.18);
  background: rgba(255,255,255,.68);

  display: flex;
  align-items: center;
  justify-content: center;

  color: #2e395e;
  font-size: 18px;
  text-decoration: none;

  transition:
    transform .18s ease,
    background .18s ease,
    border-color .18s ease;
}

.jg-hotline:hover {
  transform: translateY(-1px);
  background: rgba(46,57,94,.08);
  border-color: rgba(46,57,94,.28);
}
.jg-dropdown {
  top: 100%;
  margin-top: 0;
  padding-top: 12px;
}

.jg-dropdown::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -14px;
  height: 14px;
}
.jg-menu-toggle {
  position: relative;
  width: 56px;
  height: 56px;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(46,57,94,.18);
  background: rgba(255,255,255,.72);
  display: none;
  place-items: center;
}

.jg-menu-toggle span {
  position: absolute;
  width: 19px;
  height: 2px;
  border-radius: 99px;
  background: #2e395e;
  left: 50%;
  transform: translateX(-50%);
}

.jg-menu-toggle span:nth-child(1) { top: 20px; }
.jg-menu-toggle span:nth-child(2) { top: 27px; }
.jg-menu-toggle span:nth-child(3) { top: 34px; }

@media (max-width: 920px) {
  .jg-menu-toggle {
    display: grid;
  }
}


/* ===== JIMGYM FOOTER ===== */

.jg-footer {
  margin-top: 80px;
  background: #0d1225;
  color: rgba(255,255,255,.72);
}

.jg-footer-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 64px 22px 30px;
}

.jg-footer-brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 42px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.jg-footer-logo {
  height: 54px;
  width: auto;
  filter: brightness(0) invert(1);
}

.jg-footer-brand p {
  margin: 0;
  color: #fff;
  font-size: clamp(28px, 4vw, 54px);
  line-height: .95;
  letter-spacing: -.07em;
  font-weight: 950;
  text-align: right;
}

.jg-footer-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
  padding: 42px 0;
}

.jg-footer-col {
  display: grid;
  align-content: start;
  gap: 10px;
}

.jg-footer-col h3 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 15px;
  font-weight: 950;
  letter-spacing: -.02em;
}

.jg-footer-col a,
.jg-footer-col span {
  color: rgba(255,255,255,.64);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.45;
  text-decoration: none;
}

.jg-footer-col a:hover {
  color: #fff;
}

.jg-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.48);
  font-size: 14px;
  font-weight: 650;
}

.jg-footer-bottom div {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.jg-footer-bottom a {
  color: rgba(255,255,255,.48);
  text-decoration: none;
}

.jg-footer-bottom a:hover {
  color: #fff;
}

@media (max-width: 820px) {
  .jg-footer-brand {
    align-items: flex-start;
    flex-direction: column;
  }

  .jg-footer-brand p {
    text-align: left;
  }

  .jg-footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .jg-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .jg-footer-inner {
    padding: 52px 16px 28px;
  }

  .jg-footer-grid {
    grid-template-columns: 1fr;
  }

  .jg-footer-logo {
    height: 46px;
  }
}

/* ===== FOOTER COMPANY INFO ===== */

.jg-footer-company {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  padding: 0 0 34px;
}

.jg-footer-company-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.jg-footer-label {
  color: rgba(255,255,255,.38);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.jg-footer-company-block p {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.6;
  font-weight: 650;
}

@media (max-width: 820px) {
  .jg-footer-company {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.jg-footer-map {
  width: fit-content;
  margin-top: 4px;
  color: #fff;
  font-size: 14px;
  font-weight: 750;
  text-decoration: none;
  opacity: .82;
  transition: .2s ease;
}

.jg-footer-map:hover {
  opacity: 1;
  transform: translateX(2px);
}

/* ===== MOBILE HEADER FIX ===== */

@media (max-width: 920px) {
  .jg-nav-inner {
    min-height: 76px;
    padding: 0 16px;
    gap: 12px;
  }

  .jg-logo {
    height: 44px;
    max-width: 230px;
  }

  .jg-brand {
    min-width: 0;
    flex: 1;
  }

  .jg-menu-toggle {
    display: grid;
    flex-shrink: 0;
    width: 54px;
    height: 54px;
  }

  .jg-menu-wrap {
    display: none;
    position: absolute;
    top: 76px;
    left: 16px;
    right: 16px;
    padding: 16px;
    border-radius: 28px;
    border: 1px solid rgba(46,57,94,.14);
    background: rgba(255,255,255,.96);
    box-shadow: 0 24px 60px rgba(29,39,70,.14);
  }

  .jg-menu-wrap.is-open {
    display: block;
  }

  .jg-menu {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
  }

  .jg-actions {
    margin-top: 14px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    width: 100%;
  }

  .jg-reservation {
    width: 100%;
    min-height: 52px;
  }

  .jg-hotline, .jg-mail {
    width: 52px;
    height: 52px;
  }

}
@media (max-width: 900px) {
  .jg-reservation {
    display: none;
  }
}
/* MOBILE RESERVATION BUTTON */

.mobile-reservation {
  margin-top: 18px;
  width: 100%;
}

.mobile-reservation a {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  padding: 16px 20px;

  background: var(--blue);
  color: white;

  border-radius: 18px;

  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;

  box-shadow: 0 10px 30px rgba(46,57,94,.18);

  transition: .2s ease;
}

.mobile-reservation a:hover {
  transform: translateY(-2px);
  background: var(--blue-dark);
}
@media (min-width: 901px) {
  .mobile-reservation {
    display: none;
  }
}


@media (max-width: 900px) {
  .jg-nav-inner {
    min-height: 76px;
    padding: 10px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }

  .jg-brand {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
  }

  .jg-logo {
    width: min(52vw, 250px);
    height: auto;
    max-height: 56px;
    object-fit: contain;
  }

  .jg-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex-shrink: 0;
  }

  .jg-hotline,
  .jg-menu-toggle {
    width: 48px;
    height: 48px;
    border-radius: 999px;
  }
    .jg-mail{
     width: 48px;
    height: 48px;
    border-radius: 999px;   
    }
  .jg-reservation {
    display: none;
  }
}

/* ===== FINAL MOBILE HEADER FIX: logo left, hotline + hamburger right ===== */

.jg-nav-inner {
  position: relative;
}

.jg-actions {
  margin-left: auto;
}

.jg-menu-toggle {
  display: none;
}

@media (max-width: 900px) {
  .jg-header {
    height: 76px;
  }

  .jg-nav-inner {
    min-height: 76px;
    padding: 10px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .jg-brand {
    flex: 1 1 auto;
    min-width: 0;
  }

  .jg-logo {
    width: min(52vw, 250px);
    height: auto;
    max-height: 56px;
    object-fit: contain;
  }

  .jg-actions {
    width: auto;
    margin-top: 0;
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
  }

  .jg-reservation {
    display: none;
  }

  .jg-hotline,
  .jg-menu-toggle{
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 999px;
  }
.jg-mail {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 999px;
  }
    
  .jg-menu-toggle {
    display: grid;
  }

  .jg-menu-wrap {
    top: 76px;
    left: 16px;
    right: 16px;
  }
}

@media (min-width: 901px) {
  .jg-menu-toggle {
    display: none !important;
  }
}






@media (max-width: 900px) {
  .jg-menu-toggle {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    padding: 0 !important;
    margin: 0;
    border-radius: 999px;
    border: 1px solid rgba(46,57,94,.14);
    background: rgba(255,255,255,.72);

    display: flex !important;
    flex-direction: column;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px;

    box-shadow: none;
    line-height: 1;
  }

  .jg-menu-toggle span {
    position: static !important;
    display: block !important;
    width: 21px;
    height: 2.5px;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 999px;
    background: #2e395e;
    transform: none !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
  }
}





 .location-gallery-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    padding: 18px;
  }

  .location-gallery-modal.is-open {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .location-gallery-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 12, 20, .72);
    backdrop-filter: blur(10px);
  }

  .location-gallery-box {
    position: relative;
    width: min(1120px, 100%);
    max-height: 88vh;
    overflow: auto;
    background: #F8F6F4;
    border-radius: 34px;
    padding: clamp(24px, 4vw, 48px);
    box-shadow: 0 40px 100px rgba(0,0,0,.32);
  }

  .location-gallery-box h2 {
    margin: 8px 0 10px;
    color: #2e395e;
  }

  .location-gallery-box p {
    margin: 0 0 28px;
    color: rgba(21,21,21,.68);
    font-weight: 650;
    line-height: 1.55;
  }

  .location-gallery-close {
    position: sticky;
    top: 0;
    float: right;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 999px;
    background: #2e395e;
    color: white;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
  }

  .location-gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 14px;
  }

  .location-gallery-grid img {
    width: 100%;
    height: 100%;
    min-height: 230px;
    object-fit: cover;
    border-radius: 24px;
    display: block;
    box-shadow: 0 18px 44px rgba(46,57,94,.12);
  }

  .location-gallery-grid a {
    grid-column: span 4;
    display: block;
  }

  .location-gallery-grid a:first-child {
    grid-column: span 8;
  }

  @media (max-width: 760px) {
    .location-gallery-box {
      border-radius: 26px;
      padding: 22px;
    }

    .location-gallery-grid {
      grid-template-columns: 1fr;
    }

    .location-gallery-grid a,
    .location-gallery-grid a:first-child {
      grid-column: auto;
    }

    .location-gallery-grid img {
      min-height: 210px;
    }
  }

.error404-content {
    position: relative;
    z-index: 2;
    max-width: 920px;
    margin: 0 auto;
    text-align: center;
}

.error404-content p {
    max-width: 720px;
    margin: 30px auto 45px;
    font-size: 1.15rem;
    line-height: 1.8;
    color: rgba(21,21,21,.72);
}
.error404-page {
    background: #0f1117;
    color: #F8F6F4;
    overflow: hidden;
}

.error404-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 120px 20px 80px;
    background:
        radial-gradient(circle at top right, rgba(46,57,94,0.45), transparent 35%),
        radial-gradient(circle at bottom left, rgba(255,255,255,0.06), transparent 30%),
        #0f1117;
}

.error404-overlay {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 40px 40px;
    opacity: 0.25;
    pointer-events: none;
}

.error404-content {
    position: relative;
    z-index: 2;
    max-width: 760px;
    text-align: center;
}

.error404-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 28px;
}

.error404-content h1 {
    font-size: clamp(3rem, 8vw, 7rem);
    line-height: 0.95;
    margin-bottom: 28px;
    font-weight: 900;
    letter-spacing: -0.04em;
}

.error404-content p {
    font-size: 1.1rem;
    line-height: 1.8;
    color: rgba(248,246,244,0.78);
    max-width: 620px;
    margin: 0 auto 40px;
}

.error404-buttons {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

.error404-buttons a {
    text-decoration: none;
    padding: 16px 26px;
    border-radius: 16px;
}


.footer-socials{
    display:flex;
    gap:14px;
    margin-top:26px;
    flex-wrap:wrap;
}

.footer-social{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 18px;
    border-radius:16px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.08);
    color:#fff;
    text-decoration:none;
    transition:.25s ease;
    font-weight:600;
}

.footer-social:hover{
    transform:translateY(-2px);
    background:rgba(255,255,255,.12);
}

.footer-social i{
    font-size:1.1rem;
}


.jg-mail {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(46,57,94,.18);
  background: rgba(255,255,255,.68);

  display: flex;
  align-items: center;
  justify-content: center;

  color: #2e395e;
  font-size: 18px;
  text-decoration: none;

  transition:
    transform .18s ease,
    background .18s ease,
    border-color .18s ease;
}

.jg-mail:hover {
  transform: translateY(-1px);
  background: rgba(46,57,94,.08);
  border-color: rgba(46,57,94,.28);
}

.contact-wrap {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 34px;
  align-items: stretch;
}

.contact-copy,
.contact-form {
  border-radius: 34px;
  border: 1px solid rgba(46, 57, 94, .10);
  box-shadow: 0 28px 80px rgba(46, 57, 94, .08);
}

.contact-copy {
  background: #2e395e;
  color: #fff;
  padding: 46px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 560px;
}

.contact-copy .kicker {
  color: rgba(255, 255, 255, .62);
}

.contact-copy h2 {
  color: #fff;
  font-size: clamp(54px, 6vw, 92px);
  line-height: .88;
  letter-spacing: -.075em;
  margin: 18px 0 24px;
}

.contact-copy p {
  color: rgba(255, 255, 255, .72);
  font-size: 20px;
  line-height: 1.55;
  font-weight: 700;
  max-width: 520px;
}

.contact-direct {
  margin-top: 34px;
  display: grid;
  gap: 12px;
}

.contact-direct a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  text-decoration: none;
  font-weight: 900;
  letter-spacing: -.03em;
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(255, 255, 255, .16);
}

.contact-direct i {
  font-size: 22px;
}

.contact-form {
  background: #fff;
  padding: 38px;
}

.contact-hp {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.form-row {
  margin-bottom: 18px;
}

.form-row label {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #2e395e;
  font-size: 14px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.form-row label span {
  color: rgba(21, 21, 21, .42);
  font-weight: 850;
  text-transform: none;
  letter-spacing: -.01em;
}

.form-row input,
.form-row textarea {
  width: 100%;
  border: 1px solid rgba(46, 57, 94, .14);
  background: #f8f6f4;
  color: #151515;
  border-radius: 18px;
  padding: 17px 18px;
  font: inherit;
  font-size: 17px;
  font-weight: 700;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.form-row textarea {
  resize: vertical;
  min-height: 160px;
}

.form-row input:focus,
.form-row textarea:focus {
  background: #fff;
  border-color: rgba(46, 57, 94, .55);
  box-shadow: 0 0 0 4px rgba(46, 57, 94, .08);
}

.contact-submit {
  width: 100%;
  justify-content: center;
  border: 0;
  cursor: pointer;
  margin-top: 4px;
}

.contact-note {
  margin: 16px 0 0;
  color: rgba(21, 21, 21, .48);
  font-size: 14px;
  line-height: 1.45;
  font-weight: 700;
  text-align: center;
}

.contact-alert {
  border-radius: 18px;
  padding: 16px 18px;
  margin-bottom: 22px;
  font-weight: 900;
  line-height: 1.4;
}

.contact-alert-success {
  color: #1f5f38;
  background: rgba(46, 160, 87, .12);
  border: 1px solid rgba(46, 160, 87, .22);
}

.contact-alert-error {
  color: #8a1f1f;
  background: rgba(210, 55, 55, .10);
  border: 1px solid rgba(210, 55, 55, .20);
}

@media (max-width: 900px) {
  .contact-wrap {
    grid-template-columns: 1fr;
  }

  .contact-copy {
    min-height: auto;
    padding: 34px 26px;
  }

  .contact-form {
    padding: 26px;
  }

  .form-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .jg-mail {
    width: 48px;
    height: 48px;
    font-size: 20px;
  }
}

@media (max-width: 520px) {
  

  .contact-copy h2 {
    font-size: 52px;
  }

  .contact-copy p {
    font-size: 18px;
  }
}



/* ===== MOBILE: ukázat mail + zmenšit logo ===== */
@media (max-width: 520px) {
  .jg-nav-inner {
    padding: 10px 12px;
    gap: 8px;
  }

  .jg-logo {
  width: min(48vw, 220px);
  max-height: 51px;
  height: auto;
}

  .jg-actions {
    gap: 6px;
  }

  .jg-hotline,
  .jg-mail,
  .jg-menu-toggle {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
  }

  .jg-mail {
    display: flex;
    font-size: 18px;
  }

  .jg-menu-toggle span {
    width: 19px;
    height: 2px;
  }
}


/* ===== SEO PANEL / TEXTOVÝ BLOK ===== */

.seo-panel {
  position: relative;
  overflow: hidden;
  margin-top: 34px;
  padding: clamp(26px, 5vw, 58px);
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(24px, 5vw, 58px);
  align-items: center;
  background:
    radial-gradient(circle at 10% 15%, rgba(46,57,94,.13), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,255,255,.58));
  border: 1px solid var(--line);
  border-radius: 42px;
  box-shadow: 0 24px 70px rgba(46,57,94,.09);
}

.seo-panel::after {
  content: "";
  position: absolute;
  right: -110px;
  bottom: -130px;
  width: 310px;
  height: 310px;
  border-radius: 50%;
  background: rgba(46,57,94,.075);
  pointer-events: none;
}

.seo-panel__label {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 18px;
  padding: 8px 13px;
  border-radius: 999px;
  background: rgba(46,57,94,.09);
  color: var(--blue);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.seo-panel h2 {
  max-width: 560px;
  font-size: clamp(34px, 5vw, 64px);
  line-height: .92;
  letter-spacing: -.075em;
}

.seo-panel__text {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 16px;
}

.seo-panel__text p {
  margin: 0;
  color: rgba(21,21,21,.72);
  font-size: clamp(16px, 1.7vw, 20px);
  line-height: 1.48;
  letter-spacing: -.025em;
  font-weight: 620;
}

.seo-panel__chips {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.seo-panel__chips span {
  display: inline-flex;
  padding: 9px 12px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--blue);
  font-size: 13px;
  font-weight: 900;
}

.seo-panel__note {
  margin-top: 8px;
  padding: 16px 18px;
  border-left: 4px solid var(--blue);
  background: rgba(46,57,94,.06);
  border-radius: 18px;
  color: var(--blue);
  font-size: 15px;
  line-height: 1.4;
  font-weight: 850;
}

@media (max-width: 820px) {
  .seo-panel {
    grid-template-columns: 1fr;
    border-radius: 32px;
  }

  .seo-panel h2 {
    max-width: none;
  }
}

@media (max-width: 520px) {
  .seo-panel {
    padding: 24px;
    border-radius: 28px;
  }

  .seo-panel h2 {
    font-size: 38px;
  }
}



  .hero-visual.real-photo {
    --mx: 0;
    --my: 0;
    --shine-x: 50%;
    --shine-y: 42%;
    position: relative;
    overflow: hidden;
    min-height: clamp(420px, 56vw, 760px);
    margin-top: clamp(46px, 7vw, 86px);
    border-radius: clamp(34px, 5vw, 76px);
    background: #1f2744;
    isolation: isolate;
    box-shadow: 0 34px 90px rgba(18, 26, 51, .18);
    transform: translateZ(0);
  }

  .hero-visual.real-photo img {
  width: 100%;
  height: 100%;
  min-height: clamp(420px, 56vw, 760px);
  display: block;
  object-fit: cover;
  transform: scale(1.018);
  transform-origin: center;
  filter: saturate(.98) brightness(.91);
  transition: transform .6s cubic-bezier(.2,.8,.2,1), filter .42s ease;
  will-change: transform;
}

.hero-visual.real-photo.is-in-view img {
  transform: scale(1.012);
  filter: saturate(1) brightness(.94);
}

  .hero-visual.real-photo::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
      radial-gradient(circle at 50% 42%, rgba(46,57,94,.02), rgba(46,57,94,.18) 66%, rgba(7,10,20,.36) 100%),
      linear-gradient(180deg, rgba(5,7,14,.02), rgba(5,7,14,.31));
    pointer-events: none;
  }

  .hero-visual.real-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background:
      radial-gradient(circle at var(--shine-x) var(--shine-y), rgba(255,255,255,.28), rgba(255,255,255,.08) 16%, transparent 34%),
      linear-gradient(90deg, rgba(255,255,255,.12), transparent 18%, transparent 84%, rgba(255,255,255,.10)),
      linear-gradient(180deg, rgba(255,255,255,.06), transparent 24%, transparent 80%, rgba(0,0,0,.10));
    opacity: .20;
    pointer-events: none;
    transition: opacity .35s ease;
  }

  .hero-visual.real-photo:hover::after {
    opacity: .28;
  }

  .hero-photo-caption {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: grid;
    place-items: center;
    padding: clamp(28px, 6vw, 86px);
    color: #fff;
    text-align: center;
    transform: translate3d(calc(var(--mx) * 3px), calc(var(--my) * 3px), 0);
    transition: transform .42s cubic-bezier(.2,.8,.2,1);
    will-change: transform;
  }

  .hero-photo-caption strong {
    display: block;
    font-size: clamp(42px, 6.55vw, 104px);
    line-height: .96;
    letter-spacing: -.07em;
    margin-bottom: 0;
    font-weight: 1000;
    text-shadow: 0 14px 42px rgba(0,0,0,.34);
  }

  .hero-photo-caption strong span {
    display: block;
    color: #fff;
    opacity: .98;
  }

  .hero-visual.real-photo.is-ready .hero-photo-caption strong span {
    animation: jgHeroLineIn .76s cubic-bezier(.2,.82,.2,1) both;
  }

  .hero-visual.real-photo.is-ready .hero-photo-caption strong span:nth-child(2) {
    animation-delay: .08s;
  }

  .hero-visual.real-photo.is-ready .hero-photo-caption strong span:nth-child(3) {
    animation-delay: .16s;
  }

  .hero-photo-caption strong span + span {
    margin-top: clamp(6px, .75vw, 13px);
  }

  .hero-photo-caption > span {
    display: block;
    max-width: 680px;
    margin-inline: auto;
    color: rgba(255,255,255,.82);
    font-weight: 850;
    line-height: 1.45;
    letter-spacing: -.035em;
    text-shadow: 0 8px 28px rgba(0,0,0,.36);
  }

  @keyframes jgHeroLineIn {
    from {
      opacity: .74;
      transform: translate3d(0, 14px, 0) scale(.992);
      filter: blur(5px);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0) scale(1);
      filter: blur(0);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .hero-visual.real-photo img,
    .hero-photo-caption,
    .hero-visual.real-photo.is-ready .hero-photo-caption strong span {
      transition: none;
      animation: none;
      transform: none;
    }
  }

  @media (max-width: 720px) {
    .hero-visual.real-photo {
      min-height: 520px;
      border-radius: 34px;
    }

    .hero-visual.real-photo img {
      min-height: 520px;
      transform: scale(1.006);
      will-change: auto;
    }

    .hero-photo-caption {
      align-items: end;
      padding-bottom: 46px;
      transform: none;
      will-change: auto;
    }

    .hero-photo-caption strong {
      font-size: clamp(44px, 14vw, 70px);
    }
  }


  .hero .hero-sub {
    max-width: 820px;
    margin-inline: auto;
  }

  .trust-row {
    margin-top: 28px;
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
  }

  .trust-pill {
    padding: 10px 14px;
    border: 1px solid rgba(46,57,94,.14);
    border-radius: 999px;
    color: rgba(21,21,21,.68);
    background: rgba(255,255,255,.72);
    font-weight: 850;
    font-size: 14px;
    letter-spacing: -.02em;
  }

  .split.pro-con {
    align-items: stretch;
  }

  .split.pro-con .card {
    min-height: 100%;
  }

  .micro-proof {
    margin-top: 28px;
    color: rgba(21,21,21,.58);
    font-weight: 800;
    letter-spacing: -.02em;
  }


 .urgency-note {
  width: min(780px, calc(100% - 32px));
  margin: 22px auto 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
  color: rgba(20, 22, 30, .58);
  font-size: .98rem;
  font-weight: 700;
  line-height: 1.55;
}

.urgency-note strong {
  color: #2e395e;
  font-weight: 900;
}

.urgency-note a {
  color: #2e395e;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 4px;
}

  @media (max-width: 720px) {
    .urgency-note {
      border-radius: 26px;
      font-size: 15px;
    }
  }



  /* ===== LOCATION CARDS + LOCATION MODAL - JIMGYM v2 ===== */
  .jg-location-showcase {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .location-card--photo {
    max-width: 1120px;
    margin-inline: auto;
    padding: clamp(24px, 3.5vw, 38px) !important;
    border-radius: clamp(34px, 5vw, 58px) !important;
    background: #2e395e !important;
    color: #fff !important;
    box-shadow: 0 30px 80px rgba(46,57,94,.16);
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, .75fr);
    align-items: stretch;
    gap: clamp(22px, 3vw, 36px);
    overflow: hidden;
  }

  .location-card-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 26px;
  }

  .location-card-photo {
    min-height: 100%;
    height: auto;
    max-height: 390px;
    overflow: hidden;
    border-radius: clamp(26px, 3vw, 40px);
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.16);
    align-self: stretch;
  }

  .location-card-photo img {
    width: 100%;
    height: 100%;
    min-height: 330px;
    display: block;
    object-fit: cover;
    filter: saturate(.98) brightness(.94);
    transform: scale(1.01);
  }

  .location-card-heading h3 {
    margin-bottom: 10px;
  }

  .location-card-heading p {
    margin: 0;
  }

  .location-card-text {
    max-width: 720px;
    margin-top: 22px;
    color: rgba(255,255,255,.76);
    line-height: 1.42;
    font-weight: 760;
    font-size: clamp(18px, 1.7vw, 23px);
    letter-spacing: -.035em;
  }

  .location-room-tags {
    margin-top: 26px !important;
  }

  .location-card-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 22px;
  }

  .location-card-facts span {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.16);
    color: rgba(255,255,255,.70);
    font-size: 13px;
    font-weight: 880;
    letter-spacing: -.02em;
  }

  .location-card-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
  }

  .location-card-actions .btn {
    min-height: 54px;
  }

  .location-modal-layout {
    margin-top: 26px;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(330px, .9fr);
    gap: 20px;
    align-items: start;
  }

  .location-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .location-gallery-grid img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 22px;
    border: 1px solid rgba(46,57,94,.10);
    background: #fff;
  }

  .location-modal-side {
    display: grid;
    gap: 14px;
    position: sticky;
    top: 12px;
  }

  .location-modal-info {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    text-align: left;
  }

  .location-modal-card {
    padding: 22px;
    border-radius: 26px;
    background: rgba(46,57,94,.055);
    border: 1px solid rgba(46,57,94,.12);
  }

  .location-modal-card h3,
  .location-equipment-columns h3 {
    margin: 0 0 12px;
    color: #2e395e;
    font-size: 20px;
    line-height: 1;
    letter-spacing: -.04em;
  }

  .location-modal-card p,
  .location-modal-card li,
  .location-equipment-details li,
  .location-equipment-note {
    color: rgba(21,21,21,.68);
    font-weight: 650;
    line-height: 1.55;
  }

  .location-modal-card ul,
  .location-equipment-details ul {
    margin: 0;
    padding-left: 18px;
  }

  .location-map-link {
    display: inline-flex;
    margin-top: 12px;
    color: #2e395e;
    font-weight: 950;
    text-decoration: none;
  }

  .location-map-embed {
    overflow: hidden;
    border-radius: 26px;
    border: 1px solid rgba(46,57,94,.12);
    background: #fff;
    aspect-ratio: 16 / 10;
  }

  .location-map-embed iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
  }

  .location-equipment-details {
    border-radius: 26px;
    border: 1px solid rgba(46,57,94,.12);
    background: #fff;
    overflow: hidden;
    text-align: left;
  }

  .location-equipment-details summary {
    cursor: pointer;
    padding: 20px 22px;
    color: #2e395e;
    font-weight: 950;
    font-size: 18px;
    list-style: none;
  }

  .location-equipment-details summary::-webkit-details-marker {
    display: none;
  }

  .location-equipment-details summary::after {
    content: "↓";
    float: right;
  }

  .location-equipment-details[open] summary::after {
    content: "↑";
  }

  .location-equipment-note {
    padding: 0 22px 16px;
  }

  .location-equipment-columns {
    padding: 0 22px 22px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  @media (max-width: 980px) {
    .location-card--photo,
    .location-modal-layout {
      grid-template-columns: 1fr;
    }

    .location-card-photo {
      order: -1;
      max-height: 280px;
    }

    .location-card-photo img {
      min-height: 250px;
    }

    .location-modal-side {
      position: static;
    }
  }

  @media (max-width: 620px) {
    .location-card--photo {
      padding: 18px !important;
      border-radius: 34px !important;
    }

    .location-card-photo {
      max-height: 220px;
      border-radius: 24px;
    }

    .location-card-photo img {
      min-height: 220px;
    }

    .location-card-actions .btn,
    .location-room-tags .tag {
      width: 100%;
      justify-content: center;
    }

    .location-gallery-grid,
    .location-equipment-columns {
      grid-template-columns: 1fr;
    }
  }


  /* ===== FINAL LOCATION CARD + SIMPLE MODAL OVERRIDE ===== */
  .jg-location-showcase {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
    gap: 22px !important;
    align-items: stretch;
  }

  .location-card--photo {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 34px !important;
    background: #2e395e !important;
    color: #fff !important;
    box-shadow: 0 24px 62px rgba(46,57,94,.14) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  .location-card-photo {
    width: 100% !important;
    height: 235px !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(255,255,255,.08) !important;
    cursor: pointer !important;
    overflow: hidden !important;
    display: block !important;
  }

  .location-card-photo img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    display: block !important;
    object-fit: cover !important;
    object-position: center !important;
    filter: saturate(.98) brightness(.95) !important;
    transform: none !important;
  }

  .location-card-body {
    padding: clamp(26px, 3vw, 36px) !important;
    display: flex !important;
    flex: 1 !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    gap: 28px !important;
  }

  .location-card-heading h3 {
    margin: 0 0 10px !important;
    font-size: clamp(38px, 4.8vw, 62px) !important;
    line-height: .9 !important;
    letter-spacing: -.08em !important;
  }

  .location-card-heading p {
    margin: 0 !important;
    font-size: clamp(20px, 2vw, 26px) !important;
    font-weight: 780 !important;
  }

  .location-card-rooms {
    margin-top: 24px;
    color: rgba(255,255,255,.82);
    font-size: 17px;
    font-weight: 900;
    letter-spacing: -.02em;
  }

  .location-card-text {
    max-width: 640px !important;
    margin-top: 18px !important;
    color: rgba(255,255,255,.72) !important;
    line-height: 1.45 !important;
    font-weight: 760 !important;
    font-size: clamp(17px, 1.45vw, 21px) !important;
    letter-spacing: -.035em !important;
  }

  .location-card-facts {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-top: 22px !important;
  }

  .location-card-facts span {
    display: inline-flex !important;
    align-items: center !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.10) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    color: rgba(255,255,255,.72) !important;
    font-size: 13px !important;
    font-weight: 880 !important;
  }

  .location-card-actions {
    display: flex !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
  }

  .location-card-actions .btn {
    min-height: 52px !important;
    padding-inline: 24px !important;
  }

  .location-gallery-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    padding: 28px;
    overflow: auto;
  }

  .location-gallery-modal.is-open {
    display: block;
  }

  .location-gallery-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(13,18,37,.62);
    backdrop-filter: blur(10px);
  }

  .location-gallery-box {
    position: relative;
    z-index: 1;
    width: min(1180px, 100%);
    margin: 0 auto;
    padding: clamp(24px, 3vw, 38px);
    border-radius: 34px;
    background: #f8f6f4;
    box-shadow: 0 30px 90px rgba(13,18,37,.28);
  }

  .location-gallery-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(46,57,94,.14);
    border-radius: 999px;
    background: #fff;
    color: #2e395e;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
  }

  .location-modal-layout {
    margin-top: 26px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr) !important;
    gap: 22px !important;
    align-items: start !important;
  }

  .location-gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  .location-gallery-grid a,
  .location-gallery-grid img {
    display: block !important;
    width: 100% !important;
  }

  .location-gallery-grid img {
    aspect-ratio: 4 / 3 !important;
    height: auto !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 20px !important;
    border: 1px solid rgba(46,57,94,.10) !important;
    background: #fff !important;
  }

  .location-modal-side {
    display: grid !important;
    gap: 14px !important;
    position: sticky !important;
    top: 18px !important;
  }

  @media (max-width: 900px) {
    .location-modal-layout {
      grid-template-columns: 1fr !important;
    }

    .location-modal-side {
      position: static !important;
    }
  }

  @media (max-width: 620px) {
    .jg-location-showcase {
      grid-template-columns: 1fr !important;
    }

    .location-card--photo {
      border-radius: 30px !important;
    }

    .location-card-photo {
      height: 220px !important;
    }

    .location-card-actions .btn {
      width: 100% !important;
      justify-content: center !important;
    }

    .location-gallery-modal {
      padding: 12px;
    }

    .location-gallery-box {
      border-radius: 28px;
      padding: 22px 16px;
    }

    .location-gallery-grid {
      grid-template-columns: 1fr !important;
    }

    .location-gallery-grid img {
      aspect-ratio: 16 / 10 !important;
      border-radius: 18px !important;
    }
  }


/* ===== JIMGYM LOCATION FINAL FIX 2026-06-01 ===== */
/* Menší, praktičtější karty lokací + normální fotky v popupu */

.jg-location-showcase{
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 18px !important;
  align-items: start !important;
}

.jg-location-showcase .location-card{
  min-height: 0 !important;
  height: auto !important;
  padding: 34px !important;
  border-radius: 34px !important;
}

.location-card--photo{
  min-height: 0 !important;
  height: auto !important;
  border-radius: 34px !important;
}

.location-card--photo .location-card-photo{
  height: 160px !important;
  min-height: 0 !important;
  max-height: 160px !important;
}

.location-card--photo .location-card-photo img{
  height: 100% !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
}

.location-card--photo .location-card-body{
  padding: 26px !important;
  gap: 22px !important;
  min-height: 0 !important;
}

.location-card--photo .kicker{
  margin-bottom: 14px !important;
  font-size: 12px !important;
  letter-spacing: .16em !important;
}

.location-card--photo .location-card-heading h3{
  font-size: clamp(38px, 4vw, 52px) !important;
  line-height: .92 !important;
  letter-spacing: -.075em !important;
}

.location-card--photo .location-card-heading p{
  font-size: 20px !important;
}

.location-card-rooms{
  margin-top: 18px !important;
  font-size: 15px !important;
}

.location-card-text{
  margin-top: 16px !important;
  font-size: 17px !important;
  line-height: 1.42 !important;
}

.location-card-facts{
  margin-top: 16px !important;
}

.location-card-facts span{
  padding: 7px 10px !important;
  font-size: 12px !important;
}

.location-card-actions{
  gap: 10px !important;
}

.location-card-actions .btn{
  min-height: 48px !important;
  padding-inline: 20px !important;
  font-size: 15px !important;
}

/* Popup: křížek pořád viditelný */
.location-gallery-close{
  position: fixed !important;
  top: 22px !important;
  right: 22px !important;
  z-index: 100002 !important;
  box-shadow: 0 14px 38px rgba(13,18,37,.20) !important;
}

/* Popup: jednoduchá galerie bez divných nudlí */
.location-gallery-grid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: start !important;
}

.location-gallery-grid a{
  display: block !important;
  width: 100% !important;
  overflow: hidden !important;
  border-radius: 20px !important;
  background: #fff !important;
  border: 1px solid rgba(46,57,94,.10) !important;
  box-shadow: 0 14px 34px rgba(46,57,94,.08) !important;
}

.location-gallery-grid img{
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 2 !important;
  object-fit: cover !important;
  object-position: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
}

/* Popup layout drží info vedle fotek na desktopu */
.location-modal-layout{
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr) !important;
  gap: 24px !important;
}

.location-modal-side{
  position: sticky !important;
  top: 18px !important;
}

@media (max-width: 900px){
  .location-modal-layout{
    grid-template-columns: 1fr !important;
  }

  .location-modal-side{
    position: static !important;
  }
}

@media (max-width: 620px){
  .jg-location-showcase .location-card{
    padding: 24px !important;
    border-radius: 28px !important;
  }

  .location-card--photo .location-card-photo{
    height: 150px !important;
    max-height: 150px !important;
  }

  .location-card--photo .location-card-body{
    padding: 24px !important;
  }

  .location-card--photo .location-card-heading h3{
    font-size: 42px !important;
  }

  .location-gallery-modal{
    padding: 12px !important;
  }

  .location-gallery-box{
    border-radius: 26px !important;
    padding: 22px 15px !important;
  }

  .location-gallery-close{
    top: 12px !important;
    right: 12px !important;
    width: 44px !important;
    height: 44px !important;
  }

  .location-gallery-grid{
    grid-template-columns: 1fr !important;
  }

  .location-gallery-grid img{
    aspect-ratio: 3 / 2 !important;
  }
}




/* ===== JIMGYM FINAL LOCATION TUNING v3 ===== */
/* Menší lokace karty + jednodušší popup galerie: 1 velká / 2 malé / 1 velká */

#lokace.section{
  max-width: 1160px !important;
  padding-left: 18px !important;
  padding-right: 18px !important;
}

.jg-location-showcase{
  grid-template-columns: repeat(3, minmax(240px, 1fr)) !important;
  gap: 16px !important;
  margin-top: 42px !important;
}

.jg-location-showcase .location-card{
  padding: 26px !important;
  border-radius: 30px !important;
  min-height: 0 !important;
  height: auto !important;
}

.location-card--photo{
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 30px !important;
}

.location-card--photo .location-card-photo{
  height: 168px !important;
  max-height: 168px !important;
  min-height: 0 !important;
  border-radius: 30px 30px 0 0 !important;
}

.location-card--photo .location-card-photo img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

.location-card--photo .location-card-body{
  padding: 22px !important;
  gap: 16px !important;
}

.location-card--photo .kicker{
  margin-bottom: 10px !important;
  font-size: 11px !important;
  letter-spacing: .16em !important;
}

.location-card--photo .location-card-heading h3{
  font-size: clamp(34px, 3vw, 44px) !important;
  line-height: .92 !important;
  letter-spacing: -.075em !important;
}

.location-card--photo .location-card-heading p{
  font-size: 18px !important;
  margin-top: 10px !important;
}

.location-card-rooms{
  margin-top: 14px !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
}

.location-card-text{
  margin-top: 13px !important;
  font-size: 15px !important;
  line-height: 1.42 !important;
}

.location-card-facts{
  margin-top: 14px !important;
  gap: 7px !important;
}

.location-card-facts span{
  padding: 6px 9px !important;
  font-size: 11.5px !important;
  line-height: 1.1 !important;
}

.location-card-actions{
  gap: 9px !important;
  margin-top: 4px !important;
}

.location-card-actions .btn{
  min-height: 44px !important;
  padding: 0 17px !important;
  font-size: 14px !important;
}

/* Připravované karty ať nejsou prázdný obří plachty */
.jg-location-showcase > .location-card:not(.location-card--photo){
  padding: 28px !important;
  min-height: 300px !important;
}

.jg-location-showcase > .location-card:not(.location-card--photo) h3{
  font-size: clamp(34px, 3vw, 44px) !important;
  line-height: .95 !important;
}

.jg-location-showcase > .location-card:not(.location-card--photo) p{
  font-size: 17px !important;
}

/* Popup: menší okraje, víc prostoru pro obsah */
.location-gallery-modal{
  padding: 18px !important;
}

.location-gallery-box{
  width: min(1080px, 100%) !important;
  padding: 22px !important;
  border-radius: 30px !important;
}

.location-modal-layout{
  grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr) !important;
  gap: 18px !important;
  margin-top: 20px !important;
}

/* Galerie: 1 velká, pod ní 2 malé, pod nimi 1 velká */
.location-gallery-grid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  align-items: start !important;
}

.location-gallery-grid a{
  display: block !important;
  width: 100% !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  border: 1px solid rgba(46,57,94,.10) !important;
  background: #fff !important;
  box-shadow: 0 12px 28px rgba(46,57,94,.07) !important;
}

.location-gallery-grid a:nth-child(1),
.location-gallery-grid a:nth-child(4){
  grid-column: 1 / -1 !important;
}

.location-gallery-grid img{
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 2 !important;
  object-fit: cover !important;
  object-position: center !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.location-gallery-grid a:nth-child(2) img,
.location-gallery-grid a:nth-child(3) img{
  aspect-ratio: 3 / 2 !important;
}

.location-modal-side{
  top: 14px !important;
  gap: 12px !important;
}

.location-modal-card,
.location-map-embed,
.location-equipment-details{
  border-radius: 22px !important;
}

.location-gallery-close{
  position: fixed !important;
  top: 18px !important;
  right: 18px !important;
  z-index: 100002 !important;
}

@media (max-width: 980px){
  .jg-location-showcase{
    grid-template-columns: 1fr !important;
  }

  .location-card--photo .location-card-photo{
    height: 220px !important;
    max-height: 220px !important;
  }

  .location-modal-layout{
    grid-template-columns: 1fr !important;
  }

  .location-modal-side{
    position: static !important;
  }
}

@media (max-width: 620px){
  #lokace.section{
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .location-card--photo .location-card-photo{
    height: 190px !important;
    max-height: 190px !important;
  }

  .location-card--photo .location-card-body{
    padding: 20px !important;
  }

  .location-card-actions .btn{
    width: 100% !important;
  }

  .location-gallery-modal{
    padding: 10px !important;
  }

  .location-gallery-box{
    padding: 16px !important;
    border-radius: 24px !important;
  }

  .location-gallery-grid{
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .location-gallery-grid a{
    grid-column: auto !important;
  }

  .location-gallery-grid img{
    aspect-ratio: 16 / 10 !important;
  }

  .location-gallery-close{
    top: 10px !important;
    right: 10px !important;
  }
}



/* ===== JIMGYM FINAL LOCATION TUNING v4 ===== */
/* Fotka v kartě přes celou šířku + popup CTA + vždy viditelný zavírací křížek */

.jg-location-showcase{
  align-items: stretch !important;
}

.location-card--photo{
  padding: 0 !important;
  overflow: hidden !important;
}

.location-card--photo .location-card-photo{
  display: block !important;
  width: 100% !important;
  height: 205px !important;
  max-height: 205px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 30px 30px 0 0 !important;
  overflow: hidden !important;
  line-height: 0 !important;
  cursor: pointer !important;
}

.location-card--photo .location-card-photo img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: 0 !important;
}

.location-card--photo .location-card-body{
  padding: 24px 24px 26px !important;
}

.location-card--photo .location-card-heading h3{
  font-size: clamp(38px, 3.4vw, 50px) !important;
}

.location-card--photo .location-card-heading p{
  font-size: 18px !important;
}

.location-card-text{
  max-width: 95% !important;
}

.location-gallery-box{
  position: relative !important;
}

.location-gallery-close{
  position: sticky !important;
  top: 14px !important;
  margin-left: auto !important;
  margin-bottom: -54px !important;
  width: 46px !important;
  height: 46px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 999px !important;
  border: 1px solid rgba(46,57,94,.16) !important;
  background: rgba(255,255,255,.94) !important;
  color: #2e395e !important;
  font-size: 30px !important;
  line-height: 1 !important;
  font-weight: 750 !important;
  box-shadow: 0 18px 45px rgba(29,39,70,.18) !important;
  z-index: 100005 !important;
  cursor: pointer !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.location-gallery-close:hover{
  transform: translateY(-1px) !important;
  background: #fff !important;
}

.location-modal-reserve{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 56px !important;
  padding: 0 22px !important;
  border-radius: 999px !important;
  background: #2e395e !important;
  color: #fff !important;
  font-size: 17px !important;
  font-weight: 950 !important;
  text-decoration: none !important;
  box-shadow: 0 18px 42px rgba(46,57,94,.18) !important;
}

.location-modal-reserve:hover{
  transform: translateY(-1px) !important;
  background: #1d2746 !important;
}

.location-modal-side{
  gap: 14px !important;
}

@media (max-width: 980px){
  .location-card--photo .location-card-photo{
    height: 230px !important;
    max-height: 230px !important;
  }

  .location-gallery-close{
    position: fixed !important;
    top: 14px !important;
    right: 14px !important;
    margin: 0 !important;
  }
}

@media (max-width: 620px){
  .location-card--photo .location-card-photo{
    height: 210px !important;
    max-height: 210px !important;
    border-radius: 24px 24px 0 0 !important;
  }

  .location-card--photo .location-card-body{
    padding: 22px !important;
  }

  .location-gallery-close{
    width: 44px !important;
    height: 44px !important;
    top: 10px !important;
    right: 10px !important;
    font-size: 28px !important;
  }
}


/* ===== FINAL V5: LOCATION CARDS LIKE SIMPLE PRIVATEGYM LOGIC ===== */
.jg-location-showcase{
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 22px !important;
  align-items: start !important;
}

.jg-location-showcase .location-card{
  min-height: 0 !important;
  border-radius: 28px !important;
  padding: 28px !important;
  align-self: start !important;
  box-shadow: 0 18px 46px rgba(46,57,94,.09) !important;
}

.jg-location-showcase .location-card--photo{
  padding: 0 !important;
  border-radius: 30px !important;
  overflow: hidden !important;
  max-width: none !important;
  min-height: 0 !important;
  background: #2e395e !important;
  color: #fff !important;
}

.jg-location-showcase .location-card-photo{
  width: 100% !important;
  height: 215px !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  display: block !important;
  background: rgba(255,255,255,.08) !important;
}

.jg-location-showcase .location-card-photo img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

.jg-location-showcase .location-card-body{
  padding: 28px !important;
  gap: 22px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

.jg-location-showcase .location-card-heading .kicker{
  margin-bottom: 14px !important;
  font-size: 11px !important;
  letter-spacing: .18em !important;
}

.jg-location-showcase .location-card-heading h3{
  font-size: clamp(38px, 4vw, 52px) !important;
  line-height: .92 !important;
  margin-bottom: 8px !important;
  letter-spacing: -.08em !important;
}

.jg-location-showcase .location-card-heading p{
  font-size: 19px !important;
  line-height: 1.2 !important;
}

.jg-location-showcase .location-card-rooms{
  margin-top: 18px !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
}

.jg-location-showcase .location-card-text{
  margin-top: 14px !important;
  font-size: 16px !important;
  line-height: 1.42 !important;
  max-width: none !important;
}

.jg-location-showcase .location-card-facts{
  margin-top: 17px !important;
  gap: 7px !important;
}

.jg-location-showcase .location-card-facts span{
  padding: 7px 10px !important;
  font-size: 12px !important;
}

.jg-location-showcase .location-card-actions{
  gap: 10px !important;
}

.jg-location-showcase .location-card-actions .btn{
  min-height: 46px !important;
  padding: 0 20px !important;
  font-size: 15px !important;
  border-radius: 999px !important;
}

/* připravované lokace jako jednoduché karty, ne obří prázdné plakáty */
.jg-location-showcase > .location-card:not(.location-card--photo){
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  background: rgba(255,255,255,.72) !important;
}

.jg-location-showcase > .location-card:not(.location-card--photo) h3{
  font-size: clamp(34px, 3.4vw, 46px) !important;
  line-height: .94 !important;
  letter-spacing: -.07em !important;
  margin: 0 0 12px !important;
}

.jg-location-showcase > .location-card:not(.location-card--photo) p{
  font-size: 18px !important;
  line-height: 1.35 !important;
  margin: 0 0 20px !important;
}

.jg-location-showcase > .location-card:not(.location-card--photo) .tags{
  gap: 8px !important;
}

.jg-location-showcase > .location-card:not(.location-card--photo) .tag{
  padding: 8px 11px !important;
  font-size: 12px !important;
}

@media (min-width: 1040px){
  .jg-location-showcase{
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px){
  .jg-location-showcase{
    grid-template-columns: 1fr !important;
  }

  .jg-location-showcase .location-card-photo{
    height: 205px !important;
  }

  .jg-location-showcase .location-card-body{
    padding: 24px !important;
  }

  .jg-location-showcase .location-card-actions{
    display: grid !important;
    grid-template-columns: 1fr 96px !important;
  }

  .jg-location-showcase .location-card-actions .btn{
    width: 100% !important;
  }
}

