. 
/* ==========================================
   RESPONSIVE OVERRIDES (Tablets & Phones)
   Appended 2025-08-30
   Targets main layout, navbar, hero blocks, grids, cards, modals, and utility blocks
   Breakpoints:
     - Tablet: max-width: 1024px
     - Phone:  max-width: 640px
   ========================================== */

/* ------------ Tablet (<=1024px) ------------ */
@media (max-width: 1024px){
  /* Layout */
  .layout{ min-width: 0; }
  html{ scroll-padding-top: 84px; }

  /* Navbar */
  .layout__menu{ padding: 0 3rem; }
  .navbar__logo{ width: 150px; }
  .nav__list{ gap: 1.2rem; }
  .nav__item{ margin: 0 1.2rem; }
  .nav__title{ line-height: 5.2rem; }
  .nav__submenu{ left: 0; }

  /* Hero blocks */
  .index__layout__hero,
  .nosotros__layout__hero,
  .descuentos__layout__hero,
  .microsite__layout__hero,
  .actividades__layout__hero,
  .actividadesms__layout__hero{ height: 560px; }
  .hero__container{ width: 88%; }
  .hero__title{ font-size: 4.2rem; }
  .hero__subtitle{ font-size: 2.2rem; }

  /* Servicios */
  .servicios__container{ padding: 3rem 2rem; }
  .servicios__cards{ grid-template-columns: repeat(2, 1fr); }
  .card__title{ font-size: 3.6rem; }
  .card__description{ font-size: 2.2rem; }

  /* Nosotros */
  .nosotros_content{ flex-direction: column; padding: 2rem; }
  .nosotros__subtitle{ padding-top: 2rem; font-size: 3.4rem; }
  .nosotros__text{ font-size: 1.6rem; }

  /* Cómo funciona */
  .como_funciona_subtitle{ font-size: 4.6rem; margin-top: 6rem; padding-bottom: 3rem; }
  .pasos_content{ grid-template-columns: repeat(2, 1fr); gap: 1.6rem; }
  .paso__circle{ width: 200px; height: 200px; }
  .paso__num{ top: 46px; left: -72px; }
  .paso__title{ font-size: 22px; }

  /* Descuentos listados */
  .layout__descuentos{ padding: 24px 16px 36px; }
  .descuentos__container{ max-width: 960px; }
  .descuentos__cards{ grid-template-columns: repeat(2, 1fr); gap: 22px; }
  .card{ min-height: 380px; }
  .card__content{ inset-inline: 14px; bottom: 14px; }
  .card__text{ max-width: 100%; }

  /* Ficha del lugar */
  .ficha__lugar-layout{ padding: 26px 16px 40px; }
  .ficha__heading{ margin: 34px 0; }
  .mapa__img{ height: 220px; }
  .mapa{ align-items: center; }

  /* Galería */
  .galeria__slide{ aspect-ratio: 16 / 9; }

  /* Chips */
  .chips{ grid-template-columns: repeat(3, 1fr); }

  /* Contacto */
  .contacto{ padding: 48px 16px 64px; }
  .contacto__lead{ font-size: 15px; }
  .contacto__actions{ grid-template-columns: 1fr 1fr; }

  /* Actividades grid */
  .actividades__cards{ grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .actividades__card{ min-height: 360px; }
  .actividades__card-desc{ font-size: 1.2rem; }

  /* Actividades microsite */
  .actividadesms__section-title{ font-size: 3.2rem; margin: 6rem 0; }
  .actividadesms__cards{ grid-template-columns: repeat(2, 1fr); gap: 6rem; margin: 0 6rem 6rem; }
  .actividadesms__card-plan{ font-size: 2.6rem; }
  .actividadesms__card-price{ font-size: 2.2rem; }
  .actividadesms__card-list{ padding: 2.4rem; gap: 1.2rem; }
  .actividadesms__descripcion{ width: 86%; }
}

/* ------------- Phone (<=640px) ------------- */
@media (max-width: 640px){
  /* Layout */
  html{ font-size: 9px; scroll-padding-top: 74px; }
  .layout{ min-width: 0; }

  /* Navbar */
  .layout__menu{ padding: 0 1.4rem; }
  .navbar__logo{ width: 132px; }
  .nav__list{ gap: .6rem; }
  .nav__item{ margin: 0 .6rem; }
  .nav__title{ line-height: 4.6rem; font-size: 1.4rem; }
  .nav__submenu{ min-width: 16rem; padding: 1rem .8rem; }

  /* Hero blocks */
  .index__layout__hero,
  .nosotros__layout__hero,
  .descuentos__layout__hero,
  .microsite__layout__hero,
  .actividades__layout__hero,
  .actividadesms__layout__hero{ height: 420px; }
  .hero__title{ font-size: 3.2rem; }
  .hero__subtitle{ font-size: 1.8rem; }
  .hero__button{ padding: 1rem 1.6rem; font-size: 1.4rem; }

  /* Servicios */
  .servicios__container{ padding: 2.2rem 1.2rem; text-align: center; align-items: center;}
  .servicios__title{ font-size: 3rem; }
  .servicios__cards{ grid-template-columns: 1fr; }
  .card__title{ transform: none; font-size: 4.6rem; margin: .8rem 2rem; }
  .card__description{display: none; position: static; text-align: left; font-size: 1.6rem; margin-bottom: 1rem; }

  /* Nosotros */
  .nosotros__title{ font-size: 2.8rem; padding: 3rem 0; }
  .nosotros_content{grid-template-columns: 1fr; gap: 1.6rem; padding: 1rem; }
  .nosotros__copy{ text-align: center;}
  .nosotros__subtitle{ font-size: 2.6rem; padding-top: .6rem; }
  .nosotros__text{ font-size: 1.6rem; line-height: 1.5;}
  .nosotros__btn{ height: 40px; padding: 10px 10px; width: 200px; align-self: center; }

  /* Cómo funciona */
  .como_funciona_subtitle{ font-size: 3.2rem; margin-top: 4rem; padding-bottom: 2rem; }
  .pasos_content{ grid-template-columns: 1fr; gap: 1.2rem; }
  .paso__circle{ width: 180px; height: 180px; }
  .paso__num{ top: 38px; left: -64px; }
  .paso__title{ font-size: 20px; }
  .paso__desc{ font-size: 13.5px; }

  /* Descuentos listados */
  .layout__descuentos{ padding: 20px 12px 30px; margin-top: 3rem; }
  .descuentos__title{ margin: 4px 0 12px; }
  .descuentos__tabs{ gap: 6px; }
  .tab{ padding: 6px 10px; font-size: 13px; }
  .descuentos__cards{ grid-template-columns: 1fr; gap: 16px; }
  .card{ min-height: 320px; border-radius: 16px; }
  .card__icon{ top: 12px; right: 12px; width: 40px; height: 40px; }
  .card__content{ inset-inline: 12px; bottom: 12px; }
  .card__text{ font-size: 13.5px; }
  .descuentos__card-btn{ padding: 9px 12px 9px 14px; font-size: 13.5px; }

  /* Ficha del lugar */
  .ficha__lugar-layout{ padding: 20px 12px 32px; }
  .ficha__heading{ margin: 26px 0; }
  .mapa__img{ height: 200px; }
  .galeria__slide{ aspect-ratio: 16 / 10; }
  .chips{ grid-template-columns: 1fr; }

  /* CTA */
  .ficha__cta{ margin-top: 6rem; margin-bottom: 6rem; }
  .btn{ height: 42px; padding: 0 16px; font-size: 14px; }

  /* Contacto */
  .contacto{ padding: 40px 12px 54px; }
  .contacto__form{ gap: 12px; }
  .contacto__actions{ grid-template-columns: 1fr; }

  /* Footer */
  .footer{ padding: 32px 14px 40px; }
  .footer__social{ gap: 18px; }
  .footer__copy{ font-size: 13.5px; }

  /* Modal */
  .modal__dialog{ width: min(560px, 94vw); margin: 56px auto; padding: 22px 18px 24px; }
  .modal__input{ width: 92%; height: 42px; }
  .btn.btn--reserva{ height: 42px; padding: 0 18px; font-size: 15px; }

  /* Actividades */
  .actividades__title{ margin: 40px 0 28px; }
  .actividades__cards{ grid-template-columns: 1fr; gap: 16px; }
  .actividades__card{ min-height: 320px; }
  .actividades__card-title{ font-size: clamp(18px, 5vw, 22px); }
  .actividades__card-cta{ padding: 9px 12px 9px 14px; }

  /* Actividades microsite */
  .actividadesms__cards{ grid-template-columns: 1fr; gap: 3rem; margin: 0 1.2rem 4rem; }
  .actividadesms__card{ padding: 18px 14px; }
  .actividadesms__card-plan{ font-size: 2.2rem; }
  .actividadesms__card-price{ font-size: 2rem; }
  .actividadesms__card-list{ padding: 1.6rem; gap: 1rem; }
  .actividadesms__descripcion{ width: 92%; }
}