:root {
  --bridge-gap: 14px;
}
html, body {
  max-width: 100vw;
  overflow-x: hidden !important;
}
body.sheet-open,
body.nav-open {
  overflow-x: hidden !important;
}
body * {
  box-sizing: border-box;
}
img, svg, iframe {
  max-width: 100%;
}
.shell.wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* Asset-driven gallery + buttons */
.instagram-solid {
  background: #111 !important;
  color: #fff !important;
  border-color: #111 !important;
}
.instagram-solid i { color: #fff !important; }

.bridge-header-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.bridge-auth-group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.bridge-auth-group form { margin: 0; }
.bridge-auth-btn,
.bridge-user-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 14px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 800;
  border: 1px solid rgba(17, 24, 39, .12);
  background: #fff;
  color: #0f172a;
}
.bridge-auth-btn.primary {
  background: #111;
  color: #fff;
  border-color: #111;
}
.bridge-auth-btn.outline {
  background: #fff;
}
.bridge-user-chip {
  background: #f8fafc;
}
.mobile-menu-extra { display: none; }

/* Fitness gallery */
.fitness-gallery-card {
  display: grid;
  gap: 12px;
}
.fitness-gallery-main {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid rgba(15, 23, 42, .08);
  background: #0f172a;
  aspect-ratio: 4 / 3;
}
.fitness-gallery-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.fitness-gallery-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(15,23,42,.72);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.fitness-gallery-arrow.left { left: 12px; }
.fitness-gallery-arrow.right { right: 12px; }
.fitness-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.fitness-thumb {
  border: 1px solid rgba(15,23,42,.12);
  background: #fff;
  border-radius: 16px;
  padding: 4px;
  overflow: hidden;
}
.fitness-thumb.active {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37,99,235,.12);
}
.fitness-thumb img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}
.fitness-gallery-footer {
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, .08);
  background: #fff;
}
.fitness-gallery-footer img {
  width: 100%;
  display: block;
}

.bridge-form {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}
.bridge-grid.single { display: grid; grid-template-columns: 1fr; }
.bridge-field { display: grid; gap: 6px; }
.bridge-field label {
  font-size: 13px;
  font-weight: 800;
  color: #475569;
}
.bridge-field input,
.bridge-field textarea {
  width: 100%;
  min-height: 46px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, .12);
  background: #fff;
  font: inherit;
  color: #0f172a;
}
.bridge-field textarea {
  min-height: 96px;
  resize: vertical;
}
.bridge-note {
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
}
.bridge-message {
  border-radius: 14px;
  padding: 12px 14px;
  font-size: 14px;
  line-height: 1.5;
}
.bridge-message.success {
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
  color: #166534;
}
.bridge-message.error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.mobile-hours-sheet,
.fitness-modal {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .44);
  display: none;
  align-items: flex-end;
  justify-content: center;
  z-index: 90;
  padding: 16px;
}
.mobile-hours-sheet.open,
.fitness-modal.open {
  display: flex;
}
.mobile-hours-sheet-dialog,
.fitness-modal-dialog {
  width: min(100%, 520px);
  background: #fff;
  border-radius: 24px 24px 18px 18px;
  padding: 18px;
  box-shadow: 0 20px 60px rgba(15,23,42,.24);
}
.mobile-hours-sheet-head,
.fitness-modal-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}
.mobile-hours-chip {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 6px;
}
.mobile-hours-sheet-head h3,
.fitness-modal-head h3 {
  margin: 0;
  font-size: 22px;
  line-height: 1.1;
}
.mobile-hours-sheet-head p { margin: 8px 0 0; color: #64748b; line-height: 1.5; }
.mobile-hours-close,
.fitness-modal-close {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.08);
  background: #f8fafc;
  color: #0f172a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.mobile-hours-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.mobile-hour-pill {
  min-height: 48px;
  border-radius: 16px;
  border: 1px solid rgba(15,23,42,.12);
  background: #eff6ff;
  color: #1d4ed8;
  font-weight: 800;
  padding: 0 12px;
}
.fitness-modal-actions {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr;
}

/* Plan del predio */
.map-stage .f7 {
  left: 4% !important;
  right: 4% !important;
  top: 4% !important;
  height: 92% !important;
}
.map-stage .f5-1,
.map-stage .f5-2,
.map-stage .f5-3 {
  width: 18% !important;
  height: 68% !important;
  top: 16% !important;
  bottom: auto !important;
}
.map-stage .f5-1 { left: 19% !important; }
.map-stage .f5-2 { left: 41% !important; }
.map-stage .f5-3 { left: 63% !important; right: auto !important; }
.map-stage .f5-1 .pitch,
.map-stage .f5-2 .pitch,
.map-stage .f5-3 .pitch {
  transform: rotate(90deg) scale(1.16);
  transform-origin: center center;
}
.map-stage .f5-1 .map-label,
.map-stage .f5-2 .map-label,
.map-stage .f5-3 .map-label {
  left: 50% !important;
  top: 10px !important;
  transform: translateX(-50%);
}

/* Responsive focus */
@media (max-width: 860px) {
  html, body { overflow-x: hidden !important; }
  .shell.wrap {
    padding-inline: 0 !important;
  }
  .site-header {
    margin: 0 0 12px !important;
    border-radius: 0 0 18px 18px !important;
  }
  .site-nav {
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: auto !important;
    padding: 14px 14px 12px !important;
    width: 100% !important;
  }
  .site-brand { min-width: 0; }
  .brand-logo {
    width: auto !important;
    max-width: min(60vw, 240px) !important;
    height: 58px !important;
  }
  .nav-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    min-height: 46px;
    padding: 10px 12px !important;
    border-radius: 14px !important;
  }
  .nav-toggle-label { display: none !important; }
  .cta-header,
  .bridge-header-right { display: none !important; }
  .nav-links-wrap {
    display: none !important;
    width: 100% !important;
    grid-column: 1 / -1;
    padding-top: 12px !important;
    margin-top: 4px !important;
    border-top: 1px solid rgba(15,23,42,.08) !important;
  }
  body.nav-open .nav-links-wrap {
    display: block !important;
  }
  .nav-links {
    display: grid !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .nav-links .menu-item { width: 100%; }
  .nav-links a {
    display: block !important;
    width: 100% !important;
    padding: 13px 14px !important;
    border-radius: 14px !important;
    background: #f8fafc !important;
    border: 1px solid rgba(15,23,42,.08) !important;
  }
  .mobile-menu-extra {
    display: block;
    width: 100%;
    margin-top: 12px;
  }
  .mobile-menu-extra .bridge-auth-group.mobile {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .mobile-menu-extra .bridge-user-chip,
  .mobile-menu-extra .bridge-auth-btn,
  .mobile-menu-extra form {
    width: 100%;
  }

  .hero-visual,
  .card,
  .field-map,
  .gym-layout,
  .info-grid,
  .reviews-grid,
  .footer-grid,
  .predio-gallery-shell,
  .map-shell,
  .gym-content-card,
  .gym-poster-card {
    max-width: 100% !important;
  }
  .hero-bottom {
    padding: 18px 16px !important;
    gap: 14px !important;
  }
  .hero-copy h1 {
    font-size: clamp(1.9rem, 8vw, 2.55rem) !important;
    line-height: 1.02 !important;
  }
  .hero-copy p {
    font-size: 15px !important;
    line-height: 1.58 !important;
  }
  .hero-actions,
  .action-row,
  .gym-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .hero-actions .btn,
  .action-row .btn,
  .gym-actions .btn {
    width: 100% !important;
  }

  .section-title,
  .section-head,
  #ubicacion .section-title,
  #ubicacion .section-head {
    text-align: center !important;
    padding-inline: 16px !important;
  }
  .features,
  .reviews-grid,
  .info-stack,
  .mini-stats,
  .gym-layout,
  .map-shell {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .predio-gallery-shell {
    gap: 14px !important;
    padding-inline: 14px !important;
  }
  .gallery-card.center {
    transform: none !important;
    margin: 0 !important;
  }
  .gallery-card.center .gallery-media,
  .gallery-card.center img,
  #galleryMainImage {
    min-height: 240px !important;
    max-height: 280px !important;
    object-fit: cover !important;
  }
  .gallery-copy {
    padding: 16px !important;
    text-align: left !important;
  }
  .thumbs-row,
  .gallery-thumbs {
    display: flex !important;
    gap: 10px !important;
    overflow-x: auto !important;
    padding-bottom: 6px !important;
    scroll-snap-type: x mandatory;
  }
  .thumbs-row > *,
  .gallery-thumbs > * {
    flex: 0 0 82px;
    scroll-snap-align: start;
  }

  .field-map {
    min-height: 300px !important;
    padding: 12px !important;
  }
  .map-stage { inset: 12px !important; }
  .map-stage .f7 {
    left: 5% !important;
    right: 5% !important;
    top: 5% !important;
    height: 90% !important;
  }
  .map-stage .f5-1,
  .map-stage .f5-2,
  .map-stage .f5-3 {
    width: 20% !important;
    height: 64% !important;
    top: 18% !important;
  }
  .map-stage .f5-1 { left: 16% !important; }
  .map-stage .f5-2 { left: 40% !important; }
  .map-stage .f5-3 { left: 64% !important; }

  .grid-head,
  .toolbar-pill,
  .selected-summary,
  .grid-shell {
    width: 100% !important;
    max-width: 100% !important;
  }
  .grid-head {
    align-items: stretch !important;
    gap: 10px !important;
  }
  .hours-row { display: none !important; }
  .row {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-bottom: 14px !important;
  }
  .row .slot { display: none !important; }
  .field-cell {
    min-height: auto !important;
    padding: 16px !important;
  }
  .selected-summary {
    padding: 16px !important;
    margin-bottom: 12px !important;
  }
  #mobileSlotPicker { display: none !important; }

  .gym-layout {
    padding-inline: 14px !important;
  }
  .gym-poster-card,
  .gym-content-card {
    padding: 16px !important;
  }
  .fitness-gallery-main { aspect-ratio: 4 / 5; }
  .fitness-gallery-thumbs {
    display: flex !important;
    gap: 10px !important;
    overflow-x: auto !important;
    padding-bottom: 6px !important;
  }
  .fitness-thumb {
    flex: 0 0 74px;
  }
  .schedule-list {
    gap: 10px !important;
  }
  .schedule-item {
    padding: 12px 14px !important;
  }
  .gym-actions {
    margin-top: 14px !important;
  }

  #ubicacion .map-card,
  .map-card,
  .map-content {
    padding: 16px !important;
  }
  .map-shell iframe,
  .map-frame {
    min-height: 260px !important;
    width: 100% !important;
  }
  .reviews-grid {
    padding-inline: 14px !important;
  }
  .review-card {
    padding: 16px !important;
    min-height: auto !important;
  }

  .mobile-hours-list { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
  .mobile-menu-extra .bridge-auth-group.mobile {
    grid-template-columns: 1fr;
  }
  .mobile-hours-list { grid-template-columns: 1fr; }
  .fitness-gallery-main { aspect-ratio: 4 / 5.4; }
}
:root{--header-offset:78px}
body.bridge-polished .hero-visual{padding-top:calc(var(--header-offset) + 18px)!important}
body.bridge-polished .site-nav{position:sticky;top:0;z-index:60}
body.bridge-polished .hero-bottom{align-items:start}
.bridge-header-right{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.bridge-auth-btn.reserve-header{background:#0b5d2b;color:#fff;border:1px solid rgba(255,255,255,.18)}
.mobile-menu-extra .bridge-auth-btn.reserve-header{display:none}
.predio-gallery-card.responsive-gallery{display:grid;gap:14px;background:#fff;border:1px solid #e5e7eb;border-radius:24px;padding:16px;box-shadow:0 18px 40px rgba(15,23,42,.08)}
.predio-gallery-main{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:16/10;background:#0f172a}
.predio-gallery-image{width:100%;height:100%;display:block;object-fit:cover}
.predio-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:none;border-radius:999px;background:rgba(255,255,255,.92);display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 24px rgba(15,23,42,.18)}
.predio-arrow.left{left:12px}.predio-arrow.right{right:12px}
.predio-gallery-thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.predio-thumb{border:2px solid transparent;border-radius:16px;padding:0;overflow:hidden;background:#fff;cursor:pointer;aspect-ratio:4/3}
.predio-thumb img{width:100%;height:100%;display:block;object-fit:cover}
.predio-thumb.active{border-color:#0b5d2b;box-shadow:0 10px 24px rgba(11,93,43,.18)}
.map-stage-premium{background:linear-gradient(180deg,#0f172a,#111827);padding:14px;border-radius:22px;overflow:hidden}
.premium-pitch-svg{display:block;width:100%;height:auto}
#ubicacion .action-row, #ubicacion .info-card .action-row{justify-content:center!important;flex-wrap:wrap}
#ubicacion .ig-chip-solid{display:inline-flex!important;align-items:center;gap:8px;padding:12px 16px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#111827;text-decoration:none}
.reviews-grid-polished{gap:14px!important}
.review-card-polished{border-radius:20px!important;padding:18px!important}
.fitness-gallery-card{display:grid;gap:14px}
.fitness-gallery-main{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3;background:#0f172a}
.fitness-gallery-image{width:100%;height:100%;object-fit:cover;display:block}
.fitness-gallery-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.fitness-thumb{border:2px solid transparent;border-radius:14px;padding:0;overflow:hidden;background:#fff;aspect-ratio:1/1}
.fitness-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.fitness-thumb.active{border-color:#0b5d2b}
.fitness-gallery-footer img{width:100%;height:auto;display:block;border-radius:18px}
.instagram-solid{background:#fff!important;color:#111827!important;border:1px solid #d1d5db!important}
@media (max-width:860px){
  body.bridge-polished .hero-visual{padding-top:calc(var(--header-offset) + 22px)!important}
  .predio-gallery-card.responsive-gallery{padding:12px;border-radius:20px}
  .predio-gallery-thumbs{grid-template-columns:repeat(3,minmax(78px,1fr));overflow-x:auto;padding-bottom:4px}
  .predio-thumb{min-width:78px}
  .bridge-header-right{display:none}
  .site-nav{margin-bottom:0!important}
  #ubicacion .section-title>div, #ubicacion .section-head>div, #ubicacion .section-title, #ubicacion .section-head{text-align:center!important}
  .gym-layout{grid-template-columns:1fr!important}
  .gym-content-card{padding-top:12px!important}
}

/* v17 polish */
.site-header{overflow:visible!important}
body{overflow-x:hidden}
main, .shell.wrap{overflow-x:hidden}
#inicio, .hero{scroll-margin-top:120px}
@media (max-width: 860px){
  .site-header{position:sticky;top:0;z-index:1000;margin-bottom:12px!important;border-radius:0 0 18px 18px!important}
  .section:first-of-type,.hero,.hero-section{margin-top:10px!important}
  .hero-bottom,.hero-visual,.card.hero-card{padding-top:12px!important}
  .nav-links-wrap{padding-bottom:6px!important}
  .predio-gallery-shell,.responsive-gallery,.responsive-gallery--predio{display:grid!important;gap:12px!important;padding-inline:14px!important}
  .predio-gallery-main{position:relative;overflow:hidden;border-radius:22px;min-height:240px;background:#10291b}
  .predio-gallery-image{width:100%;height:100%;min-height:240px;max-height:320px;object-fit:cover;display:block}
  .predio-gallery-thumbs{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory}
  .predio-thumb{flex:0 0 80px;border:1px solid rgba(255,255,255,.08);background:#fff;border-radius:16px;padding:0;overflow:hidden;scroll-snap-align:start}
  .predio-thumb img{width:100%;height:64px;object-fit:cover;display:block}
  .predio-thumb.active{outline:2px solid #1e4d37}
  .predio-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:42px;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:rgba(15,23,42,.45);color:#fff}
  .predio-arrow.left{left:10px}.predio-arrow.right{right:10px}
  .gym-layout{align-items:start!important}
  .gym-poster-card.fitness-gallery-card,.fitness-gallery-card{display:grid!important;gap:12px!important}
  .fitness-gallery-main{position:relative;overflow:hidden;border-radius:22px;background:#fff;min-height:260px}
  .fitness-gallery-image{width:100%;height:100%;min-height:260px;max-height:340px;object-fit:contain;display:block;background:#fff}
  .fitness-gallery-thumbs{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory}
  .fitness-thumb{flex:0 0 92px;border:1px solid rgba(15,23,42,.08);background:#fff;border-radius:16px;padding:0;overflow:hidden;scroll-snap-align:start}
  .fitness-thumb img{width:100%;height:78px;object-fit:cover;display:block}
  .fitness-thumb.active{outline:2px solid #1e4d37}
}
@media (min-width:861px){
  .predio-gallery-shell,.responsive-gallery--predio{display:grid!important;gap:14px!important}
  .predio-gallery-main{position:relative;overflow:hidden;border-radius:28px;min-height:440px;background:#10291b}
  .predio-gallery-image{width:100%;height:100%;min-height:440px;max-height:520px;object-fit:cover;display:block}
  .predio-gallery-thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
  .predio-thumb{border:1px solid rgba(15,23,42,.08);background:#fff;border-radius:18px;padding:0;overflow:hidden}
  .predio-thumb img{width:100%;height:84px;object-fit:cover;display:block}
  .predio-thumb.active{outline:2px solid #1e4d37}
  .predio-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:rgba(15,23,42,.42);color:#fff}
  .predio-arrow.left{left:16px}.predio-arrow.right{right:16px}
  .gym-layout{grid-template-columns:1.04fr .96fr!important;align-items:start!important}
  .fitness-gallery-card{display:grid!important;gap:14px!important}
  .fitness-gallery-main{position:relative;overflow:hidden;border-radius:28px;background:#fff;min-height:560px}
  .fitness-gallery-image{width:100%;height:100%;min-height:560px;max-height:680px;object-fit:contain;display:block;background:#fff}
  .fitness-gallery-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
  .fitness-thumb{border:1px solid rgba(15,23,42,.08);background:#fff;border-radius:16px;padding:0;overflow:hidden}
  .fitness-thumb img{width:100%;height:88px;object-fit:cover;display:block}
  .fitness-thumb.active{outline:2px solid #1e4d37}
}
.map-stage-premium{padding:8px 0}
.premium-pitch-svg{width:100%;height:auto;display:block}
.bridge-header-right .bridge-auth-group{display:flex;align-items:center;gap:10px}
.bridge-auth-btn.reserve-header{background:#0d402a;color:#fff;border-color:#0d402a}


.mobile-command-box{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #dbe3ec;border-radius:16px;background:#fff;box-shadow:0 12px 24px rgba(15,23,42,.08);margin-bottom:12px}.mobile-command-box i{color:#64748b}.mobile-command-box input{border:none;outline:none;width:100%;font-size:14px;background:transparent;color:#0f172a}
.predio-gallery-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:22px;align-items:start}.predio-gallery-copy{padding:22px;border-radius:28px;display:grid;gap:14px;box-shadow:0 18px 40px rgba(15,23,42,.08)}.predio-gallery-copy h3{margin:0}.predio-gallery-copy p{margin:0;color:#64748b;line-height:1.65}.predio-cta-actions{display:flex;flex-wrap:wrap;gap:10px}.predio-gallery-copy .schedule-item .hours{font-weight:600}
.predio-gallery-image,.predio-thumb img,.fitness-gallery-image,.fitness-thumb img{object-position:50% 50%}
@media (max-width:980px){.predio-gallery-layout{grid-template-columns:1fr}.predio-gallery-copy{order:2}.predio-gallery-card{order:1}}
@media (max-width:860px){body.nav-open .nav-links-wrap{padding-top:14px}.mobile-menu-extra{display:grid!important;gap:12px}.predio-gallery-layout{gap:14px}.predio-gallery-copy{padding:16px;border-radius:22px}.predio-cta-actions .btn{width:100%;justify-content:center}}


/* v24 fixes */
.slot.available{background:#dcefe1}
.slot.available:hover{background:#cce6d4}
.slot.booked,.slot.blocked{background:#d7dde5;cursor:not-allowed}
.slot.closed{background:#edf1f5;cursor:not-allowed}
.slot.past{background:#f3ece2;cursor:not-allowed}
.row.selected-row .slot.available{background:#d8eadc}
.row.selected-row .slot.closed,.row.selected-row .slot.past,.row.selected-row .slot.booked,.row.selected-row .slot.blocked{background:inherit}
.fitness-gallery-layout{align-items:start}
.fitness-gallery-layout .predio-gallery-copy{height:100%}
.fitness-gallery-layout .predio-gallery-card{height:100%}
@media (max-width:980px){
  .fitness-gallery-layout .predio-gallery-copy{order:2}
}
@media (max-width:860px){
  .reviews-card{padding:16px!important}
  .reviews-head{display:grid!important;gap:10px!important;text-align:left!important}
  .reviews-rating{justify-self:start!important}
  .reviews-grid{grid-template-columns:1fr!important;gap:12px!important}
  .review-item,.review-card{border-radius:18px!important;padding:16px!important}
}


.public-hover-card{position:absolute;z-index:1200;max-width:300px;background:#0f172a;color:#fff;border-radius:16px;padding:12px 14px;box-shadow:0 18px 40px rgba(15,23,42,.24);display:grid;gap:4px;opacity:0;pointer-events:none;transform:translateY(-4px);transition:.18s ease}
.public-hover-card strong{font-size:13px;line-height:1.2}.public-hover-card span{font-size:12px;line-height:1.45;color:rgba(255,255,255,.82)}.public-hover-card.open{opacity:1;transform:translateY(-10px)}
.public-slot-toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%) translateY(12px);max-width:min(92vw,460px);background:#0f172a;color:#fff;border-radius:16px;padding:12px 14px;box-shadow:0 18px 36px rgba(15,23,42,.26);opacity:0;pointer-events:none;z-index:1400;transition:.2s ease}.public-slot-toast.open{opacity:1;transform:translateX(-50%) translateY(0)}
body.bridge-polished{scroll-padding-top:calc(var(--header-offset) + 18px)}
body.bridge-polished .hero{padding-top:calc(var(--header-offset) + 10px)!important}
@media (max-width:860px){body.bridge-polished .hero{padding-top:calc(var(--header-offset) + 18px)!important}}
.fitness-gallery-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:22px;align-items:start}
.fitness-gallery-layout .fitness-gallery-card,.fitness-gallery-layout .fitness-gallery-copy{align-self:start}
.fitness-gallery-layout .fitness-gallery-main{aspect-ratio:4/3;min-height:0;background:#fff}
.fitness-gallery-layout .fitness-gallery-image{width:100%;height:100%;display:block;background:#fff}
.fitness-gallery-layout .fitness-gallery-thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.fitness-gallery-layout .fitness-thumb{border:2px solid transparent;border-radius:16px;overflow:hidden;background:#fff;aspect-ratio:4/3;padding:0}
.fitness-gallery-layout .fitness-thumb img{width:100%;height:100%;display:block;object-fit:cover}
.fitness-gallery-layout .fitness-thumb.active{border-color:#0b5d2b;box-shadow:0 10px 24px rgba(11,93,43,.18)}
@media (max-width:980px){.fitness-gallery-layout{grid-template-columns:1fr}.fitness-gallery-layout .fitness-gallery-copy{order:2}.fitness-gallery-layout .fitness-gallery-card{order:1}.fitness-gallery-layout .fitness-gallery-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:860px){.fitness-gallery-layout .fitness-gallery-main{aspect-ratio:4/4.6}.fitness-gallery-layout .fitness-gallery-thumbs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.fitness-gallery-layout .fitness-thumb{flex:0 0 86px;scroll-snap-align:start}}

/* v25 layout + mobile/header fixes */
@media (min-width:861px){
  .fitness-gallery-layout{grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr)!important;gap:22px!important;align-items:start!important}
  .fitness-gallery-layout .fitness-gallery-main{aspect-ratio:16/10!important;min-height:0!important;max-height:none!important;background:#10291b!important}
  .fitness-gallery-layout .fitness-gallery-main.poster-active{background:#ffffff!important}
  .fitness-gallery-layout .fitness-gallery-image{min-height:0!important;max-height:none!important;object-fit:cover!important}
  .fitness-gallery-layout .fitness-gallery-main.poster-active .fitness-gallery-image{object-fit:contain!important;background:#fff!important}
  .fitness-gallery-layout .fitness-gallery-card,.fitness-gallery-layout .fitness-gallery-copy{align-self:start!important}
  .fitness-gallery-layout .fitness-gallery-thumbs{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:10px!important}
  .fitness-gallery-layout .predio-gallery-copy{padding-top:22px!important}
}
@media (max-width:860px){
  body.bridge-polished .hero,
  body.bridge-polished .hero-visual,
  body.bridge-polished .hero-bottom{padding-top:calc(var(--header-offset) + 24px)!important}
  .fitness-gallery-layout .fitness-gallery-main{aspect-ratio:4/3.9!important}
}


/* v26 responsive overflow + fitness parity */
@media (max-width:860px){
  html,body,main,section,.shell,.shell.wrap,.container,.site-header,.site-nav,.nav-links-wrap,.hero,.hero-visual,.hero-bottom,.predio-gallery-layout,.fitness-gallery-layout,.predio-gallery-card,.fitness-gallery-card,.predio-gallery-copy,.fitness-gallery-copy,.gym-layout,.map-shell,.field-map,.reviews-grid,.footer-grid,.card,.gallery-card,.gallery-copy{max-width:100%!important;min-width:0!important;width:100%!important;margin-left:0!important;margin-right:0!important}
  body{overflow-x:hidden!important}
  main,.shell.wrap,section,.site-header,.predio-gallery-layout,.fitness-gallery-layout,.gym-layout{overflow-x:clip!important}
  .site-nav{padding-inline:12px!important}
  .mobile-command-box,.mobile-menu-extra,.nav-links,.nav-links .menu-item,.nav-links a{max-width:100%!important}
  .premium-pitch-svg{max-width:100%!important;height:auto!important}
  .pitch-hotspot{cursor:pointer}
}

.pitch-hotspot rect{transition:fill .18s ease,stroke .18s ease}
.pitch-hotspot:hover rect,.pitch-hotspot:focus-visible rect{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.35);stroke-width:4}

.fitness-gallery-layout .predio-gallery-copy,
.fitness-gallery-layout .fitness-gallery-copy{display:grid!important;align-content:start!important;gap:14px!important}
.fitness-gallery-layout .predio-cta-actions .btn,
.fitness-gallery-layout .gym-actions .btn{min-height:56px;padding-inline:22px;font-size:1rem}
.fitness-gallery-layout .schedule-item .day{font-weight:800}
.fitness-gallery-layout .schedule-item .hours{font-weight:600}
@media (min-width:861px){
  .fitness-gallery-layout{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr)!important;gap:22px!important;align-items:start!important}
  .fitness-gallery-layout .fitness-gallery-main{aspect-ratio:16/10!important;min-height:0!important;background:#10291b!important}
  .fitness-gallery-layout .fitness-gallery-image{min-height:0!important;max-height:none!important;object-fit:cover!important}
  .fitness-gallery-layout .fitness-gallery-main.poster-active .fitness-gallery-image{object-fit:contain!important;background:#fff!important}
  .fitness-gallery-layout .predio-gallery-copy,.fitness-gallery-layout .fitness-gallery-copy{padding:22px!important}
}
@media (max-width:860px){
  .fitness-gallery-layout .predio-gallery-copy,.fitness-gallery-layout .fitness-gallery-copy{padding:16px!important}
  .fitness-gallery-layout .predio-cta-actions .btn,.fitness-gallery-layout .gym-actions .btn{width:100%!important}
}


.mobile-command-box input{min-width:0!important}
.site-nav>*{min-width:0}
.nav-links-wrap,.mobile-menu-extra,.mobile-command-box{min-width:0!important}


@media (max-width:860px){
  html,body{overflow-x:hidden!important;max-width:100%!important;width:100%!important;position:relative!important}
  body.bridge-polished #reservas,
  body.bridge-polished #reservas .card,
  body.bridge-polished #reservas .grid-shell{overflow:hidden!important;min-width:0!important;max-width:100%!important}
  body.bridge-polished #reservas .hours-row,
  body.bridge-polished #reservas #rowsContainer,
  body.bridge-polished #reservas .note-bar{display:none!important}
  body.bridge-polished #reservas .grid-head{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
  body.bridge-polished #reservas .toolbar-pill,
  body.bridge-polished #reservas .toolbar-pill input{width:100%!important;min-width:0!important;max-width:100%!important}
  body.bridge-polished .map-field{pointer-events:auto!important;cursor:pointer!important;touch-action:manipulation!important}
  body.bridge-polished .map-stage{inset:12px!important}
  body.bridge-polished .field-map{width:100%!important;max-width:100%!important;overflow:hidden!important}
  body.bridge-polished .f7, body.bridge-polished .f5-1, body.bridge-polished .f5-2, body.bridge-polished .f5-3{max-width:100%!important}
}


/* v7 mobile: dejar el plano como apoyo visual y seleccionar desde la tarjeta de cancha */
@media (max-width:860px){
  body.bridge-polished #reservas .hours-row{display:none!important}
  body.bridge-polished #reservas #rowsContainer{display:block!important}
  body.bridge-polished #reservas #rowsContainer .row{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin-bottom:14px!important}
  body.bridge-polished #reservas #rowsContainer .row .slot{display:none!important}
  body.bridge-polished #reservas #rowsContainer .field-cell{display:block!important;min-height:auto!important;padding:16px!important;border-radius:18px!important;cursor:pointer!important}
  body.bridge-polished #reservas .note-bar{display:block!important;margin-top:10px!important}
  body.bridge-polished #reservas .note-bar .legend{display:none!important}
  body.bridge-polished #reservas .note-bar .note{font-size:.95rem!important;line-height:1.45!important}
  body.bridge-polished .field-map{pointer-events:none!important}
  body.bridge-polished .pitch-hotspot{pointer-events:none!important}
  body.bridge-polished .selected-summary{margin-bottom:14px!important}
  body.bridge-polished .field-cell .details{display:block!important}
}

/* v7: hoja de horarios con cierre más claro */
.mobile-hours-sheet-head{position:relative}
.mobile-hours-close{
  flex:0 0 auto;
  width:44px!important;
  height:44px!important;
  border:1px solid rgba(15,23,42,.12)!important;
  background:#ffffff!important;
  box-shadow:0 8px 18px rgba(15,23,42,.10)!important;
  color:#0f172a!important;
}
.mobile-hours-close:hover{background:#f8fafc!important}
.mobile-hours-close i{font-size:1rem}
