/** Shopify CDN: Minification failed

Line 502:0 Unexpected "}"
Line 4740:1 Expected "}" to go with "{"

**/
/* =========================
   MAPGYM — Tech Minimal Base
   Color: #222d57
   Font: Poppins (se cargará aparte)
   Prefix: mapgym-
========================= */

:root{
  /* Colors */
  --mapgym-bg: #ffffff;
  --mapgym-primary: #222d57;
  --mapgym-text: #0f1220;
  --mapgym-muted: #5b6075;
  --mapgym-border: #e7e9f1;

  /* Layout */
  --mapgym-max: 1180px;
  --mapgym-pad: 20px;
  --mapgym-section-y: 64px;
  --mapgym-radius: 18px;

  /* Typography */
  --mapgym-font: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --mapgym-font-heading: var(--mapgym-font);

  /* UI */
  --mapgym-btn-h: 48px;
  --mapgym-btn-r: 999px;
}

/* Base reset (solo para componentes MAPGYM) */
.mapgym-scope{
  font-family: var(--mapgym-font);
  color: var(--mapgym-text);
}

.mapgym-wrap{
  max-width: var(--mapgym-max);
  margin: 0 auto;
  padding: 0 var(--mapgym-pad);
}

.mapgym-section{
  padding: var(--mapgym-section-y) 0;
  background: var(--mapgym-bg);
}

.mapgym-eyebrow{
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 12px;
  color: var(--mapgym-muted);
}

.mapgym-h1, .mapgym-h2, .mapgym-h3{
  font-family: var(--mapgym-font-heading);
  color: var(--mapgym-text);
  margin: 0;
  line-height: 1.12;
}

.mapgym-h1{ font-size: clamp(32px, 4.2vw, 54px); font-weight: 700; }
.mapgym-h2{ font-size: clamp(24px, 3vw, 38px); font-weight: 700; }
.mapgym-h3{ font-size: 20px; font-weight: 600; }

.mapgym-p{
  margin: 0;
  color: var(--mapgym-muted);
  font-size: 16px;
  line-height: 1.6;
}

.mapgym-card{
  border: 1px solid var(--mapgym-border);
  border-radius: var(--mapgym-radius);
  padding: 18px;
  background: #fff;
}

.mapgym-grid{
  display: grid;
  gap: 18px;
}

@media (min-width: 750px){
  :root{ --mapgym-pad: 24px; --mapgym-section-y: 76px; }
}

/* Buttons */
.mapgym-btn{
  height: var(--mapgym-btn-h);
  border-radius: var(--mapgym-btn-r);
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: transform .12s ease, opacity .12s ease, background-color .12s ease, border-color .12s ease;
  user-select: none;
}

.mapgym-btn:active{ transform: translateY(1px); }

.mapgym-btn--primary{
  background: var(--mapgym-primary);
  color: #fff;
  border: 1px solid var(--mapgym-primary);
}

.mapgym-btn--ghost{
  background: transparent;
  color: var(--mapgym-primary);
  border: 1px solid var(--mapgym-primary);
}

.mapgym-btn:hover{ opacity: .92; }

/* Links */
.mapgym-link{
  color: var(--mapgym-primary);
  text-decoration: none;
}
.mapgym-link:hover{ text-decoration: underline; }

/* Helpers */
.mapgym-hide{ display:none !important; }
/* =========================
   MAPGYM Hero
========================= */
.mapgym-hero{
  position: relative;
  padding: 84px 0;
  color: #fff;
  overflow: hidden;
  background: linear-gradient(135deg, #222d57 0%, #141b36 55%, #0f1220 100%);
}

.mapgym-hero .mapgym-eyebrow{ color: rgba(255,255,255,.75); }
.mapgym-hero .mapgym-h1{ color:#fff; }
.mapgym-hero .mapgym-p{ color: rgba(255,255,255,.85); }

.mapgym-hero__inner{
  max-width: 760px;
}

.mapgym-hero__sub{
  margin-top: 14px;
  font-size: 18px;
}

.mapgym-hero__cta{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.mapgym-hero .mapgym-btn--ghost{
  color: #fff;
  border-color: rgba(255,255,255,.8);
}

.mapgym-hero .mapgym-btn--ghost:hover{
  border-color: #fff;
}

.mapgym-hero__note{
  margin-top: 16px;
  font-size: 14px;
  color: rgba(255,255,255,.75);
}

.mapgym-hero__note p{ margin: 0; }

@media (min-width: 750px){
  .mapgym-hero{ padding: 110px 0; }
  .mapgym-hero__sub{ font-size: 19px; }
}
.mapgym-hero__title{
  max-width: 22ch;
  text-wrap: balance;
}
.mapgym-hero .mapgym-btn--primary:hover{ opacity: 0.95; }
.mapgym-hero .mapgym-btn--ghost:hover{ background: rgba(255,255,255,.08); }
@media (max-width: 749px){
  .mapgym-hero{ padding: 72px 0; }
}
/* =========================
   MAPGYM Plans (grid + carrusel móvil)
========================= */
.mapgym-plans__head{
  display: grid;
  gap: 10px;
  max-width: 760px;
}

.mapgym-plans__sub{ margin-top: 4px; }

.mapgym-plans__rail{
  position: relative;
  margin-top: 22px;
}

.mapgym-plans__grid{
  display: grid;
  gap: 16px;
}

.mapgym-plan{
  position: relative;
  display: grid;
  grid-template-rows: auto auto 1fr auto auto;
  gap: 14px;
  padding: 20px;
}

.mapgym-plan__title-row{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.mapgym-plan__badge{
  font-size: 12px;
  color: var(--mapgym-primary);
  border: 1px solid var(--mapgym-border);
  background: #fff;
  padding: 6px 10px;
  border-radius: 999px;
  white-space: nowrap;
}

.mapgym-plan__price{
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 6px;
}

.mapgym-plan__amount{
  font-weight: 800;
  font-size: 34px;
  letter-spacing: -0.02em;
  color: var(--mapgym-text);
}

.mapgym-plan__period{
  color: var(--mapgym-muted);
  font-size: 14px;
}

.mapgym-plan__desc{ margin-top: 6px; }

.mapgym-plan__list{
  list-style: none;
  padding: 0;
  margin: 6px 0 0;
  display: grid;
  gap: 10px;
}

.mapgym-plan__item{
  display: grid;
  grid-template-columns: 14px 1fr;
  gap: 10px;
  align-items: start;
  color: var(--mapgym-text);
  font-size: 14px;
  line-height: 1.45;
}

.mapgym-plan__dot{
  width: 10px;
  height: 10px;
  margin-top: 3px;
  border-radius: 999px;
  background: var(--mapgym-primary);
}

.mapgym-plan__cta{ margin-top: 6px; }
.mapgym-plan__note{ font-size: 12px; color: var(--mapgym-muted); margin-top: -6px; }

.mapgym-plan.is-featured{
  border-color: rgba(34,45,87,.25);
  box-shadow: 0 10px 30px rgba(15,18,32,.08);
}

.mapgym-plans__bottom{
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid var(--mapgym-border);
  border-radius: var(--mapgym-radius);
  color: var(--mapgym-muted);
  background: #fff;
}
.mapgym-plans__bottom p{ margin: 0; }
.mapgym-plans__bottom strong{ color: var(--mapgym-text); }

/* Flechas carrusel (solo móvil) */
.mapgym-plans__arrow{
  display: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid var(--mapgym-border);
  background: #fff;
  color: var(--mapgym-primary);
  font-size: 22px;
  line-height: 1;
  z-index: 2;
  cursor: pointer;
}

.mapgym-plans__arrow--left{ left: -6px; }
.mapgym-plans__arrow--right{ right: -6px; }

/* MÓVIL: carrusel horizontal */
@media (max-width: 899px){
  @media (max-width: 899px){
  .mapgym-plans__grid{
    grid-auto-columns: 96%;
    overflow-x: auto;
    padding: 6px 44px;     /* un poco más de padding para que no choque con flechas */
    scroll-snap-type: x mandatory;
    scroll-padding-left: 44px;
    -webkit-overflow-scrolling: touch;
  }
}
  .mapgym-plan{
    scroll-snap-align: start;
    min-height: 100%;
  }
  .mapgym-plans__grid::-webkit-scrollbar{ display:none; }
}

/* DESKTOP: grid 4 columnas */
@media (min-width: 900px){
  .mapgym-plans__grid{
    grid-template-columns: repeat(4, 1fr);
    align-items: stretch;
  }
}
/* Evita cortes feos en el título del plan */
.mapgym-plan__title{
  text-wrap: balance;
}

/* Si quieres forzar que nunca parta: descomenta */
/*
.mapgym-plan__title{
  white-space: nowrap;
}
*/
/* =========================
   MAPGYM Modal (FIX móvil)
========================= */
.mapgym-modal[hidden]{ display:none !important; }

.mapgym-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  padding: 16px;
}

.mapgym-modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(15,18,32,.55);
}

/* CENTRADO REAL + scroll interno */
.mapgym-modal__panel{
  position: relative;
  max-width: 520px;
  width: 100%;
  margin: 0;
  background: #fff;
  border-radius: 20px;
  border: 1px solid var(--mapgym-border);
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
  overflow: hidden;

  /* clave */
  max-height: min(84vh, 720px);
  overflow: auto;

  /* centrado */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.mapgym-modal__content{
  padding: 18px;
  display: grid;
  gap: 10px;
}

.mapgym-modal__close{
  position: sticky; /* se queda visible si hay scroll */
  top: 10px;
  margin-left: auto;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 1px solid var(--mapgym-border);
  background: #fff;
  color: var(--mapgym-text);
  font-size: 22px;
  cursor: pointer;
  z-index: 2;
}

.mapgym-modal__submit{
  width: 100%;
  margin-top: 6px;
}

/* iPhone: asegura espacio */
@media (max-width: 749px){
  .mapgym-modal{
    padding: 12px;
  }
  .mapgym-modal__panel{
    max-height: 86vh;
  }
}

/* Bloqueo de scroll (mejor iOS) */
.mapgym-modal-open,
.mapgym-modal-open body{
  overflow: hidden;
}
/* =========================
   FIX: Carrusel planes en móvil + flechas
   (pegar al FINAL del mapgym.css)
========================= */
@media (max-width: 899px){
  /* fuerza a que sea carrusel horizontal */
  .mapgym-plans__grid{
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: 96% !important;  /* casi full */
    gap: 16px !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    padding: 6px 18px !important;      /* menos hueco raro */
    scroll-snap-type: x mandatory !important;
    scroll-padding-left: 18px !important;
    -webkit-overflow-scrolling: touch;
  }

  .mapgym-plan{
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  /* oculta scrollbar iOS/Chrome */
  .mapgym-plans__grid::-webkit-scrollbar{ display:none; }

  /* muestra flechas sí o sí */
  .mapgym-plans__arrow{
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  /* flechas encima, sin empujar */
  .mapgym-plans__arrow--left{ left: 8px; }
  .mapgym-plans__arrow--right{ right: 8px; }
}

  .mapgym-plan{
    scroll-snap-align: start;
  }

  /* oculta scrollbar iOS/Chrome */
  .mapgym-plans__grid::-webkit-scrollbar{ display: none; }

  /* muestra flechas sí o sí */
  .mapgym-plans__arrow{
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }
}

/* si quieres aún más ancho en móvil, cambia 92% por 96% */
/* =========================
   MAPGYM Steps (FAQ visual)
========================= */
.mapgym-steps__head{
  display: grid;
  gap: 10px;
  max-width: 760px;
}

.mapgym-steps__sub{ margin-top: 4px; }

.mapgym-steps__grid{
  display: grid;
  gap: 16px;
  margin-top: 22px;
}

@media (min-width: 900px){
  .mapgym-steps__grid{
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
  }
}

.mapgym-step{
  padding: 20px;
  display: grid;
  gap: 12px;
}

.mapgym-step__kicker{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.mapgym-step__num{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--mapgym-muted);
}

.mapgym-step__badge{
  font-size: 12px;
  color: var(--mapgym-primary);
  border: 1px solid rgba(34,45,87,.18);
  background: rgba(34,45,87,.06);
  padding: 6px 10px;
  border-radius: 999px;
  white-space: nowrap;
}

.mapgym-step__text{
  margin-top: 4px;
}

.mapgym-step__note{
  margin-top: -4px;
  font-size: 12px;
  color: var(--mapgym-muted);
}
.mapgym-step__note p{ margin: 0; }

.mapgym-steps__cta{
  margin-top: 18px;
}

/* Animación ligera (se activa con JS) */
.mapgym-reveal{
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .45s ease, transform .45s ease;
}

.mapgym-reveal.is-in{
  opacity: 1;
  transform: translateY(0);
}

/* Respeto a accesibilidad */
@media (prefers-reduced-motion: reduce){
  .mapgym-reveal{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
/* =========================
   MAPGYM Steps — Dark / Gradient
========================= */
.mapgym-steps.is-dark{
  color: #fff;
  background:
    radial-gradient(900px 420px at 15% 10%, rgba(76, 98, 255, .38) 0%, rgba(76, 98, 255, 0) 60%),
    radial-gradient(820px 380px at 85% 30%, rgba(34, 45, 87, .65) 0%, rgba(34, 45, 87, 0) 55%),
    radial-gradient(900px 500px at 50% 110%, rgba(12, 18, 48, .85) 0%, rgba(12, 18, 48, 0) 60%),
    linear-gradient(135deg, #222d57 0%, #121833 55%, #0b0f22 100%);
}

.mapgym-steps.is-dark .mapgym-eyebrow{
  color: rgba(255,255,255,.75);
}

.mapgym-steps.is-dark .mapgym-h2{
  color: #fff;
}

.mapgym-steps.is-dark .mapgym-steps__sub{
  color: rgba(255,255,255,.85);
}

/* Tarjetas blancas para contraste */
.mapgym-steps.is-dark .mapgym-card{
  background: #fff;
  border-color: rgba(255,255,255,.18);
}

/* Dentro de tarjetas, volvemos a colores normales */
.mapgym-steps.is-dark .mapgym-card .mapgym-h3{
  color: var(--mapgym-text);
}
.mapgym-steps.is-dark .mapgym-card .mapgym-p{
  color: var(--mapgym-muted);
}

/* Badge dentro de la tarjeta */
.mapgym-steps.is-dark .mapgym-step__badge{
  color: var(--mapgym-primary);
  border-color: rgba(34,45,87,.18);
  background: rgba(34,45,87,.06);
}

/* CTA (si lo usas) */
.mapgym-steps.is-dark .mapgym-btn--primary{
  background: #fff;
  color: var(--mapgym-primary);
  border-color: #fff;
}
.mapgym-steps.is-dark .mapgym-btn--primary:hover{
  opacity: .92;
}
/* =========================
   MAPGYM Gyms (page)
========================= */
.mapgym-gyms__head{ max-width: 760px; display:grid; gap:10px; }

.mapgym-gyms__bar{
  margin-top: 18px;
  padding: 14px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
}

.mapgym-gyms__bar-left{ display:flex; gap: 16px; flex-wrap:wrap; }
.mapgym-gyms__search{
  height: 44px;
  border-radius: 999px;
  border: 1px solid var(--mapgym-border);
  padding: 0 14px;
  font-family: var(--mapgym-font);
  min-width: 260px;
}

.mapgym-gyms__grid{
  margin-top: 14px;
  display:grid;
  gap: 14px;
}

@media (min-width: 900px){
  .mapgym-gyms__grid{ grid-template-columns: 1.4fr .6fr; }
}

.mapgym-gyms__list{ padding: 0; overflow:hidden; }
.mapgym-gyms__list-inner{ padding: 14px; display:grid; gap: 10px; }
.mapgym-gyms__empty{ padding: 14px; color: var(--mapgym-muted); }

.mapgym-gym{
  border: 1px solid var(--mapgym-border);
  border-radius: 16px;
  padding: 12px;
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 12px;
}

.mapgym-gym__main{ display:grid; gap: 4px; }
.mapgym-gym__name{ font-weight: 700; }
.mapgym-gym__meta{ font-size: 13px; color: var(--mapgym-muted); }
.mapgym-gym__actions{ display:flex; gap: 10px; align-items:center; }

.mapgym-gym__link{ font-size: 13px; color: var(--mapgym-primary); text-decoration:none; }
.mapgym-gym__link:hover{ text-decoration: underline; }

.mapgym-gym__check{ width: 22px; height: 22px; accent-color: var(--mapgym-primary); }

.mapgym-gyms__side{ padding: 14px; display:grid; gap: 10px; }
.mapgym-gyms__picked{ display:grid; gap: 8px; }
.mapgym-pill{
  border: 1px solid var(--mapgym-border);
  border-radius: 999px;
  padding: 8px 10px;
  font-size: 13px;
  display:flex;
  justify-content: space-between;
  gap: 10px;
}
.mapgym-pill button{
  border: none;
  background: transparent;
  cursor:pointer;
  font-size: 16px;
  line-height: 1;
  color: var(--mapgym-muted);
}

.mapgym-gyms__note{ font-size: 12px; color: var(--mapgym-muted); margin:0; }
/* =========================
   MAPGYM Gym Cards (final layout)
========================= */
.mapgym-gyms__list{
  padding: 14px;
  overflow: hidden;
}

.mapgym-gyms__list-inner{
  padding: 0;
  display: grid;
  gap: 14px;
}

.mapgym-gym-card{
  border: 1px solid var(--mapgym-border);
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  display: grid;
  grid-template-columns: 220px 1fr;
  min-height: 220px;
  box-shadow: 0 8px 24px rgba(15,18,32,.04);
}

.mapgym-gym-card__media{
  position: relative;
  background: #eef2ff;
  min-height: 220px;
}

.mapgym-gym-card__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.mapgym-gym-card__placeholder{
  width: 100%;
  height: 100%;
  min-height: 220px;
  background:
    radial-gradient(320px 160px at 20% 10%, rgba(76,98,255,.22) 0%, rgba(76,98,255,0) 60%),
    linear-gradient(135deg, #222d57 0%, #121833 55%, #0b0f22 100%);
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: 16px;
}

.mapgym-gym-card__placeholder-badge{
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
}

.mapgym-gym-card__body{
  padding: 18px;
  display: grid;
  gap: 16px;
}

.mapgym-gym-card__top{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.mapgym-gym-card__city{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--mapgym-muted);
  margin-bottom: 6px;
}

.mapgym-gym-card__name{
  margin: 0;
  font-size: 22px;
  line-height: 1.12;
  color: var(--mapgym-text);
  font-weight: 800;
}

.mapgym-gym-card__check-wrap{
  position: relative;
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  cursor: pointer;
}

.mapgym-gym-card__check{
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.mapgym-gym-card__check-ui{
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 1px solid var(--mapgym-border);
  display: block;
  background: #fff;
  transition: all .18s ease;
  position: relative;
}

.mapgym-gym-card__check:checked + .mapgym-gym-card__check-ui{
  background: var(--mapgym-primary);
  border-color: var(--mapgym-primary);
}

.mapgym-gym-card__check:checked + .mapgym-gym-card__check-ui::after{
  content: "✓";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.mapgym-gym-card__details{
  display: grid;
  gap: 12px;
}

.mapgym-gym-card__detail{
  display: grid;
  gap: 4px;
}

.mapgym-gym-card__label{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--mapgym-muted);
}

.mapgym-gym-card__value{
  font-size: 14px;
  line-height: 1.45;
  color: var(--mapgym-text);
}

.mapgym-gym-card__actions{
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 12px;
}

.mapgym-gym-card__link{
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(34,45,87,.14);
  color: var(--mapgym-primary);
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  transition: all .18s ease;
}

.mapgym-gym-card__link:hover{
  background: rgba(34,45,87,.04);
  border-color: rgba(34,45,87,.24);
}

.mapgym-gym-card__link.is-disabled{
  opacity: .55;
  pointer-events: none;
}

/* Panel lateral más limpio */
.mapgym-gyms__side{
  padding: 16px;
  display: grid;
  gap: 12px;
}

.mapgym-pill{
  border: 1px solid var(--mapgym-border);
  border-radius: 999px;
  padding: 9px 12px;
  font-size: 13px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  background: #fff;
}

/* Responsive */
@media (max-width: 999px){
  .mapgym-gym-card{
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .mapgym-gym-card__media,
  .mapgym-gym-card__placeholder{
    min-height: 180px;
  }

  .mapgym-gym-card__body{
    padding: 16px;
  }

  .mapgym-gym-card__name{
    font-size: 20px;
  }
}
/* --- Gym card media (se queda para la foto real por place_id) --- */
.mapgym-gym{
  display: grid;
  grid-template-columns: 180px 1fr auto;
  gap: 14px;
  align-items: stretch;
}

.mapgym-gym-card__media{
  border: 1px solid var(--mapgym-border);
  border-radius: 16px;
  overflow: hidden;
  background: #eef2ff;
  min-height: 150px;
}

.mapgym-gym-card__media-ph{
  width: 100%;
  height: 100%;
  min-height: 150px;
  background:
    radial-gradient(320px 160px at 20% 10%, rgba(76,98,255,.22) 0%, rgba(76,98,255,0) 60%),
    linear-gradient(135deg, #222d57 0%, #121833 55%, #0b0f22 100%);
  display: flex;
  align-items: flex-end;
  padding: 12px;
}

.mapgym-gym-card__media-badge{
  display: inline-flex;
  height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
}

/* Responsive */
@media (max-width: 900px){
  .mapgym-gym{
    grid-template-columns: 1fr;
  }
  .mapgym-gym__actions{
    justify-content: flex-end;
  }
}
/* =========================
   MAPGYM Map block (placeholder + mapa real)
========================= */
.mapgym-gyms__mapwrap{
  margin-top: 16px;
  padding: 16px;
  display: grid;
  gap: 12px;
}

.mapgym-gyms__maphead{
  display: grid;
  gap: 6px;
  max-width: 760px;
}

/* Contenedor del mapa */
.mapgym-gyms__map{
  height: 420px;
  min-height: 0;
}
@media (max-width: 900px){
  .mapgym-gyms__map{ height: 320px; }
}

/* Asegura que el div #mapgym-map tenga altura y no colapse */
#mapgym-map{
  width: 100%;
  min-height: 420px;
}

/* Placeholder mientras no carga el mapa */
.mapgym-gyms__map-ph{
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 420px at 15% 10%, rgba(76, 98, 255, .18) 0%, rgba(76, 98, 255, 0) 60%),
    radial-gradient(820px 380px at 85% 30%, rgba(34, 45, 87, .18) 0%, rgba(34, 45, 87, 0) 55%),
    linear-gradient(135deg, rgba(34,45,87,.10) 0%, rgba(18,24,51,.06) 55%, rgba(11,15,34,.10) 100%);
  display: grid;
  place-items: center;
  z-index: 2; /* placeholder encima */
}

.mapgym-gyms__map-ph-badge{
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(34,45,87,.14);
  color: var(--mapgym-primary);
  font-size: 13px;
  font-weight: 700;
}
/* =========================
   MAPGYM — Google Maps FIX (definitivo)
   ========================= */

/* Google Maps NECESITA altura fija (no min-height) */
#mapgym-map{
  height: 420px !important;
  width: 100% !important;
  position: relative;
  overflow: hidden;
}

/* En móvil, un pelín menos */
@media (max-width: 768px){
  #mapgym-map{ height: 320px !important; }
}

/* Neutraliza reglas típicas del theme que rompen tiles */
#mapgym-map img,
#mapgym-map canvas,
#mapgym-map .gm-style img,
#mapgym-map .gm-style canvas{
  max-width: none !important;
  max-height: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
}

/* Evita que el theme meta box-sizing raro dentro del render de Google */
#mapgym-map .gm-style,
#mapgym-map .gm-style *{
  box-sizing: content-box !important;
}

/* Por si tu theme toca el contenedor con transforms */
.mapgym-gyms__map,
.mapgym-gyms__mapwrap{
  transform: none !important;
  filter: none !important;
}
/* =========================
   GOOGLE MAPS – FIX CONTROLS (SIN romper iconos)
   ========================= */

/* Evita que el theme aplaste los tiles */
#mapgym-map img,
#mapgym-map .gm-style img {
  max-width: none !important;
  max-height: none !important;
}

/* Evita estilos globales del theme sobre botones del mapa,
   pero SIN usar all: unset (porque rompe los iconos) */
#mapgym-map .gm-style button {
  font: inherit !important;
  line-height: normal !important;
  letter-spacing: normal !important;
  text-transform: none !important;

  /* Lo típico que destrozan los themes */
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* Si el theme mete border-radius raros */
#mapgym-map .gm-control-active {
  border-radius: 2px !important;
}
/* ===== MAPGYM — FIX: evitar “lista infinita” ===== */
.mapgym-gyms__grid{
  align-items: start;
}

.mapgym-gyms__list{
  max-height: 70vh;
  overflow: auto;
  padding-right: 6px; /* para que no pise la barra */
  border-radius: 18px;
}

/* scrollbar fina (Chrome) */
.mapgym-gyms__list::-webkit-scrollbar{ width: 10px; }
.mapgym-gyms__list::-webkit-scrollbar-thumb{
  background: rgba(34,45,87,.18);
  border-radius: 999px;
}
.mapgym-gyms__list::-webkit-scrollbar-track{
  background: rgba(34,45,87,.06);
  border-radius: 999px;
}

/* Panel lateral sticky */
@media (min-width: 900px){
  .mapgym-gyms__side{
    position: sticky;
    top: 96px;
  }
}

/* Botón “Guardar” fijo abajo del panel */
.mapgym-gyms__side .mapgym-savewrap{
  position: sticky;
  bottom: 12px;
  padding-top: 12px;
  background: linear-gradient(to top, #fff 70%, rgba(255,255,255,0));
}

/* Mejor aspecto del botón */
.mapgym-gyms__side button,
.mapgym-gyms__side .button{
  width: 100%;
  height: 46px;
  border-radius: 999px;
}
.mapgym-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:16px;
}

.mapgym-pagination__btn{
  height:40px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid var(--mapgym-border);
  background:#fff;
  cursor:pointer;
  font:inherit;
}

.mapgym-pagination__btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.mapgym-pagination__info{
  font-size:14px;
  color:var(--mapgym-muted);
}
.mapgym-gym{
  display:grid;
  grid-template-columns: 160px 1fr auto;
  gap:14px;
  align-items:stretch;
}

.mapgym-gym-card__media{
  border:1px solid var(--mapgym-border);
  border-radius:16px;
  overflow:hidden;
  background:#eef2ff;
  min-height:120px;
}

.mapgym-gym-card__img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.mapgym-gym-card__media-ph{
  width:100%;
  height:100%;
  min-height:120px;
  background:
    radial-gradient(320px 160px at 20% 10%, rgba(76,98,255,.22) 0%, rgba(76,98,255,0) 60%),
    linear-gradient(135deg, #222d57 0%, #121833 55%, #0b0f22 100%);
}

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

  .mapgym-gym-card__media{
    min-height:180px;
  }

  .mapgym-gym__actions{
    justify-content:flex-end;
  }
}
.mapgym-mapcard{
  width: 260px;
  overflow: visible;
  border-radius: 16px;
}

.mapgym-mapcard__img,
.mapgym-mapcard__ph{
  width: 100%;
  height: 120px;
  display: block;
  object-fit: cover;
  border-radius: 12px;
  background:
    radial-gradient(320px 160px at 20% 10%, rgba(76,98,255,.22) 0%, rgba(76,98,255,0) 60%),
    linear-gradient(135deg, #222d57 0%, #121833 55%, #0b0f22 100%);
}

.mapgym-mapcard__body{
  padding: 10px 0 2px;
}

.mapgym-mapcard__name{
  font-size: 16px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--mapgym-text);
  margin-bottom: 6px;
}

.mapgym-mapcard__meta{
  font-size: 12px;
  line-height: 1.35;
  color: var(--mapgym-muted);
  margin-bottom: 5px;
}

.mapgym-mapcard__actions{
  margin-top: 10px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.mapgym-mapcard__link,
.mapgym-mapcard__select{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid var(--mapgym-border);
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.mapgym-mapcard__link{
  color: var(--mapgym-primary);
  background: #fff;
}

.mapgym-mapcard__select{
  background: var(--mapgym-primary);
  color: #fff;
  border-color: var(--mapgym-primary);
}

.mapgym-mapcard__select:disabled{
  opacity: .6;
  cursor: default;
}

/* Google InfoWindow */
.gm-style .gm-style-iw-d{
  overflow: visible !important;
  max-height: none !important;
}

.gm-style .gm-style-iw{
  max-height: none !important;
}

.gm-style .gm-style-iw-c{
  padding: 12px !important;
  max-width: 290px !important;
  max-height: none !important;
  overflow: visible !important;
  border-radius: 18px !important;
}
/* =========================
   MAPGYM MOBILE FIXES
========================= */
@media (max-width: 900px){

  /* estructura general */
  .mapgym-gyms__grid{
    grid-template-columns: 1fr !important;
  }

  /* barra superior: plan + buscador */
  .mapgym-gyms__bar{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  .mapgym-gyms__bar-left{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .mapgym-gyms__search{
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* quitar scroll interno de la lista */
  .mapgym-gyms__list{
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    order: 1;
  }

  .mapgym-gyms__list-inner{
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    padding: 12px !important;
  }

  /* panel lateral debajo */
  .mapgym-gyms__side{
    order: 2;
    position: static !important;
    top: auto !important;
  }

  /* tarjeta gimnasio en una columna */
  .mapgym-gym{
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    align-items: flex-start !important;
  }

  .mapgym-gym-card__media{
    min-height: 180px !important;
  }

  .mapgym-gym__main{
    gap: 6px !important;
  }

  .mapgym-gym__name{
    font-size: 18px !important;
    line-height: 1.2 !important;
  }

  .mapgym-gym__meta{
    font-size: 14px !important;
    line-height: 1.45 !important;
    word-break: break-word;
  }

  .mapgym-gym__actions{
    width: 100%;
    display: flex !important;
    justify-content: flex-end !important;
  }

  /* paginación más cómoda */
  .mapgym-pagination{
    flex-wrap: wrap !important;
    gap: 10px !important;
  }

  .mapgym-pagination__btn{
    min-width: 120px;
  }

  .mapgym-pagination__info{
    width: 100%;
    text-align: center;
  }

  /* panel selección */
  .mapgym-pill{
    align-items: flex-start;
  }

  .mapgym-pill span{
    word-break: break-word;
  }

  /* botón principal */
  .mapgym-gyms__side .mapgym-btn,
  .mapgym-gyms__side button,
  .mapgym-gyms__side [type="button"]{
    width: 100%;
  }
}
.mapgym-gym__rating{
  font-size: 13px;
  font-weight: 600;
  color: var(--mapgym-primary);
  margin-bottom: 4px;
}
.mapgym-filters{
  margin-top: 12px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.mapgym-filter{
  height: 42px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--mapgym-border);
  background: #fff;
  font: inherit;
  min-width: 180px;
}

.mapgym-filter-clear{
  height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--mapgym-border);
  background: #fff;
  font: inherit;
  cursor: pointer;
}

.mapgym-results-info{
  margin-top: 10px;
  font-size: 14px;
  color: var(--mapgym-muted);
}

@media (max-width: 900px){
  .mapgym-filters{
    display: grid;
    grid-template-columns: 1fr;
  }

  .mapgym-filter,
  .mapgym-filter-clear{
    width: 100%;
    min-width: 0;
  }
}
/* =========================
   MAPGYM TOP BAR / FILTERS POLISH
========================= */
.mapgym-gyms__bar{
  border: 1px solid var(--mapgym-border);
  border-radius: 18px;
  background: #fff;
  padding: 16px;
}

.mapgym-gyms__bar-left{
  align-items: center;
}

.mapgym-gyms__search,
.mapgym-filter{
  height: 44px;
  border-radius: 999px;
  border: 1px solid var(--mapgym-border);
  background: #fff;
  padding: 0 14px;
  font: inherit;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.mapgym-gyms__search:focus,
.mapgym-filter:focus{
  outline: none;
  border-color: rgba(34,45,87,.35);
  box-shadow: 0 0 0 4px rgba(34,45,87,.06);
}

.mapgym-filter-clear{
  height: 44px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--mapgym-border);
  background: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease;
}

.mapgym-filter-clear:hover{
  background: rgba(34,45,87,.04);
  border-color: rgba(34,45,87,.22);
}

.mapgym-filters{
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.mapgym-results-info{
  margin-top: 10px;
  font-size: 13px;
  color: var(--mapgym-muted);
  font-weight: 500;
}

@media (max-width: 900px){
  .mapgym-gyms__bar{
    padding: 14px;
    gap: 12px;
  }

  .mapgym-filters{
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .mapgym-filter,
  .mapgym-filter-clear,
  .mapgym-gyms__search{
    width: 100%;
    min-width: 0;
  }
}
.mapgym-gym__badge{
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(34,45,87,.08);
  color: var(--mapgym-primary);
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 6px;
}
.mapgym-gym{
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.mapgym-gym:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(15,18,32,.06);
  border-color: rgba(34,45,87,.18);
}
/* =========================
   MAPGYM HOW IT WORKS
========================= */

.mapgym-how{
  padding: 76px 0;
  background: linear-gradient(180deg, #ffffff 0%, #f7f9ff 100%);
  overflow: hidden;
}

.mapgym-how__inner{
  position: relative;
}

.mapgym-how__head{
  max-width: 760px;
  margin: 0 auto 38px;
  text-align: center;
}

.mapgym-how__eyebrow{
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mapgym-muted);
  font-weight: 700;
}

.mapgym-how__title{
  margin: 0 0 14px;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.05;
  font-weight: 800;
  color: var(--mapgym-text);
  letter-spacing: -.04em;
}

.mapgym-how__text{
  max-width: 660px;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.6;
  color: var(--mapgym-muted);
}

.mapgym-how__text p{
  margin: 0;
}

.mapgym-how__slider{
  width: 100%;
}

.mapgym-how__track{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.mapgym-how__card{
  position: relative;
  min-height: 245px;
  padding: 22px;
  border: 1px solid var(--mapgym-border);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(15,18,32,.045);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.mapgym-how__card:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(15,18,32,.07);
  border-color: rgba(34,45,87,.18);
}

.mapgym-how__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.mapgym-how__number{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 46px;
  border-radius: 999px;
  background: rgba(34,45,87,.08);
  color: var(--mapgym-primary);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
}

.mapgym-how__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: var(--mapgym-primary);
  color: #fff;
  flex: 0 0 auto;
}

.mapgym-how__icon svg{
  width: 27px;
  height: 27px;
}

.mapgym-how__card-title{
  margin: 0 0 10px;
  font-size: 21px;
  line-height: 1.18;
  font-weight: 800;
  color: var(--mapgym-text);
  letter-spacing: -.02em;
}

.mapgym-how__card-text{
  margin: 0;
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--mapgym-muted);
}

.mapgym-how__mobile-controls{
  display: none;
}

/* Tablet */
@media (max-width: 990px){
  .mapgym-how{
    padding: 62px 0;
  }

  .mapgym-how__track{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mapgym-how__card{
    min-height: 230px;
  }
}

/* Mobile */
@media (max-width: 749px){
  .mapgym-how{
    padding: 52px 0;
  }

  .mapgym-how__head{
    text-align: left;
    margin-bottom: 24px;
  }

  .mapgym-how__eyebrow{
    font-size: 12px;
    margin-bottom: 9px;
  }

  .mapgym-how__title{
    font-size: 32px;
    line-height: 1.08;
    margin-bottom: 12px;
  }

  .mapgym-how__text{
    font-size: 16px;
    line-height: 1.55;
  }

  .mapgym-how__slider{
    width: 100%;
    overflow: hidden;
    border-radius: 24px;
  }

  .mapgym-how__track{
    display: flex;
    gap: 0;
    width: 100%;
    transition: transform .45s cubic-bezier(.22, .8, .2, 1);
    will-change: transform;
  }

  .mapgym-how__card{
    flex: 0 0 100%;
    width: 100%;
    max-width: none;
    min-height: 240px;
    scroll-snap-align: unset;
    border-radius: 24px;
    padding: 22px;
  }

  .mapgym-how__card:hover{
    transform: none;
    box-shadow: 0 8px 28px rgba(15,18,32,.045);
    border-color: var(--mapgym-border);
  }

  .mapgym-how__top{
    margin-bottom: 18px;
  }

  .mapgym-how__number{
    min-width: 44px;
    height: 44px;
    font-size: 12px;
  }

  .mapgym-how__icon{
    width: 54px;
    height: 54px;
    border-radius: 17px;
  }

  .mapgym-how__icon svg{
    width: 25px;
    height: 25px;
  }

  .mapgym-how__card-title{
    font-size: 21px;
    line-height: 1.16;
  }

  .mapgym-how__card-text{
    font-size: 15px;
    line-height: 1.52;
  }

  .mapgym-how__mobile-controls{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
  }

  .mapgym-how__next{
    width: 100%;
    min-height: 52px;
    border: 0;
    border-radius: 999px;
    background: var(--mapgym-primary);
    color: #fff;
    font: inherit;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(34,45,87,.16);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  }

  .mapgym-how__next:active{
    transform: scale(.98);
    box-shadow: 0 6px 16px rgba(34,45,87,.14);
  }

  .mapgym-how__dots{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
  }

  .mapgym-how__dot{
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: rgba(34,45,87,.18);
    transition: width .2s ease, background .2s ease;
  }

  .mapgym-how__dot.is-active{
    width: 20px;
    background: var(--mapgym-primary);
  }
}

/* Small mobile */
@media (max-width: 390px){
  .mapgym-how__title{
    font-size: 29px;
  }

  .mapgym-how__card{
    min-height: 250px;
    padding: 20px;
  }

  .mapgym-how__card-title{
    font-size: 20px;
  }

  .mapgym-how__card-text{
    font-size: 14.5px;
  }
}
/* =========================
   MAPGYM HOW IT WORKS - MOBILE SPACING FIX
========================= */

@media (max-width: 749px){
  .mapgym-how .mapgym-how__inner{
    padding-left: 22px;
    padding-right: 22px;
  }

  .mapgym-how__head{
    padding-left: 0;
    padding-right: 0;
  }

  .mapgym-how__slider{
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .mapgym-how__card{
    width: 100%;
    box-sizing: border-box;
  }

  .mapgym-how__next{
    width: 100%;
  }
}

@media (max-width: 390px){
  .mapgym-how .mapgym-how__inner{
    padding-left: 20px;
    padding-right: 20px;
  }
}
/* =========================
   MAPGYM PRELAUNCH
========================= */

.mapgym-prelaunch{
  padding: 76px 0;
  background: #fff;
  overflow: hidden;
}

.mapgym-prelaunch__inner{
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
  gap: 28px;
  align-items: stretch;
}

.mapgym-prelaunch__content{
  padding: 38px;
  border: 1px solid var(--mapgym-border);
  border-radius: 28px;
  background: linear-gradient(180deg, #ffffff 0%, #f7f9ff 100%);
}

.mapgym-prelaunch__eyebrow{
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mapgym-muted);
  font-weight: 700;
}

.mapgym-prelaunch__title{
  margin: 0 0 16px;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.04;
  font-weight: 800;
  color: var(--mapgym-text);
  letter-spacing: -.04em;
}

.mapgym-prelaunch__text{
  max-width: 760px;
  font-size: 18px;
  line-height: 1.6;
  color: var(--mapgym-muted);
}

.mapgym-prelaunch__text p{
  margin: 0;
}

.mapgym-prelaunch__points{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 28px;
}

.mapgym-prelaunch__point{
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(34,45,87,.1);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15,18,32,.035);
}

.mapgym-prelaunch__point-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 16px;
  background: rgba(34,45,87,.08);
  color: var(--mapgym-primary);
}

.mapgym-prelaunch__point-icon svg{
  width: 24px;
  height: 24px;
}

.mapgym-prelaunch__point-title{
  margin: 0 0 5px;
  font-size: 17px;
  line-height: 1.2;
  font-weight: 800;
  color: var(--mapgym-text);
}

.mapgym-prelaunch__point-text{
  margin: 0;
  font-size: 14.5px;
  line-height: 1.45;
  color: var(--mapgym-muted);
}

.mapgym-prelaunch__card{
  position: relative;
  padding: 34px;
  border-radius: 28px;
  background: var(--mapgym-primary);
  color: #fff;
  box-shadow: 0 18px 48px rgba(34,45,87,.18);
  overflow: hidden;
}

.mapgym-prelaunch__card:before{
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  right: -80px;
  top: -80px;
  border-radius: 999px;
  background: rgba(255,255,255,.1);
}

.mapgym-prelaunch__card:after{
  content: "";
  position: absolute;
  width: 160px;
  height: 160px;
  left: -70px;
  bottom: -70px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
}

.mapgym-prelaunch__badge{
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 13px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}

.mapgym-prelaunch__card-title{
  position: relative;
  z-index: 1;
  margin: 22px 0 14px;
  font-size: 34px;
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -.03em;
  color: #fff;
}

.mapgym-prelaunch__card-text{
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 17px;
  line-height: 1.55;
  color: rgba(255,255,255,.82);
}

.mapgym-prelaunch__button{
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  width: 100%;
  margin-top: 26px;
  padding: 0 22px;
  border-radius: 999px;
  background: #fff;
  color: var(--mapgym-primary);
  text-decoration: none;
  font-size: 15px;
  font-weight: 800;
  transition: transform .18s ease, box-shadow .18s ease;
}

.mapgym-prelaunch__button:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(0,0,0,.12);
}

.mapgym-prelaunch__small{
  position: relative;
  z-index: 1;
  margin: 18px 0 0;
  font-size: 13.5px;
  line-height: 1.45;
  color: rgba(255,255,255,.72);
}

/* Tablet */
@media (max-width: 990px){
  .mapgym-prelaunch{
    padding: 62px 0;
  }

  .mapgym-prelaunch__inner{
    grid-template-columns: 1fr;
  }

  .mapgym-prelaunch__card{
    min-height: auto;
  }
}

/* Mobile */
@media (max-width: 749px){
  .mapgym-prelaunch{
    padding: 52px 0;
  }

  .mapgym-prelaunch__inner{
    padding-left: 22px;
    padding-right: 22px;
    gap: 18px;
  }

  .mapgym-prelaunch__content{
    padding: 24px;
    border-radius: 26px;
  }

  .mapgym-prelaunch__eyebrow{
    font-size: 12px;
    margin-bottom: 9px;
  }

  .mapgym-prelaunch__title{
    font-size: 32px;
    line-height: 1.08;
    margin-bottom: 12px;
  }

  .mapgym-prelaunch__text{
    font-size: 16px;
    line-height: 1.55;
  }

  .mapgym-prelaunch__points{
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 22px;
  }

  .mapgym-prelaunch__point{
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 13px;
    padding: 16px;
    border-radius: 20px;
  }

  .mapgym-prelaunch__point-icon{
    width: 44px;
    height: 44px;
    border-radius: 15px;
  }

  .mapgym-prelaunch__point-icon svg{
    width: 22px;
    height: 22px;
  }

  .mapgym-prelaunch__point-title{
    font-size: 16px;
  }

  .mapgym-prelaunch__point-text{
    font-size: 14px;
  }

  .mapgym-prelaunch__card{
    padding: 26px;
    border-radius: 26px;
  }

  .mapgym-prelaunch__card-title{
    font-size: 30px;
  }

  .mapgym-prelaunch__card-text{
    font-size: 16px;
  }

  .mapgym-prelaunch__button{
    min-height: 52px;
  }
}

/* Small mobile */
@media (max-width: 390px){
  .mapgym-prelaunch__inner{
    padding-left: 20px;
    padding-right: 20px;
  }

  .mapgym-prelaunch__content,
  .mapgym-prelaunch__card{
    padding: 22px;
  }

  .mapgym-prelaunch__title{
    font-size: 29px;
  }

  .mapgym-prelaunch__card-title{
    font-size: 28px;
  }
}
/* =========================
   MAPGYM ANCHOR OFFSET
========================= */

#planes{
  scroll-margin-top: 110px;
}

@media (max-width: 749px){
  #planes{
    scroll-margin-top: 95px;
  }
}
/* =========================
   MAPGYM PREVIEW GIMNASIOS HOME
========================= */

.mapgym-preview{
  padding: 76px 0;
  background: linear-gradient(180deg, #ffffff 0%, #f7f9ff 100%);
  overflow: hidden;
}

.mapgym-preview__inner{
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  gap: 28px;
  align-items: stretch;
}

.mapgym-preview__content{
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 38px;
  border-radius: 30px;
  background: var(--mapgym-primary);
  color: #fff;
  position: relative;
  overflow: hidden;
}

.mapgym-preview__content:before{
  content: "";
  position: absolute;
  width: 230px;
  height: 230px;
  right: -90px;
  top: -90px;
  border-radius: 999px;
  background: rgba(255,255,255,.09);
}

.mapgym-preview__eyebrow,
.mapgym-preview__title,
.mapgym-preview__text,
.mapgym-preview__form{
  position: relative;
  z-index: 1;
}

.mapgym-preview__eyebrow{
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  font-weight: 800;
}

.mapgym-preview__title{
  margin: 0 0 16px;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.02;
  font-weight: 800;
  letter-spacing: -.04em;
  color: #fff;
}

.mapgym-preview__text{
  max-width: 560px;
  font-size: 18px;
  line-height: 1.6;
  color: rgba(255,255,255,.78);
}

.mapgym-preview__text p{
  margin: 0;
}

.mapgym-preview__form{
  margin-top: 28px;
}

.mapgym-preview__label{
  display: block;
  margin-bottom: 9px;
  font-size: 14px;
  font-weight: 800;
  color: #fff;
}

.mapgym-preview__form-row{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.mapgym-preview__input{
  width: 100%;
  min-height: 54px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #fff;
  padding: 0 18px;
  font: inherit;
  font-size: 15px;
  outline: none;
}

.mapgym-preview__input::placeholder{
  color: rgba(255,255,255,.55);
}

.mapgym-preview__input:focus{
  border-color: rgba(255,255,255,.55);
  box-shadow: 0 0 0 4px rgba(255,255,255,.08);
}

.mapgym-preview__button{
  width: 100%;
  min-height: 54px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: var(--mapgym-primary);
  font: inherit;
  font-size: 15px;
  font-weight: 900;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease;
}

.mapgym-preview__button:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(0,0,0,.13);
}

.mapgym-preview__form-error{
  margin: 10px 0 0;
  font-size: 13.5px;
  color: #fff;
  font-weight: 700;
}

.mapgym-preview__small{
  margin: 16px 0 0;
  font-size: 13.5px;
  line-height: 1.45;
  color: rgba(255,255,255,.66);
}

.mapgym-preview__visual{
  display: grid;
  gap: 18px;
}

.mapgym-preview__map-card,
.mapgym-preview__list-card{
  border: 1px solid var(--mapgym-border);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 10px 32px rgba(15,18,32,.045);
  overflow: hidden;
}

.mapgym-preview__map-card{
  padding: 20px;
}

.mapgym-preview__map-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.mapgym-preview__map-kicker{
  margin: 0 0 4px;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--mapgym-muted);
  font-weight: 800;
}

.mapgym-preview__map-title{
  margin: 0;
  font-size: 22px;
  line-height: 1.15;
  font-weight: 800;
  color: var(--mapgym-text);
}

.mapgym-preview__live{
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 11px;
  border-radius: 999px;
  background: rgba(34,45,87,.08);
  color: var(--mapgym-primary);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.mapgym-preview__map{
  width: 100%;
  height: 270px;
  border-radius: 22px;
  overflow: hidden;
  background: #eef2f8;
}

.mapgym-preview__map-placeholder{
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--mapgym-muted);
  font-weight: 700;
}

.mapgym-preview__list-card{
  padding: 20px;
}

.mapgym-preview__list-head{
  margin-bottom: 14px;
}

.mapgym-preview__list-title{
  margin: 0 0 5px;
  font-size: 22px;
  line-height: 1.15;
  color: var(--mapgym-text);
  font-weight: 800;
}

.mapgym-preview__list-subtitle{
  margin: 0;
  font-size: 15px;
  line-height: 1.45;
  color: var(--mapgym-muted);
}

.mapgym-preview__list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.mapgym-preview__gym{
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(34,45,87,.1);
  border-radius: 20px;
  background: #fff;
}

.mapgym-preview__gym-img{
  width: 82px;
  height: 82px;
  object-fit: cover;
  border-radius: 16px;
  background: #eef2f8;
}

.mapgym-preview__gym-img--empty{
  display: grid;
  place-items: center;
  color: var(--mapgym-primary);
  font-size: 13px;
  font-weight: 900;
}

.mapgym-preview__gym-body{
  min-width: 0;
}

.mapgym-preview__gym-name{
  margin: 0 0 5px;
  font-size: 15px;
  line-height: 1.15;
  font-weight: 900;
  color: var(--mapgym-text);
}

.mapgym-preview__gym-rating,
.mapgym-preview__gym-location,
.mapgym-preview__gym-address{
  margin: 0;
  font-size: 12.5px;
  line-height: 1.35;
  color: var(--mapgym-muted);
}

.mapgym-preview__gym-rating{
  color: var(--mapgym-primary);
  font-weight: 800;
  margin-bottom: 4px;
}

.mapgym-preview__gym-address{
  margin-top: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.mapgym-preview__loading{
  grid-column: 1 / -1;
  padding: 22px;
  border-radius: 20px;
  background: #f7f9ff;
  color: var(--mapgym-muted);
  font-weight: 700;
}

/* Tablet */
@media (max-width: 990px){
  .mapgym-preview{
    padding: 62px 0;
  }

  .mapgym-preview__inner{
    grid-template-columns: 1fr;
  }

  .mapgym-preview__map{
    height: 300px;
  }
}

/* Mobile */
@media (max-width: 749px){
  .mapgym-preview{
    padding: 52px 0;
  }

  .mapgym-preview__inner{
    padding-left: 22px;
    padding-right: 22px;
    gap: 18px;
  }

  .mapgym-preview__content{
    padding: 26px;
    border-radius: 28px;
  }

  .mapgym-preview__eyebrow{
    font-size: 12px;
  }

  .mapgym-preview__title{
    font-size: 32px;
    line-height: 1.08;
  }

  .mapgym-preview__text{
    font-size: 16px;
    line-height: 1.55;
  }

  .mapgym-preview__map-card,
  .mapgym-preview__list-card{
    border-radius: 26px;
  }

  .mapgym-preview__map-card,
  .mapgym-preview__list-card{
    padding: 18px;
  }

  .mapgym-preview__map{
    height: 235px;
    border-radius: 20px;
  }

  .mapgym-preview__map-head{
    flex-direction: column;
    gap: 10px;
  }

  .mapgym-preview__map-title,
  .mapgym-preview__list-title{
    font-size: 20px;
  }

  .mapgym-preview__list{
    grid-template-columns: 1fr;
  }

  .mapgym-preview__gym{
    grid-template-columns: 86px minmax(0, 1fr);
  }

  .mapgym-preview__gym-img{
    width: 86px;
    height: 86px;
  }
}

/* Small mobile */
@media (max-width: 390px){
  .mapgym-preview__inner{
    padding-left: 20px;
    padding-right: 20px;
  }

  .mapgym-preview__content{
    padding: 24px;
  }

  .mapgym-preview__title{
    font-size: 29px;
  }

  .mapgym-preview__map{
    height: 220px;
  }

  .mapgym-preview__gym{
    grid-template-columns: 78px minmax(0, 1fr);
  }

  .mapgym-preview__gym-img{
    width: 78px;
    height: 78px;
  }
}
/* =========================
   MAPGYM PREVIEW INPUT FIX
========================= */

.mapgym-preview__input{
  color: var(--mapgym-text, #11182d) !important;
  background: #fff !important;
}

.mapgym-preview__input::placeholder{
  color: rgba(101,112,140,.75) !important;
}

.mapgym-preview__input:focus{
  color: var(--mapgym-text, #11182d) !important;
}
/* =========================
   MAPGYM SAVE TOAST / SUCCESS MODAL
========================= */

.mapgym-save-toast{
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(9, 13, 32, .42);
  backdrop-filter: blur(5px);
}

.mapgym-save-toast__box{
  width: min(440px, 100%);
  padding: 24px;
  border-radius: 26px;
  background: #fff;
  color: var(--mapgym-text, #101426);
  box-shadow: 0 24px 70px rgba(10, 16, 40, .24);
  display: grid;
  gap: 16px;
  text-align: left;
}

.mapgym-save-toast__top{
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.mapgym-save-toast__icon{
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--mapgym-primary, #222d57);
  color: #fff;
  font-weight: 900;
  font-size: 20px;
}

.mapgym-save-toast__title{
  margin: 0 0 6px;
  font-size: 20px;
  line-height: 1.15;
  font-weight: 850;
  color: var(--mapgym-text, #101426);
}

.mapgym-save-toast__text{
  margin: 0;
  font-size: 15px;
  line-height: 1.45;
  color: var(--mapgym-muted, #66708c);
}

.mapgym-save-toast__button{
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  background: var(--mapgym-primary, #222d57);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.mapgym-save-toast__button:hover{
  filter: brightness(.96);
}

@media (max-width: 749px){
  .mapgym-save-toast{
    align-items: end;
    padding: 16px;
  }

  .mapgym-save-toast__box{
    border-radius: 24px;
    padding: 22px;
  }

  .mapgym-save-toast__title{
    font-size: 19px;
  }

  .mapgym-save-toast__text{
    font-size: 14px;
  }
}
/* =========================
   MAPGYM PREVIEW — COMPACT + PLAN CAPTURE
========================= */

.mapgym-preview{
  padding: 72px 0;
  background: #fff;
}

.mapgym-preview__inner{
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 32px;
  align-items: center;
}

.mapgym-preview__content{
  padding: 34px;
  border-radius: 32px;
  background:
    radial-gradient(420px 260px at 95% 0%, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(135deg, #222d57 0%, #151c3c 100%);
  color: #fff;
  box-shadow: 0 18px 50px rgba(34,45,87,.16);
}

.mapgym-preview__eyebrow{
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 800;
  color: rgba(255,255,255,.68);
}

.mapgym-preview__title{
  margin: 0;
  max-width: 520px;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.02;
  letter-spacing: -.05em;
  font-weight: 850;
  color: #fff;
}

.mapgym-preview__text{
  margin-top: 18px;
  max-width: 560px;
  color: rgba(255,255,255,.76);
  font-size: 17px;
  line-height: 1.55;
}

.mapgym-preview__text p{
  margin: 0;
}

.mapgym-preview__bullets{
  margin-top: 24px;
  display: grid;
  gap: 10px;
}

.mapgym-preview__bullet{
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,.82);
  font-size: 14px;
  line-height: 1.35;
}

.mapgym-preview__bullet span{
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 11px;
  font-weight: 900;
}

.mapgym-preview__small{
  margin: 14px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: rgba(255,255,255,.64);
}

.mapgym-preview__visual{
  display: grid;
  gap: 18px;
}

.mapgym-preview__map-card,
.mapgym-preview__list-card{
  border: 1px solid var(--mapgym-border);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(15,18,32,.055);
}

.mapgym-preview__map-card{
  padding: 22px;
  display: grid;
  gap: 16px;
}

.mapgym-preview__map-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.mapgym-preview__map-kicker{
  margin: 0 0 7px;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 800;
  color: var(--mapgym-muted);
}

.mapgym-preview__map-title{
  margin: 0;
  font-size: 25px;
  line-height: 1.12;
  letter-spacing: -.03em;
  color: var(--mapgym-text);
}

.mapgym-preview__live{
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(34,45,87,.08);
  color: var(--mapgym-primary);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.mapgym-preview__quick-form{
  padding: 16px;
  border-radius: 22px;
  background: #f6f8ff;
  border: 1px solid rgba(34,45,87,.08);
}

.mapgym-preview__quick-title{
  margin: 0 0 5px;
  color: var(--mapgym-text);
  font-size: 18px;
  line-height: 1.2;
  font-weight: 850;
}

.mapgym-preview__quick-text{
  margin: 0 0 14px;
  color: var(--mapgym-muted);
  font-size: 14px;
  line-height: 1.45;
}

.mapgym-preview__plans{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}

.mapgym-preview__plan-option{
  position: relative;
  cursor: pointer;
}

.mapgym-preview__plan-option input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.mapgym-preview__plan-option span{
  min-height: 42px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 1px solid rgba(34,45,87,.12);
  background: #fff;
  color: var(--mapgym-primary);
  font-size: 13px;
  font-weight: 800;
  transition: all .18s ease;
}

.mapgym-preview__plan-option.is-active span,
.mapgym-preview__plan-option input:checked + span{
  background: var(--mapgym-primary);
  border-color: var(--mapgym-primary);
  color: #fff;
  box-shadow: 0 10px 22px rgba(34,45,87,.16);
}

.mapgym-preview__label{
  display: block;
  margin: 0 0 7px;
  color: var(--mapgym-text);
  font-size: 13px;
  font-weight: 800;
}

.mapgym-preview__form-row{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
}

.mapgym-preview__input{
  width: 100%;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(34,45,87,.14);
  background: #fff;
  padding: 0 16px;
  color: var(--mapgym-text);
  font: inherit;
  min-width: 0;
}

.mapgym-preview__input::placeholder{
  color: rgba(102,112,140,.75);
}

.mapgym-preview__input:focus{
  outline: none;
  border-color: rgba(34,45,87,.35);
  box-shadow: 0 0 0 4px rgba(34,45,87,.07);
}

.mapgym-preview__button{
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  background: var(--mapgym-primary);
  color: #fff;
  padding: 0 18px;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
  white-space: nowrap;
}

.mapgym-preview__button:hover{
  filter: brightness(.96);
}

.mapgym-preview__success,
.mapgym-preview__form-error{
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.4;
}

.mapgym-preview__success{
  color: #1b7f46;
}

.mapgym-preview__form-error{
  color: #9b1c1c;
}

.mapgym-preview__map{
  width: 100%;
  height: 280px;
  border-radius: 22px;
  overflow: hidden;
  background: #eef2f7;
}

.mapgym-preview__map-placeholder{
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--mapgym-muted);
  font-weight: 700;
}

.mapgym-preview__list-card{
  padding: 20px;
}

.mapgym-preview__list-title{
  margin: 0 0 6px;
  color: var(--mapgym-text);
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -.03em;
}

.mapgym-preview__list-subtitle{
  margin: 0;
  color: var(--mapgym-muted);
  font-size: 14px;
  line-height: 1.45;
}

.mapgym-preview__list{
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.mapgym-preview__gym{
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 12px;
  align-items: center;
  min-height: 104px;
  padding: 12px;
  border: 1px solid var(--mapgym-border);
  border-radius: 18px;
  background: #fff;
}

.mapgym-preview__gym-img{
  width: 88px;
  height: 80px;
  border-radius: 16px;
  object-fit: cover;
  background: #eef2ff;
}

.mapgym-preview__gym-img--empty{
  display: grid;
  place-items: center;
  color: var(--mapgym-primary);
  font-size: 12px;
  font-weight: 900;
}

.mapgym-preview__gym-name{
  margin: 0 0 4px;
  font-size: 15px;
  line-height: 1.18;
  font-weight: 850;
  color: var(--mapgym-text);
}

.mapgym-preview__gym-rating,
.mapgym-preview__gym-location,
.mapgym-preview__gym-address{
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
  color: var(--mapgym-muted);
}

.mapgym-preview__gym-address{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Mobile */
@media (max-width: 900px){
  .mapgym-preview{
    padding: 52px 0;
  }

  .mapgym-preview__inner{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .mapgym-preview__content{
    padding: 28px 24px;
    border-radius: 28px;
  }

  .mapgym-preview__title{
    font-size: 34px;
  }

  .mapgym-preview__text{
    font-size: 16px;
  }

  .mapgym-preview__map-card{
    padding: 18px;
    border-radius: 26px;
  }

  .mapgym-preview__map-head{
    display: grid;
    gap: 10px;
  }

  .mapgym-preview__live{
    width: fit-content;
  }

  .mapgym-preview__plans{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mapgym-preview__form-row{
    grid-template-columns: 1fr;
  }

  .mapgym-preview__button{
    width: 100%;
  }

  .mapgym-preview__map{
    height: 240px;
  }

  .mapgym-preview__list{
    grid-template-columns: 1fr;
  }
}
/* =========================
   MG PREVIEW — MOBILE FIX
========================= */
@media (max-width: 749px){

  .mapgym-preview__inner{
    display: grid;
    gap: 14px;
  }

  /* Si tienes dos columnas en desktop, en móvil una debajo de otra */
  .mapgym-preview__content,
  .mapgym-preview__visual{
    width: 100%;
  }

  /* Tarjetas más compactas */
  .mapgym-preview__map-card,
  .mapgym-preview__list-card,
  .mapgym-preview__access-card{
    padding: 18px !important;
    border-radius: 24px !important;
  }

  /* Cabecera del bloque superior */
  .mapgym-preview__map-head{
    display: grid;
    gap: 10px;
    align-items: start;
  }

  .mapgym-preview__map-kicker{
    font-size: 12px;
    letter-spacing: .14em;
    margin: 0 0 6px;
  }

  .mapgym-preview__map-title{
    font-size: 32px;
    line-height: 1.05;
    margin: 0;
    letter-spacing: -.03em;
  }

  .mapgym-preview__live{
    width: fit-content;
    padding: 10px 16px;
    font-size: 14px;
    border-radius: 999px;
  }

  /* Mapa más proporcionado */
  .mapgym-preview__map{
    height: 240px !important;
    min-height: 240px !important;
    border-radius: 20px;
    overflow: hidden;
  }

  /* Bloque de acceso */
  .mapgym-preview__access-title{
    font-size: 26px;
    line-height: 1.1;
    margin: 0 0 10px;
  }

  .mapgym-preview__access-text{
    font-size: 15px;
    line-height: 1.45;
    margin: 0 0 16px;
  }

  /* Planes en grid 2x2 y no en “bolitas” sueltas */
  .mapgym-preview__plans{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 0 0 18px;
  }

  .mapgym-preview__plan{
    width: 100%;
    min-height: 54px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
  }

  /* Formulario */
  .mapgym-preview__label{
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
    font-weight: 700;
  }

  .mapgym-preview__form-row{
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .mapgym-preview__input{
    width: 100%;
    height: 56px;
    border-radius: 999px;
    padding: 0 20px;
    font-size: 16px;
    box-sizing: border-box;
  }

  .mapgym-preview__button{
    width: 100%;
    min-height: 56px;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 700;
  }

  .mapgym-preview__small{
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.4;
  }

  /* El mini listado en móvil ensucia bastante: mejor ocultarlo */
  .mapgym-preview__list-card{
    display: none;
  }
}
/* =========================
   MG PREVIEW — MOBILE FINAL FIX
   Mantiene mapa + formulario + mini listado
========================= */

@media (max-width: 749px){

  /* Evita cualquier desbordamiento horizontal */
  .mapgym-preview,
  .mapgym-preview *{
    box-sizing: border-box;
  }

  .mapgym-preview{
    overflow: hidden;
    padding: 42px 0 !important;
  }

  .mapgym-preview .page-width,
  .mapgym-preview__inner{
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
    margin: 0 auto !important;
  }

  .mapgym-preview__inner{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .mapgym-preview__content,
  .mapgym-preview__visual,
  .mapgym-preview__map-card,
  .mapgym-preview__list-card{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Tarjeta del mapa/formulario */
  .mapgym-preview__map-card{
    padding: 18px !important;
    border-radius: 26px !important;
    overflow: hidden !important;
  }

  .mapgym-preview__map-head{
    display: grid !important;
    gap: 12px !important;
  }

  .mapgym-preview__map-kicker{
    margin: 0 0 8px !important;
    font-size: 12px !important;
    letter-spacing: .14em !important;
  }

  .mapgym-preview__map-title{
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(32px, 10vw, 42px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.04em !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .mapgym-preview__live{
    width: fit-content !important;
    min-height: 38px !important;
    padding: 0 16px !important;
    font-size: 14px !important;
  }

  /* Bloque del formulario */
  .mapgym-preview__quick-form{
    width: 100% !important;
    max-width: 100% !important;
    padding: 18px !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  .mapgym-preview__quick-title{
    margin: 0 0 8px !important;
    font-size: 25px !important;
    line-height: 1.12 !important;
    letter-spacing: -.03em !important;
  }

  .mapgym-preview__quick-text{
    margin: 0 0 16px !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
  }

  /* Planes: botones anchos 2x2, no bolitas */
  .mapgym-preview__plans{
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin: 0 0 18px !important;
  }

  .mapgym-preview__plan-option{
    width: 100% !important;
    min-width: 0 !important;
    display: block !important;
  }

  .mapgym-preview__plan-option span{
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    height: 48px !important;
    padding: 0 10px !important;
    border-radius: 999px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
  }

  .mapgym-preview__plan-option.is-active span,
  .mapgym-preview__plan-option input:checked + span{
    background: var(--mapgym-primary, #222d57) !important;
    color: #fff !important;
    border-color: var(--mapgym-primary, #222d57) !important;
  }

  /* Email + botón */
  .mapgym-preview__label{
    margin-bottom: 8px !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
  }

  .mapgym-preview__form-row{
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .mapgym-preview__input{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 56px !important;
    border-radius: 999px !important;
    padding: 0 18px !important;
    font-size: 16px !important;
  }

  .mapgym-preview__button{
    width: 100% !important;
    max-width: 100% !important;
    min-height: 56px !important;
    border-radius: 999px !important;
    padding: 0 18px !important;
    font-size: 15px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    text-align: center !important;
  }

  /* Mapa */
  .mapgym-preview__map{
    width: 100% !important;
    height: 250px !important;
    min-height: 250px !important;
    margin-top: 16px !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  /* Mini listado: se mantiene, pero más compacto */
  .mapgym-preview__list-card{
    display: block !important;
    padding: 18px !important;
    border-radius: 26px !important;
  }

  .mapgym-preview__list-title{
    font-size: 24px !important;
    line-height: 1.12 !important;
    margin-bottom: 8px !important;
  }

  .mapgym-preview__list-subtitle{
    font-size: 14px !important;
    line-height: 1.45 !important;
  }

  .mapgym-preview__list{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 14px !important;
  }

  .mapgym-preview__gym{
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 76px 1fr !important;
    gap: 10px !important;
    padding: 10px !important;
    border-radius: 18px !important;
    min-height: 96px !important;
  }

  .mapgym-preview__gym-img{
    width: 76px !important;
    height: 76px !important;
    border-radius: 15px !important;
  }

  .mapgym-preview__gym-name{
    font-size: 15px !important;
    line-height: 1.15 !important;
  }

  .mapgym-preview__gym-rating,
  .mapgym-preview__gym-location,
  .mapgym-preview__gym-address{
    font-size: 12px !important;
    line-height: 1.3 !important;
  }
/* =========================
   MAPGYM — Ocultar iconos cuenta y carrito
========================= */

/* Icono de cuenta/perfil */
.header-actions__account,
.header__icon--account,
a[href="/account"],
a[href*="/account"]{
  display: none !important;
}

/* Icono de carrito */
.header-actions__cart,
.header__icon--cart,
a[href="/cart"],
a[href*="/cart"]{
  display: none !important;
}
/* Fallback para themes Shopify/Pitch */
.header-actions action-item[href*="/account"],
.header-actions action-item[href*="/cart"],
.header-actions a[href*="/account"],
.header-actions a[href*="/cart"],
.header__icons a[href*="/account"],
.header__icons a[href*="/cart"]{
  display: none !important;
}
/* Oculta todo el grupo de iconos derecho */
.header-actions,
.header__icons{
  display: none !important;
}
/* =========================
   MG PREVIEW — DESKTOP FINAL FIX
   Corrige proporciones en ordenador sin tocar móvil
========================= */

@media (min-width: 901px){

  .mapgym-preview{
    padding: 82px 0 !important;
  }

  .mapgym-preview__inner{
    display: grid !important;
    grid-template-columns: minmax(420px, .9fr) minmax(620px, 1.1fr) !important;
    gap: 34px !important;
    align-items: center !important;
  }

  .mapgym-preview__content{
    align-self: center !important;
    min-height: 430px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .mapgym-preview__visual{
    display: grid !important;
    gap: 18px !important;
    min-width: 0 !important;
  }

  .mapgym-preview__map-card{
    padding: 24px !important;
    border-radius: 30px !important;
    display: grid !important;
    gap: 18px !important;
  }

  .mapgym-preview__map-head{
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 20px !important;
  }

  .mapgym-preview__map-title{
    font-size: 30px !important;
    line-height: 1.1 !important;
    max-width: 520px !important;
  }

  .mapgym-preview__live{
    flex: 0 0 auto !important;
  }

  /* Formulario más compacto en desktop */
  .mapgym-preview__quick-form{
    width: 100% !important;
    max-width: 100% !important;
    padding: 18px !important;
    border-radius: 24px !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .mapgym-preview__quick-title{
    font-size: 21px !important;
    margin: 0 0 2px !important;
  }

  .mapgym-preview__quick-text{
    max-width: 620px !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    margin: 0 !important;
  }

  .mapgym-preview__plans{
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin: 2px 0 2px !important;
    max-width: 520px !important;
  }

  .mapgym-preview__plan-option span{
    width: 100% !important;
    height: 42px !important;
    min-height: 42px !important;
    border-radius: 999px !important;
    font-size: 13px !important;
    box-shadow: none !important;
  }

  .mapgym-preview__customer-form{
    display: grid !important;
    gap: 10px !important;
  }

  .mapgym-preview__form-row{
    display: grid !important;
    grid-template-columns: minmax(260px, 1fr) auto !important;
    gap: 10px !important;
    align-items: center !important;
  }

  .mapgym-preview__input{
    height: 48px !important;
    font-size: 15px !important;
  }

  .mapgym-preview__button{
    min-height: 48px !important;
    padding: 0 20px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
  }

  .mapgym-preview__map{
    height: 300px !important;
    min-height: 300px !important;
    border-radius: 24px !important;
  }

  .mapgym-preview__list-card{
    padding: 22px !important;
    border-radius: 28px !important;
  }

  .mapgym-preview__list{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
}

/* Pantallas muy grandes: evita que se estire demasiado */
@media (min-width: 1400px){
  .mapgym-preview__inner{
    grid-template-columns: 560px 1fr !important;
  }

  .mapgym-preview__map{
    height: 320px !important;
  }
}
/* =========================
   MG PREVIEW — DESKTOP STRUCTURE FINAL
   No toca móvil
========================= */

@media (min-width: 901px){

  .section-mapgym-preview .mapgym-preview{
    padding: 90px 0 !important;
    overflow: hidden !important;
  }

  .section-mapgym-preview .mapgym-preview .page-width{
    max-width: 1440px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  .section-mapgym-preview .mapgym-preview__inner{
    display: grid !important;
    grid-template-columns: 500px minmax(0, 1fr) !important;
    gap: 36px !important;
    align-items: center !important;
  }

  /* Bloque azul izquierdo */
  .section-mapgym-preview .mapgym-preview__content{
    width: 100% !important;
    min-height: 520px !important;
    padding: 44px !important;
    border-radius: 34px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .section-mapgym-preview .mapgym-preview__title{
    font-size: 46px !important;
    line-height: 1.02 !important;
    max-width: 420px !important;
  }

  .section-mapgym-preview .mapgym-preview__text{
    max-width: 420px !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
  }

  .section-mapgym-preview .mapgym-preview__bullets{
    max-width: 420px !important;
    margin-top: 28px !important;
  }

  /* Derecha */
  .section-mapgym-preview .mapgym-preview__visual{
    min-width: 0 !important;
    display: grid !important;
    gap: 18px !important;
  }

  /* Tarjeta principal derecha: header arriba, formulario + mapa debajo */
  .section-mapgym-preview .mapgym-preview__map-card{
    width: 100% !important;
    padding: 24px !important;
    border-radius: 30px !important;
    display: grid !important;
    grid-template-columns: 340px minmax(0, 1fr) !important;
    grid-template-areas:
      "head head"
      "form map" !important;
    gap: 18px !important;
    align-items: stretch !important;
  }

  .section-mapgym-preview .mapgym-preview__map-head{
    grid-area: head !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 20px !important;
  }

  .section-mapgym-preview .mapgym-preview__map-title{
    font-size: 30px !important;
    line-height: 1.1 !important;
    margin: 0 !important;
    max-width: 620px !important;
  }

  .section-mapgym-preview .mapgym-preview__live{
    flex: 0 0 auto !important;
    min-height: 34px !important;
    padding: 0 14px !important;
    font-size: 12px !important;
  }

  /* Formulario compacto a la izquierda */
  .section-mapgym-preview .mapgym-preview__quick-form{
    grid-area: form !important;
    width: 100% !important;
    height: 100% !important;
    padding: 20px !important;
    border-radius: 24px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 12px !important;
  }

  .section-mapgym-preview .mapgym-preview__quick-title{
    font-size: 22px !important;
    line-height: 1.15 !important;
    margin: 0 !important;
  }

  .section-mapgym-preview .mapgym-preview__quick-text{
    font-size: 14px !important;
    line-height: 1.45 !important;
    margin: 0 !important;
  }

  .section-mapgym-preview .mapgym-preview__plans{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin: 4px 0 2px !important;
  }

  .section-mapgym-preview .mapgym-preview__plan-option span{
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 10px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    box-shadow: none !important;
  }

  .section-mapgym-preview .mapgym-preview__customer-form{
    display: grid !important;
    gap: 10px !important;
  }

  .section-mapgym-preview .mapgym-preview__label{
    margin: 0 0 -2px !important;
    font-size: 13px !important;
  }

  .section-mapgym-preview .mapgym-preview__form-row{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .section-mapgym-preview .mapgym-preview__input{
    width: 100% !important;
    height: 48px !important;
    font-size: 14px !important;
  }

  .section-mapgym-preview .mapgym-preview__button{
    width: 100% !important;
    min-height: 48px !important;
    padding: 0 16px !important;
    font-size: 14px !important;
    white-space: normal !important;
    text-align: center !important;
  }

  /* Mapa a la derecha del formulario */
  .section-mapgym-preview .mapgym-preview__map{
    grid-area: map !important;
    width: 100% !important;
    height: 390px !important;
    min-height: 390px !important;
    margin: 0 !important;
    border-radius: 24px !important;
    overflow: hidden !important;
  }

  /* Mini listado debajo */
  .section-mapgym-preview .mapgym-preview__list-card{
    padding: 24px !important;
    border-radius: 30px !important;
  }

  .section-mapgym-preview .mapgym-preview__list-title{
    font-size: 26px !important;
  }

  .section-mapgym-preview .mapgym-preview__list{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .section-mapgym-preview .mapgym-preview__gym{
    min-height: 104px !important;
    grid-template-columns: 88px minmax(0, 1fr) !important;
  }
}

/* Ajuste para pantallas grandes */
@media (min-width: 1500px){
  .section-mapgym-preview .mapgym-preview .page-width{
    max-width: 1500px !important;
  }

  .section-mapgym-preview .mapgym-preview__inner{
    grid-template-columns: 540px minmax(0, 1fr) !important;
  }

  .section-mapgym-preview .mapgym-preview__map-card{
    grid-template-columns: 360px minmax(0, 1fr) !important;
  }
}
/* =========================
   MG PREVIEW — MAP INFO WINDOW
========================= */

.mg-preview-iw{
  width: 240px;
  max-width: 240px;
  padding: 2px 0 0;
  font-family: inherit;
}

.mg-preview-iw__badge{
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  margin-bottom: 8px;
  border-radius: 999px;
  background: rgba(34,45,87,.08);
  color: var(--mapgym-primary, #222d57);
  font-size: 11px;
  font-weight: 800;
}

.mg-preview-iw__title{
  margin: 0 0 6px;
  color: var(--mapgym-text, #101426);
  font-size: 17px;
  line-height: 1.15;
  font-weight: 850;
}

.mg-preview-iw__meta,
.mg-preview-iw__address{
  margin: 0 0 6px;
  color: var(--mapgym-muted, #66708c);
  font-size: 12px;
  line-height: 1.35;
}

.mg-preview-iw__button{
  width: 100%;
  min-height: 38px;
  margin-top: 10px;
  border: 0;
  border-radius: 999px;
  background: var(--mapgym-primary, #222d57);
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.mg-preview-iw__button:hover{
  filter: brightness(.96);
}

/* Limpieza visual del popup de Google */
.gm-style .gm-style-iw-c{
  border-radius: 18px !important;
  padding: 12px !important;
}

.gm-style .gm-style-iw-d{
  overflow: visible !important;
}
/* =========================
   MG PREVIEW — MAP GYM POPUP
========================= */

.mg-preview-mapcard{
  width: 270px;
  max-width: 270px;
  font-family: inherit;
  color: var(--mapgym-text, #101426);
}

.mg-preview-mapcard__media{
  width: 100%;
  height: 145px;
  overflow: hidden;
  border-radius: 16px;
  background: #eef2ff;
  margin-bottom: 12px;
}

.mg-preview-mapcard__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.mg-preview-mapcard__ph{
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background:
    radial-gradient(320px 160px at 20% 10%, rgba(76,98,255,.22) 0%, rgba(76,98,255,0) 60%),
    linear-gradient(135deg, #222d57 0%, #121833 55%, #0b0f22 100%);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .08em;
}

.mg-preview-mapcard__body{
  display: grid;
  gap: 6px;
}

.mg-preview-mapcard__badge{
  width: fit-content;
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(34,45,87,.08);
  color: var(--mapgym-primary, #222d57);
  font-size: 11px;
  font-weight: 850;
}

.mg-preview-mapcard__title{
  margin: 2px 0 0;
  font-size: 19px;
  line-height: 1.12;
  font-weight: 850;
  letter-spacing: -.02em;
  color: var(--mapgym-text, #101426);
}

.mg-preview-mapcard__rating,
.mg-preview-mapcard__meta,
.mg-preview-mapcard__address{
  margin: 0;
  font-size: 13px;
  line-height: 1.35;
  color: var(--mapgym-muted, #66708c);
}

.mg-preview-mapcard__address{
  color: #4f586f;
}

/* Google InfoWindow clean */
.gm-style .gm-style-iw-c{
  padding: 12px !important;
  border-radius: 20px !important;
  box-shadow: 0 18px 50px rgba(10,16,40,.18) !important;
}

.gm-style .gm-style-iw-d{
  overflow: visible !important;
  max-height: none !important;
}

.gm-style .gm-ui-hover-effect{
  top: 4px !important;
  right: 4px !important;
}
/* =========================
   MG PREVIEW — MAP GYM POPUP
========================= */

.mg-preview-mapcard{
  width: 270px;
  max-width: 270px;
  font-family: inherit;
  color: var(--mapgym-text, #101426);
}

.mg-preview-mapcard__media{
  width: 100%;
  height: 145px;
  overflow: hidden;
  border-radius: 16px;
  background: #eef2ff;
  margin-bottom: 12px;
}

.mg-preview-mapcard__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.mg-preview-mapcard__ph{
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background:
    radial-gradient(320px 160px at 20% 10%, rgba(76,98,255,.22) 0%, rgba(76,98,255,0) 60%),
    linear-gradient(135deg, #222d57 0%, #121833 55%, #0b0f22 100%);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .08em;
}

.mg-preview-mapcard__body{
  display: grid;
  gap: 6px;
}

.mg-preview-mapcard__badge{
  width: fit-content;
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(34,45,87,.08);
  color: var(--mapgym-primary, #222d57);
  font-size: 11px;
  font-weight: 850;
}

.mg-preview-mapcard__title{
  margin: 2px 0 0;
  font-size: 19px;
  line-height: 1.12;
  font-weight: 850;
  letter-spacing: -.02em;
  color: var(--mapgym-text, #101426);
}

.mg-preview-mapcard__rating,
.mg-preview-mapcard__meta,
.mg-preview-mapcard__address{
  margin: 0;
  font-size: 13px;
  line-height: 1.35;
  color: var(--mapgym-muted, #66708c);
}

.mg-preview-mapcard__address{
  color: #4f586f;
}

/* Limpieza del popup de Google */
.section-mapgym-preview .gm-style .gm-style-iw-c{
  padding: 12px !important;
  border-radius: 20px !important;
  box-shadow: 0 18px 50px rgba(10,16,40,.18) !important;
}

.section-mapgym-preview .gm-style .gm-style-iw-d{
  overflow: visible !important;
  max-height: none !important;
}

.section-mapgym-preview .gm-style .gm-ui-hover-effect{
  top: 4px !important;
  right: 4px !important;
}
/* =========================
   MAPGYM — Social Proof Bar
========================= */

.mg-proof{
  padding: 28px 0;
  background: #fff;
}

.mg-proof__inner{
  width: 100%;
}

.mg-proof__card{
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  padding: 24px 28px;
  background:
    radial-gradient(520px 260px at 90% 0%, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 62%),
    linear-gradient(135deg, #222d57 0%, #141b3a 100%);
  color: #fff;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px 28px;
  align-items: center;
  box-shadow: 0 18px 48px rgba(34,45,87,.18);
}

.mg-proof__card::before{
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -80px;
  top: -120px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  pointer-events: none;
}

.mg-proof__card::after{
  content: "";
  position: absolute;
  width: 170px;
  height: 170px;
  left: -60px;
  bottom: -90px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  pointer-events: none;
}

.mg-proof__left{
  position: relative;
  z-index: 1;
  display: grid;
  gap: 10px;
}

.mg-proof__badge{
  width: fit-content;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.86);
  font-size: 12px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.mg-proof__main{
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}

.mg-proof__number{
  font-size: clamp(38px, 5vw, 62px);
  line-height: .9;
  font-weight: 900;
  letter-spacing: -.06em;
  color: #fff;
}

.mg-proof__text{
  max-width: 620px;
  font-size: clamp(21px, 2.2vw, 32px);
  line-height: 1.12;
  font-weight: 850;
  letter-spacing: -.04em;
  color: #fff;
}

.mg-proof__subtext{
  position: relative;
  z-index: 1;
  grid-column: 1 / 2;
  max-width: 760px;
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 15px;
  line-height: 1.45;
}

.mg-proof__cta{
  position: relative;
  z-index: 1;
  grid-column: 2 / 3;
  grid-row: 1 / span 2;
  justify-self: end;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 22px;
  border-radius: 999px;
  background: #fff;
  color: #222d57;
  text-decoration: none;
  font-size: 14px;
  font-weight: 850;
  white-space: nowrap;
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
  transition: transform .18s ease, box-shadow .18s ease;
}

.mg-proof__cta:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 34px rgba(0,0,0,.16);
}

/* Mobile */
@media (max-width: 749px){
  .mg-proof{
    padding: 18px 0;
  }

  .mg-proof__card{
    padding: 22px;
    border-radius: 26px;
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .mg-proof__main{
    display: grid;
    gap: 8px;
  }

  .mg-proof__number{
    font-size: 48px;
  }

  .mg-proof__text{
    font-size: 26px;
    line-height: 1.08;
  }

  .mg-proof__subtext{
    grid-column: auto;
    font-size: 14px;
  }

  .mg-proof__cta{
    grid-column: auto;
    grid-row: auto;
    justify-self: stretch;
    width: 100%;
    min-height: 52px;
    font-size: 15px;
  }
}

/* =========================================================
   MAPGYM — COLOR SECUNDARIO MOSTAZA
   ========================================================= */

:root{
  --mapgym-accent: #f4b942;
  --mapgym-accent-soft: rgba(244, 185, 66, .16);
  --mapgym-accent-mid: rgba(244, 185, 66, .28);
  --mapgym-accent-strong: #d9981e;
}

/* =========================================================
   MAPGYM — BARRA DE LANZAMIENTO EN MOSTAZA
   ========================================================= */

.mg-launch-progress__fill{
  background:
    linear-gradient(
      90deg,
      #f7d982 0%,
      var(--mapgym-accent, #f4b942) 48%,
      var(--mapgym-accent-strong, #d9981e) 100%
    ) !important;
  box-shadow: 0 0 30px rgba(244, 185, 66, .42) !important;
}

.mg-launch-progress__status{
  background: var(--mapgym-accent, #f4b942) !important;
  border-color: var(--mapgym-accent, #f4b942) !important;
  color: #222d57 !important;
  box-shadow: 0 12px 28px rgba(244, 185, 66, .24) !important;
}

.mg-launch-progress__remaining strong{
  color: var(--mapgym-accent, #f4b942) !important;
}

.mg-launch-progress__badge{
  border-color: rgba(244, 185, 66, .36) !important;
}

.mg-launch-progress__bar{
  background: rgba(244, 185, 66, .16) !important;
}

/* =========================================================
   MAPGYM — ACENTOS MOSTAZA EN “CÓMO FUNCIONA”
   ========================================================= */

.mapgym-how__number{
  background: var(--mapgym-accent-soft, rgba(244, 185, 66, .16)) !important;
  color: #222d57 !important;
  border: 1px solid rgba(244, 185, 66, .28) !important;
}

.mapgym-how__icon{
  background: var(--mapgym-accent, #f4b942) !important;
  color: #222d57 !important;
  box-shadow: 0 12px 28px rgba(244, 185, 66, .22) !important;
}

/* =========================================================
   MAPGYM — ACENTOS MOSTAZA EN PLANES
   ========================================================= */

.mapgym-plan__badge{
  background: var(--mapgym-accent, #f4b942) !important;
  color: #222d57 !important;
  border-color: var(--mapgym-accent, #f4b942) !important;
}

.mapgym-plan.is-featured{
  border-color: rgba(244, 185, 66, .48) !important;
  box-shadow:
    0 18px 48px rgba(34, 45, 87, .12),
    0 0 0 1px rgba(244, 185, 66, .22) !important;
}

.mapgym-plan.is-featured .mapgym-btn--primary{
  box-shadow:
    0 14px 34px rgba(244, 185, 66, .18),
    0 14px 34px rgba(34, 45, 87, .16) !important;
}

/* =========================================================
   MAPGYM — ACENTOS MOSTAZA EN SECCIÓN MAPA / FORMULARIO
   ========================================================= */

.mapgym-preview__plan-option.is-active span,
.mapgym-preview__plan-option input:checked + span{
  background: var(--mapgym-accent, #f4b942) !important;
  border-color: var(--mapgym-accent, #f4b942) !important;
  color: #222d57 !important;
  box-shadow: 0 12px 24px rgba(244, 185, 66, .22) !important;
}

.mapgym-preview__live{
  background: var(--mapgym-accent-soft, rgba(244, 185, 66, .16)) !important;
  color: #222d57 !important;
}

.mapgym-preview__map-kicker,
.mapgym-preview__eyebrow{
  color: #222d57 !important;
}

.mapgym-preview__map-kicker::first-letter,
.mapgym-preview__eyebrow::first-letter{
  color: var(--mapgym-accent-strong, #d9981e) !important;
}

/* =========================================================
   MAPGYM — ACENTOS MOSTAZA EN SECCIÓN “QUÉ ES MAPGYM”
   ========================================================= */

.mg-flex__floating{
  border: 1px solid rgba(244, 185, 66, .34) !important;
}

.mg-flex__floating span{
  color: var(--mapgym-accent-strong, #d9981e) !important;
}

.mg-flex__highlight strong{
  color: #222d57 !important;
}

.mg-flex__highlight{
  border-color: rgba(244, 185, 66, .20) !important;
}

.mg-flex__highlight::before{
  content: "";
  display: block;
  width: 38px;
  height: 4px;
  border-radius: 999px;
  background: var(--mapgym-accent, #f4b942);
  margin-bottom: 12px;
}

/* =========================================================
   MAPGYM — ACENTOS MOSTAZA EN BOTONES SIN CAMBIAR EL AZUL
   ========================================================= */

.mapgym-btn--primary,
.mapgym-preview__button,
.mapgym-gyms__submit{
  box-shadow:
    0 12px 28px rgba(244, 185, 66, .10),
    0 12px 28px rgba(34, 45, 87, .16) !important;
}

.mapgym-btn--primary:hover,
.mapgym-preview__button:hover,
.mapgym-gyms__submit:hover{
  box-shadow:
    0 16px 34px rgba(244, 185, 66, .16),
    0 16px 34px rgba(34, 45, 87, .18) !important;
}

/* =========================================================
   MAPGYM — ACENTOS MOSTAZA EN TARJETAS / BADGES
   ========================================================= */

.mapgym-gym__badge,
.mapgym-mapcard__select,
.mg-preview-mapcard__badge{
  background: var(--mapgym-accent, #f4b942) !important;
  border-color: var(--mapgym-accent, #f4b942) !important;
  color: #222d57 !important;
}

.mapgym-gym__rating{
  color: var(--mapgym-accent-strong, #d9981e) !important;
}

/* =========================================================
   MAPGYM — MOBILE
   ========================================================= */

@media (max-width: 749px){
  .mg-launch-progress__status{
    box-shadow: 0 10px 22px rgba(244, 185, 66, .22) !important;
  }

  .mapgym-how__icon{
    box-shadow: 0 10px 22px rgba(244, 185, 66, .18) !important;
  }
}
/* =========================
   MAPGYM — Hero mustard accents
========================= */

.mapgym-hero .mapgym-eyebrow{
  border: 1px solid rgba(244,185,66,.32);
  background: rgba(244,185,66,.10);
  color: rgba(255,255,255,.9);
  width: fit-content;
  padding: 8px 13px;
  border-radius: 999px;
}

.mapgym-hero .mapgym-eyebrow::before{
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 999px;
  background: #f4b942;
  box-shadow: 0 0 16px rgba(244,185,66,.65);
  vertical-align: middle;
}

.mapgym-hero .mapgym-hero__title::after{
  content: "";
  display: block;
  width: 82px;
  height: 5px;
  margin-top: 18px;
  border-radius: 999px;
  background: linear-gradient(90deg, #f4b942 0%, rgba(244,185,66,0) 100%);
}

.mapgym-hero .mapgym-btn--primary{
  box-shadow:
    0 14px 34px rgba(244,185,66,.13),
    0 14px 34px rgba(0,0,0,.14);
}

.mapgym-hero .mapgym-btn--ghost{
  border-color: rgba(244,185,66,.30);
}

.mapgym-hero .mapgym-btn--ghost:hover{
  border-color: rgba(244,185,66,.55);
  background: rgba(244,185,66,.08);
}

.mapgym-hero .mapgym-hero__note::before{
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 999px;
  background: #f4b942;
  box-shadow: 0 0 14px rgba(244,185,66,.55);
  vertical-align: middle;
}

@media (max-width: 749px){
  .mapgym-hero .mapgym-hero__title::after{
    width: 68px;
    height: 4px;
    margin-top: 14px;
  }
}