/* LocalGymsAndFitness identity. Shared directory behavior lives in directory-shared.css. */
body.site-localgymsandfitness,
body.fitness-directory-account-header {
  --fitness-navy: #24212d;
  --fitness-accent: #673ab7;
  --fitness-accent-dark: #4c288a;
  --fitness-ink: #302c38;
  --fitness-muted: #665f70;
  --fitness-border: #ded9e6;
  --fitness-surface: #f8f7fa;
  --directory-marker-background: var(--fitness-accent);
  --directory-action-color: var(--fitness-accent);
  --dashboard-accent: var(--fitness-accent);
  --dashboard-accent-deep: var(--fitness-accent-dark);
  --bhc-green: var(--fitness-accent);
  --bhc-green-dark: var(--fitness-accent-dark);
  --cr-green: var(--fitness-accent);
  --cr-green-dark: var(--fitness-accent-dark);
  --la-accent: var(--fitness-accent-dark);
  --la-accent-bright: var(--fitness-accent);
  --la-accent-soft: var(--fitness-surface);
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--fitness-ink);
  background: var(--fitness-surface);
  font-size: 16px;
  line-height: 1.65;
}
.site-localgymsandfitness :is(h1,h2,h3,h4,h5,h6) { font-family: inherit; letter-spacing: -.02em; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) :focus-visible { outline: 3px solid #673ab7 !important; outline-offset: 4px; }
.site-localgymsandfitness a { color: var(--fitness-accent); text-underline-offset: .2em; }
.site-localgymsandfitness .g-pt-85 > section .g-color-primary { color: #fff !important; }
.site-localgymsandfitness #js-header .hamburger-inner::before,
.site-localgymsandfitness #js-header .hamburger-inner::after,
.fitness-directory-account-header #js-header .hamburger-inner::before,
.fitness-directory-account-header #js-header .hamburger-inner::after { background-color: var(--fitness-navy) !important; }
.site-localgymsandfitness .directory-category-group a { color: var(--fitness-ink); font-size: 14px; }
.site-localgymsandfitness .directory-category-group summary { color: var(--fitness-navy); }
.site-localgymsandfitness .directory-category-group { border-bottom: 1px solid var(--fitness-border); }
.site-localgymsandfitness .feature-purchase { background: var(--fitness-surface) !important; padding: 110px 0 48px !important; text-shadow: none !important; }
.site-localgymsandfitness .feature-purchase__panel { opacity: 1 !important; }
.site-localgymsandfitness .feature-purchase__panel { overflow-wrap: anywhere; }
.site-localgymsandfitness .feature-purchase__panel .btn { white-space: normal; max-width: 100%; }
.site-localgymsandfitness .feature-purchase__panel :is(h1,h2,h3,h4) { font-weight: 650 !important; }
.site-localgymsandfitness .feature-purchase__panel { background: #fff !important; border: 1px solid var(--fitness-border); border-radius: 12px !important; padding: 28px !important; margin: 0; }
.site-localgymsandfitness .feature-purchase__panel > .col-lg-1 { display: none; }
.site-localgymsandfitness .feature-purchase__panel > .col-lg-8 { flex: 0 0 100%; max-width: 100%; }
.site-localgymsandfitness .feature-purchase__panel :is(h1,h2,h3,h4) { color: var(--fitness-navy) !important; text-transform: none !important; line-height: 1.3 !important; }
.site-localgymsandfitness .feature-purchase__panel :is(p,li,.g-color-white-opacity-0_8,.g-color-white-opacity-0_9) { color: var(--fitness-ink) !important; text-shadow: none !important; }
.site-localgymsandfitness .feature-single-location-options { background: var(--fitness-surface) !important; border: 1px solid var(--fitness-border); }
.site-localgymsandfitness .feature-purchase__panel .g-color-red { color: var(--fitness-ink) !important; }
.site-localgymsandfitness .feature-purchase__panel :is(.wrap,.wrap2) { border: 1px solid var(--fitness-border); border-radius: 10px; }
.site-localgymsandfitness .admin-entry-hero,
.fitness-directory-account-header .account-login-hero { background: var(--fitness-navy) !important; border-radius: 12px; box-shadow: none; }
.site-localgymsandfitness .admin-entry-hero::after,
.fitness-directory-account-header .account-login-hero::after { background: none !important; }
.site-localgymsandfitness .admin-entry-points i,
.fitness-directory-account-header .account-login-points i { color: #fff !important; background: #ffffff18 !important; }
.site-localgymsandfitness .admin-entry-cta,
.fitness-directory-account-header #firebaseui-auth-container .firebaseui-idp-button { background: var(--fitness-accent) !important; color: #fff !important; box-shadow: none !important; }
.fitness-directory-account-header .dashboard-shell { --dashboard-accent: var(--fitness-accent); --dashboard-accent-deep: var(--fitness-accent-dark); }
.fitness-directory-account-header :is(.fl-btn-primary,.account-featured-map__purchase,.admin-studio-stage__preview-badge) { color: #fff !important; background: var(--fitness-accent) !important; }
.fitness-directory-account-header .account-login-card,
.site-localgymsandfitness .admin-entry-card { border: 1px solid var(--fitness-border); border-radius: 12px; box-shadow: none; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) #js-header .u-header__section {
  background: #fff !important; border-bottom: 1px solid var(--fitness-border); box-shadow: 0 2px 8px #24212d0a;
}
:is(.site-localgymsandfitness,.fitness-directory-account-header) #js-header .navbar-brand img { width: 272px; height: auto; max-width: 100%; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) #js-header .nav-link { color: var(--fitness-navy) !important; font-weight: 650; font-size: 13px; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) #js-header .nav-link:hover { color: var(--fitness-accent) !important; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) #js-header :is(.hamburger-inner,.hamburger-inner::before,.hamburger-inner::after) { background: var(--fitness-navy) !important; }
.site-localgymsandfitness :is(.g-bg-primary,.g-bg-primary--hover:hover,.g-bg-primary-dark-v1,.g-bg-primary-dark-v2,.g-bg-primary-dark-v3) { background-color: var(--fitness-accent) !important; }
.site-localgymsandfitness a.btn.u-btn-darkgray,
.site-localgymsandfitness a.btn.u-btn-darkgray:hover,
.site-localgymsandfitness a.btn.u-btn-darkgray:focus { color: #fff !important; }
.site-localgymsandfitness :is(.g-color-primary,.g-color-primary--hover:hover) { color: var(--fitness-accent) !important; }
.site-localgymsandfitness :is(.g-brd-primary,.g-brd-primary--focus:focus) { border-color: var(--fitness-accent) !important; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) :is(.u-btn-primary,.btn-primary,.u-btn-teal) {
  color: #fff !important; background: var(--fitness-accent) !important; border-color: var(--fitness-accent) !important;
  border-radius: 10px; font-weight: 650; transition: background-color 160ms ease, box-shadow 160ms ease;
}
:is(.site-localgymsandfitness,.fitness-directory-account-header) :is(.u-btn-primary,.btn-primary,.u-btn-teal):hover { background: var(--fitness-accent-dark) !important; border-color: var(--fitness-accent-dark) !important; }
.site-localgymsandfitness .g-pt-85 > section { padding: 54px 0 !important; }
.site-localgymsandfitness .g-bg-black-opacity-0_5--after::after { background: rgba(36,33,45,.65) !important; }
.site-localgymsandfitness .g-pt-85 h1 { font-size: clamp(28px,3.2vw,44px) !important; font-weight: 650 !important; text-transform: none !important; line-height: 1.2; max-width: 850px; }
.site-localgymsandfitness .directory-hero-search { max-width: 900px; }
.site-localgymsandfitness .form-control { background: #fff; color: var(--fitness-ink); border: 1px solid #aaa0b6; border-radius: 10px; min-height: 48px; font: inherit; }
.site-localgymsandfitness .form-control::placeholder { color: var(--fitness-muted); opacity: 1; }
.site-localgymsandfitness .form-control:focus { border-color: var(--fitness-accent); box-shadow: 0 0 0 3px #673ab720; }
.site-localgymsandfitness .directory-hero-search .form-control { min-height: 56px; }
.site-localgymsandfitness .lead { color: var(--fitness-ink); font-size: 17px; line-height: 1.7; }
.site-localgymsandfitness :is(.directory-results article,article.u-shadow-v19) {
  border: 1px solid var(--fitness-border); border-radius: 12px !important; box-shadow: none !important; padding: 20px !important;
}
.site-localgymsandfitness .directory-results article { height: 100%; }
.site-localgymsandfitness article :is(h3,h3 a) { color: var(--fitness-navy) !important; font-size: 16px !important; text-transform: none !important; line-height: 1.4; }
.site-localgymsandfitness article h4 { color: var(--fitness-muted); font-size: 13px !important; text-transform: none !important; line-height: 1.5; margin-bottom: 0 !important; }
.site-localgymsandfitness article .g-rounded-50x { border-radius: 10px !important; object-fit: contain; max-width: 100%; height: auto; }
.site-localgymsandfitness article.u-shadow-v19.g-bg-primary { background: #f0eafa !important; border: 1px solid #a896c5 !important; border-left: 4px solid var(--fitness-accent) !important; }
.site-localgymsandfitness article.u-shadow-v19.g-bg-primary .directory-sponsored-label { display: inline-block; padding: 3px 9px; margin-bottom: 10px; border: 1px solid #a896c5; border-radius: 4px; background: #fff; }
.site-localgymsandfitness article.u-shadow-v19 h4 { color: var(--fitness-ink) !important; }
.site-localgymsandfitness .directory-sponsored-label { color: var(--fitness-ink) !important; font-size: 12px; font-weight: 600; letter-spacing: .03em; }
.site-localgymsandfitness .directory-secondary-list a { color: var(--fitness-ink); }
.site-localgymsandfitness .directory-secondary-list a:hover { color: var(--fitness-accent); text-decoration: underline; }
.site-localgymsandfitness :is(.directory-list-toggle,.directory-results-toggle) { color: var(--fitness-accent); border-color: var(--fitness-border); border-radius: 10px; font-weight: 650; }
.site-localgymsandfitness :is(.mapbox,.mapbox_mob,#map) { border-radius: 12px; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) :is(.directory-notice,.directory-provenance) { border-top: 1px solid var(--fitness-border); background: #fff; color: var(--fitness-ink); padding: 22px 0; font-size: 14px; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) .directory-notice p { margin: 0; max-width: 85ch; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) .directory-provenance p { max-width: 85ch; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) footer { background: var(--fitness-navy) !important; color: #ded9e6 !important; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) footer :is(a,.g-color-white-opacity-0_6) { color: #ded9e6 !important; }
:is(.site-localgymsandfitness,.fitness-directory-account-header) footer a:hover { color: #fff !important; text-decoration: underline; }
.site-localgymsandfitness :is(.u-btn-outline-primary,.u-pagination-v1-4--active) { color: var(--fitness-accent); border-color: var(--fitness-accent); }
.site-localgymsandfitness :is(.u-btn-outline-primary:hover,.u-pagination-v1-4--active) { background: var(--fitness-accent); color: #fff; }
.site-localgymsandfitness li.g-bg-primary.g-brd-gray-light-v4 { color: var(--fitness-ink) !important; background: #f0edf5 !important; }
.site-localgymsandfitness li.g-bg-primary a { color: var(--fitness-navy) !important; }
.site-localgymsandfitness :is(.g-bg-primary.g-color-black,.g-bg-primary.g-color-black:hover) { color: #fff !important; }
.site-localgymsandfitness :is(.page-country_single,.page-country_index) .btn { text-transform: none; }
.site-localgymsandfitness article.u-shadow-v19.g-bg-primary.directory-promotion {
  background: var(--fitness-navy) !important;
  border: 1px solid var(--fitness-navy) !important;
  padding: 16px !important;
  align-items: flex-start !important;
}
.site-localgymsandfitness .directory-promotion-image { display: none; }
.site-localgymsandfitness article.directory-promotion header h3 {
  color: #fff !important;
  font-size: 15px !important;
  line-height: 1.4;
  margin-bottom: 12px;
}
.site-localgymsandfitness .directory-promotion .directory-promotion-link {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  max-width: 100%;
  padding: 8px 12px;
  border-radius: 8px;
  background: #fff;
  color: var(--fitness-navy) !important;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.5;
  text-decoration: none;
  transition: background-color 160ms ease;
}
.site-localgymsandfitness .directory-promotion .directory-promotion-link:hover { background: #f0eafa; }
.site-localgymsandfitness .directory-promotion .directory-promotion-link:focus-visible { outline-color: #fff !important; }
/* Keep navigation and location context compact enough to reach the listings. */
.site-localgymsandfitness:is(.page-index,.page-town,.page-genre,.page-item) .g-pt-85 > section { padding: 32px 0 !important; }
.site-localgymsandfitness:is(.page-index,.page-town,.page-genre) #map { height: 280px !important; }
.site-localgymsandfitness:is(.page-index,.page-town,.page-genre) .lead { margin-bottom: 10px; font-size: 16px; line-height: 1.5; }
.site-localgymsandfitness.page-item :is(.u-divider__icon,.u-heading-v1-4,.u-heading-v1__title) { background-color: var(--fitness-surface) !important; }
.site-localgymsandfitness .autocomplete .autocomplete-items { color: var(--fitness-ink); text-shadow: none; }
.site-localgymsandfitness .autocomplete .autocomplete-items > div { color: var(--fitness-ink); background: #fff; }
.site-localgymsandfitness .autocomplete .autocomplete-items > div:hover { background: #f0eafa; }
.site-localgymsandfitness .autocomplete .autocomplete-items > .autocomplete-active { background: var(--fitness-accent) !important; color: #fff !important; }
.site-localgymsandfitness #map { isolation: isolate; }
.site-localgymsandfitness .directory-provider-intro { min-height: 88px; }
.site-localgymsandfitness .directory-provider-intro img { width: 88px !important; height: 88px; object-fit: cover; }
.site-localgymsandfitness.page-item .u-divider.g-my-30 { margin-top: 12px !important; margin-bottom: 18px !important; }
.site-localgymsandfitness .directory-policy-intro { padding-top: 120px !important; padding-bottom: 32px !important; }
.site-localgymsandfitness .directory-policy-intro .col-lg-6 { flex: 0 0 100%; max-width: 76ch; }
.site-localgymsandfitness .directory-policy-intro h1 { color: var(--fitness-navy) !important; font-size: clamp(28px,3vw,38px) !important; line-height: 1.2 !important; }
.site-localgymsandfitness .directory-policy-intro .g-bg-black { background: var(--fitness-accent) !important; }
.site-localgymsandfitness .directory-policy-sections { background: var(--fitness-surface) !important; }
.site-localgymsandfitness .directory-policy-sections > .container { padding-top: 0 !important; padding-bottom: 40px !important; }
.site-localgymsandfitness .directory-policy-sections #stickyblock-start li { background: transparent !important; padding: 0 !important; }
.site-localgymsandfitness .directory-policy-link { color: var(--fitness-navy) !important; padding: 12px 14px !important; font-size: 14px !important; text-transform: none !important; border-bottom: 1px solid var(--fitness-border); }
.site-localgymsandfitness .directory-policy-link:hover { color: #fff !important; }
.site-localgymsandfitness .directory-policy-content > [id] { padding: 24px !important; margin-bottom: 24px !important; box-shadow: none !important; border: 1px solid var(--fitness-border); }
.site-localgymsandfitness .directory-policy-content :is(h2,h3) { color: var(--fitness-navy) !important; }
@media (max-width: 575px) {
  :is(.site-localgymsandfitness,.fitness-directory-account-header) #js-header .navbar-brand img { width: 225px; }
  .site-localgymsandfitness .g-pt-85 > section { padding: 32px 0 !important; }
  .site-localgymsandfitness .directory-hero-search .autocomplete + .autocomplete { margin-top: 12px; }
  .site-localgymsandfitness article .g-max-width-100 { max-width: 64px !important; margin-right: 14px !important; }
  .site-localgymsandfitness:is(.page-index,.page-town,.page-genre,.page-item) .g-pt-85 > section { padding: 22px 0 !important; }
  .site-localgymsandfitness:is(.page-index,.page-town,.page-genre) #map { height: 200px !important; }
  .site-localgymsandfitness .directory-policy-intro { padding-top: 104px !important; padding-bottom: 24px !important; }
  .site-localgymsandfitness .directory-policy-content > [id] { padding: 18px !important; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.site-localgymsandfitness,.fitness-directory-account-header) *,
  :is(.site-localgymsandfitness,.fitness-directory-account-header) *::before,
  :is(.site-localgymsandfitness,.fitness-directory-account-header) *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Fitness identity: athletic geometry, compact results, visible search focus. */
.site-localgymsandfitness :is(article.u-shadow-v19,.form-control,.directory-promotion-link) { border-radius: 6px !important; }
.site-localgymsandfitness.page-index .g-pt-85 > section { background-image: url('/img/localgymsandfitness/1920x800/training.jpg') !important; }
.site-localgymsandfitness .g-pt-85 h1 { font-weight: 750 !important; letter-spacing: -.035em; }
.site-localgymsandfitness .directory-result-content { min-width: 0; }
.site-localgymsandfitness .directory-promotion-link { transition: background-color 160ms ease, box-shadow 160ms ease; }
.site-localgymsandfitness .directory-policy-link { transition: background-color 160ms ease; }
.site-localgymsandfitness .feature-purchase__panel :is(h3,h4) { font-size: clamp(22px,2.4vw,30px) !important; }
