/* ==========================================================================
   RedVivienda · responsive.css
   Ajustes por punto de ruptura. Se carga en último lugar.
   Puntos: 1180px (tablet grande) · 900px (tablet) · 620px (móvil)
   ========================================================================== */

@media (max-width: 1180px) {
  .feature { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .feature__card { padding: var(--s-6); margin-left: calc(var(--s-8) * -1); }
  .feature--reverse .feature__card { margin-right: calc(var(--s-8) * -1); }
  :root { --w-sidebar: 232px; }

  .promo__inner { grid-template-columns: 1fr; }
  .detail-layout { grid-template-columns: minmax(0, 1fr) 300px; }

  .directory__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }

}

/* En vacacional la fila lleva cinco bloques —pestañas, alojamiento,
   fechas y huéspedes, destino y Buscar—, así que en cuanto la pantalla
   deja de ser muy ancha se recortan las holguras para que siga cabiendo
   en una sola línea. */
@media (max-width: 1400px) {
  .op-toggle { gap: 6px; }
  .op-toggle button { padding-inline: 7px; }
  .estancia { gap: 6px; }
  .estancia__campo { padding: 0 var(--s-2); }
  .estancia__valor { width: 104px; }
  .estancia__campo--huespedes .estancia__valor { width: 28px; }
  .typepick__btn { min-width: 148px; gap: var(--s-4); }
  .typepick__btn--estancia { min-width: 130px; }
  .searchband__submit { padding-inline: var(--s-4); }
  .searchband__input-wrap { flex-basis: 196px; }
}

@media (max-width: 900px) {
  .searchband__form { flex-direction: column; }
  .searchband__form > * { width: 100%; }
  .searchband__input-wrap { min-width: 0; }
  /* En una sola columna, entrada y salida se reparten el ancho y los
     huéspedes se quedan con lo justo. */
  .estancia { display: grid; grid-template-columns: 1fr 1fr auto; }
  .estancia__valor { width: 100%; }
  .estancia__campo--huespedes .estancia__valor { width: 52px; }
  .typepick__btn { min-width: 0; }
  .promo-pair { grid-template-columns: 1fr; }
  .news__grid { grid-template-columns: 1fr; }
  .feature { grid-template-columns: 1fr; margin-block: var(--s-10); }
  .feature__media { grid-row: 1; grid-column: 1; }
  .feature__card,
  .feature--reverse .feature__card {
    grid-row: 2;
    grid-column: 1;
    margin: calc(var(--s-8) * -1) var(--s-5) 0;
  }
  .feature--reverse .feature__media { grid-column: 1; }
  .site-nav { display: none; }
  /* En móvil manda el menú desplegable de la cabecera, no el megamenú. */
  .megamenu { display: none !important; }
  .nav-toggle { display: inline-grid; }
  .site-header__actions .icon-action span,
  .site-header__divider { display: none; }

  .searchbox__body { grid-template-columns: 1fr; }
  .searchbox__submit { width: 100%; }

  .results-layout { grid-template-columns: 1fr; gap: var(--s-4); }
  .filters-col {
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    max-height: none;
    background: var(--c-white);
    padding: var(--s-5);
    overflow-y: auto;
    display: none;
  }
  .filters-col.is-open { display: block; }
  .filters-mobile-bar { display: flex !important; }
  .filters__head [data-close-filters] { display: inline-flex; }

  .detail-layout { grid-template-columns: 1fr; }
  .detail-aside { position: static; }

  .tools-grid { grid-template-columns: 1fr; }

  .site-footer__grid { grid-template-columns: 1fr 1fr; }

  .listing__media { flex-basis: 220px; }

  .op-toggle { flex-wrap: wrap; }
  .op-toggle button { flex: 1 1 0; min-width: 0; padding-inline: var(--s-3); }
  .promo-card { grid-template-columns: 200px minmax(0, 1fr); }
  .directory__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .linkfarm { grid-template-columns: 1fr; }
  .footer-light__grid { grid-template-columns: 1fr 1fr; }
  .service-hero__inner { grid-template-columns: 1fr; }
  .service-tabs { grid-template-columns: 1fr; }
  .plan-grid { grid-template-columns: 1fr; }

}

@media (max-width: 620px) {
  /* En móvil se sirve una versión ligera y se encuadra sobre la casa. */
  .hero-photo { min-height: 500px; background-image: url("../img/hero-sm.jpg?v=f44c65ed"); background-position: 34% 60%; }
  .searchband__inner { padding-inline: var(--s-4); }
  .hero-photo__credit { display: none; }
  .searchband__title { margin-bottom: var(--s-4); }
  .op-toggle { flex-wrap: wrap; gap: var(--s-2); }
  .op-toggle button { flex: 1 1 0; min-width: 0; padding-inline: var(--s-3); }
  .searchband { padding: var(--s-5) var(--s-4); }
  .searchband__title { font-size: 21px; }
  .directory__count { flex-basis: 54px; }
  .feature__card, .feature--reverse .feature__card { margin-inline: var(--s-3); padding: var(--s-5); }
  body { font-size: 14.5px; }

  .page { padding-inline: var(--s-4); }
  .searchband__inner { padding-inline: var(--s-4); }
  .hero-photo__credit { display: none; }
  .section { padding-block: var(--s-8); }

  .hide-xs,
  [data-my-alerts] { display: none; }
  .brand__name { font-size: 17px; }
  .site-header__actions .btn--secondary { display: none; }
  .site-header__actions { gap: var(--s-1); }
  .site-header__inner { gap: var(--s-2); }
  .btn { padding-inline: var(--s-3); }

  .hero { min-height: 380px; }
  .hero__title { font-size: 25px; }
  .hero__subtitle { font-size: var(--fs-md); }

  .stat-strip__inner { gap: var(--s-6); }
  .stat-strip dt { font-size: var(--fs-lg); }

  .listing { flex-direction: column; }
  .listing--compact { flex-direction: row; }
  .listing--compact .listing__media { flex: 0 0 104px; }
  .listing__media { flex: none; width: 100%; aspect-ratio: 4 / 3; }
  .toolbar__title { font-size: var(--fs-lg); }
  .form-grid { grid-template-columns: 1fr; }
  .promo { padding: var(--s-6); }
  .promo h2 { font-size: var(--fs-2xl); }

  .detail-header__price { font-size: var(--fs-2xl); }
  .detail-gallery { aspect-ratio: 4 / 3; }

  .site-footer__grid { grid-template-columns: 1fr; gap: var(--s-6); }
  .site-footer__legal nav { margin-left: 0; }

  .modal__body { padding: var(--s-5); }

  .op-toggle button { font-size: var(--fs-sm); }
  .estancia { grid-template-columns: 1fr 1fr; }
  .estancia__campo--huespedes { grid-column: 1 / -1; }
  .estancia__campo--huespedes .estancia__valor { width: 100%; }
  .promo-card { grid-template-columns: 1fr; }
  .promo-card__media { aspect-ratio: 16 / 9; }
  .directory__cols { grid-template-columns: 1fr; }
  .footer-light__grid { grid-template-columns: 1fr; gap: var(--s-6); }
  .footer-light__legal nav { margin-left: 0; }

}

/* Barra flotante de filtros en móvil (oculta en escritorio) */
.filters-mobile-bar {
  display: none;
  gap: var(--s-2);
  align-items: center;
  margin-bottom: var(--s-4);
}

@media print {
  .site-header, .site-footer, .filters-col,
  .toast, .modal-overlay, .promo, .seo-block { display: none !important; }
  .listing { break-inside: avoid; }
}
