/* ============================================================
   CASA MARGARITA — V220.98
   Cierre responsive global del sitio público.
   Solo robustez visual: viewport dinámico, safe areas, textos largos,
   scroll táctil y prevención de zoom/cortes en móvil. Sin lógica.
   ============================================================ */

html,
body,
main,
section,
.section,
.booking-layout,
.booking-layout > *,
.booking-card,
.booking-panel,
.calendar-card,
.location-grid,
.location-grid > *,
.events-gallery-grid,
.events-support-grid,
.events-service-grid,
.events-steps {
  max-width: 100%;
  min-width: 0;
}

body {
  overflow-x: clip;
}

/* Datos reales pueden crecer: correo, folios, referencias, teléfonos y URLs. */
.booking-summary,
.booking-request-status,
.booking-payment-panel,
.booking-payment-panel *,
.booking-form-alert,
.contact-pill,
.contact-actions,
.location-card,
.route-actions,
.events-provider-note,
.faq-list details p {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Carruseles / filas horizontales conservan su desplazamiento dentro del componente. */
.local-nav,
.gallery-grid,
.public-calendar-actions {
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

/* Diálogo de políticas: nunca queda por debajo de barras del navegador móvil. */
.cm-booking-policy-dialog-v200 {
  padding-top: max(12px, env(safe-area-inset-top));
  padding-right: max(12px, env(safe-area-inset-right));
  padding-bottom: max(12px, env(safe-area-inset-bottom));
  padding-left: max(12px, env(safe-area-inset-left));
}

.cm-booking-policy-dialog-card-v200 {
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - max(24px, env(safe-area-inset-top)) - max(24px, env(safe-area-inset-bottom)));
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 700px) {
  /* Evita zoom automático al enfocar formularios en Safari/iOS. */
  #fechas input,
  #fechas select,
  #fechas textarea,
  #eventos input,
  #eventos select,
  #eventos textarea {
    font-size: 16px;
  }

  .booking-card,
  .booking-panel,
  .calendar-card,
  .booking-payment-panel {
    min-width: 0;
  }

  .booking-payment-actions,
  .contact-actions,
  .events-actions,
  .route-actions {
    max-width: 100%;
  }

  .booking-payment-actions > *,
  .contact-actions > *,
  .events-actions > *,
  .route-actions > * {
    min-width: 0;
    max-width: 100%;
  }
}

@media (max-width: 430px) {
  .booking-payment-panel,
  .booking-card,
  .calendar-card {
    overflow-wrap: anywhere;
  }

  .contact-pill {
    white-space: normal;
    text-align: center;
  }
}

@media (orientation: landscape) and (max-height: 650px) and (max-width: 1100px) {
  .cm-booking-policy-dialog-v200 {
    padding-top: max(6px, env(safe-area-inset-top));
    padding-bottom: max(6px, env(safe-area-inset-bottom));
  }

  .cm-booking-policy-dialog-card-v200 {
    max-height: calc(100vh - 12px);
    max-height: calc(100dvh - max(12px, env(safe-area-inset-top)) - max(12px, env(safe-area-inset-bottom)));
  }
}
