/* Stay&Go · P10D · Accesibilidad móvil y botones táctiles */
:root{
  --sg-focus-ring: 0 0 0 4px rgba(255,56,92,.28);
  --sg-focus-color: #ff385c;
}

/* Enlace de salto visible y usable */
.sgSkip,
.skip-link{
  position:absolute!important;
  left:-9999px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
.sgSkip:focus,
.sgSkip:focus-visible,
.skip-link:focus,
.skip-link:focus-visible{
  left:12px!important;
  top:12px!important;
  width:auto!important;
  height:auto!important;
  z-index:2147483000!important;
  padding:12px 14px!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#111827!important;
  border:2px solid var(--sg-focus-color)!important;
  box-shadow:0 18px 45px rgba(17,24,39,.18), var(--sg-focus-ring)!important;
  font-weight:900!important;
  text-decoration:none!important;
}

/* Foco visible real para teclado */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--sg-focus-color)!important;
  outline-offset:3px!important;
  box-shadow:var(--sg-focus-ring)!important;
}

/* Evita focos invisibles por estilos antiguos */
a, button, input, select, textarea, summary, [role="button"]{
  -webkit-tap-highlight-color:rgba(255,56,92,.18);
}

/* Tamaño táctil mínimo recomendado en móvil */
@media (max-width: 760px){
  a.btn,
  .btn,
  button,
  .sgBtn,
  .sgNav a,
  .sgNav__link,
  .sgNavToggle,
  .propActions a,
  .actions a,
  .actions button,
  .card a,
  .featuredSection a,
  .listing-card a,
  .property-card a,
  [role="button"]{
    min-height:44px!important;
    min-width:44px!important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    line-height:1.15!important;
  }

  input,
  select,
  textarea{
    min-height:46px!important;
    font-size:16px!important; /* evita zoom automático en iPhone */
  }

  label{
    line-height:1.25!important;
  }

  .sgNav,
  .actions,
  .propActions,
  .filters,
  .search,
  form{
    gap:10px!important;
  }

  .sgNav a,
  .sgNav__link{
    padding:12px 14px!important;
    border-radius:999px!important;
    white-space:nowrap!important;
  }

  .sgNavToggle{
    padding:12px 14px!important;
    border-radius:999px!important;
  }

  .featuredSection .cmpBtn,
  .cmpBtn,
  .favBtn,
  .heart,
  .favorite,
  .favorite-btn{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}

/* Contraste de textos secundarios */
.muted,
.text-muted,
.sgMuted,
small,
.card small,
.property small{
  color:#4b5563!important;
}

/* Estados activos más claros */
[aria-current="page"],
.sgNav a.active,
.sgNav__link.active{
  font-weight:900!important;
  text-decoration:none!important;
}

/* Reduce mareos y animaciones en usuarios sensibles */
@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
  }
}

/* Anclas internas no quedan ocultas bajo cabecera fija */
#main-content,
main[id],
section[id]{
  scroll-margin-top:90px;
}

/* Tablas y controles no deben romper el ancho móvil */
@media (max-width: 760px){
  table{
    font-size:14px;
  }
  .tableWrap,
  .table-wrap,
  .table-responsive{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
}
