/* Singbox - correctifs affichage mobile
   Objectif : éviter les boutons coupés, les mots tronqués et les blocs qui débordent sur téléphone. */

html,
body {
  max-width: 100%;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

img,
picture,
video,
canvas,
svg,
iframe {
  max-width: 100%;
}

input,
select,
textarea,
button {
  font: inherit;
  max-width: 100%;
  min-width: 0;
}

button,
a,
[role="button"],
.btn,
.button,
[class$="-btn"],
[class*="btn-"] {
  -webkit-tap-highlight-color: transparent;
}

@media (max-width: 720px) {
  .container,
  .wrap,
  .rebook-shell,
  .checkout-hero-inner,
  .footer-body,
  .footer-columns,
  .newsletter-container {
    max-width: 100% !important;
  }

  .container,
  .wrap {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  table,
  .table-wrapper,
  .planning-table-wrap,
  .admin-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  p,
  li,
  .card,
  .card-singbox,
  .panier-card,
  .rebook-card,
  .checkout-card,
  .account-main-card,
  .reservation-item,
  .order-summary-card,
  .news-card,
  .article-card,
  .avis-card,
  .passes-card,
  .modifier-card,
  .login-card,
  .register-card {
    overflow-wrap: anywhere;
  }

  h1,
  h2,
  h3,
  .section-title,
  .card-title,
  .empty-cart-title,
  .checkout-hero h1,
  .rebook-hero h1 {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  a[class],
  button[class],
  .nav-cta,
  .empty-cart-btn-primary,
  .empty-cart-btn-secondary,
  .rebook-secondary-btn,
  .panier-btn,
  .checkout-btn,
  .auth-submit-btn,
  .auth-modal-skip {
    min-height: 44px;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
  }

  input,
  select,
  textarea {
    font-size: 16px !important;
  }
}

/* Page paiement : boutons Appliquer et blocs promo/parrainage lisibles sur mobile */
@media (max-width: 560px) {
  .checkout-hero {
    padding-top: 62px !important;
  }

  .checkout-hero-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .checkout-hero-badge {
    max-width: 100%;
    white-space: normal !important;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
    line-height: 1.35;
    letter-spacing: .12em !important;
    padding: 8px 14px !important;
  }

  .checkout-hero h1 {
    font-size: clamp(30px, 12vw, 44px) !important;
    line-height: .96 !important;
  }

  #checkout {
    padding-top: 34px !important;
  }

  .checkout-layout {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    margin-top: 20px !important;
  }

  .card-singbox,
  .payment-card,
  .order-card {
    width: 100%;
    max-width: 100%;
    border-radius: 18px !important;
  }

  .card-singbox h2,
  .card-h2-icon {
    align-items: flex-start !important;
    gap: 10px !important;
    line-height: 1.15 !important;
  }

  .billing-type-toggle,
  .billing-actions,
  .billing-side-stack,
  #singcoins-block {
    margin-left: 16px !important;
    margin-right: 16px !important;
  }

  #billing-form {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .billing-type-toggle,
  .billing-form-grid-2 {
    grid-template-columns: 1fr !important;
  }

  .billing-type-toggle {
    display: grid !important;
    gap: 10px !important;
  }

  .billing-type-option {
    width: 100%;
    justify-content: flex-start;
  }

  .promo-header {
    align-items: flex-start !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    padding: 14px 16px !important;
  }

  .promo-header-left {
    min-width: 0 !important;
    flex: 1 1 160px !important;
    line-height: 1.35 !important;
  }

  .promo-toggle {
    flex: 0 0 auto !important;
    max-width: 100%;
    white-space: nowrap !important;
    padding: 8px 12px !important;
    line-height: 1.2 !important;
  }

  .promo-body.open {
    max-height: 420px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .promo-input-group {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100%;
  }

  .promo-input-group input,
  .promo-input-group input[type="text"] {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    padding: 12px 14px !important;
    font-size: 16px !important;
  }

  .promo-input-group button,
  #apply-promo,
  #apply-referral {
    width: 100% !important;
    min-height: 46px !important;
    padding: 12px 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    line-height: 1.2 !important;
  }

  #save-card-btn,
  #use-singcoins-btn,
  #checkout-submit-btn,
  .prefill-btn {
    width: 100%;
    min-height: 46px;
    white-space: normal !important;
    line-height: 1.25 !important;
  }

  .payment-method-choice,
  .payment-consents label,
  .payment-warning,
  .checkout-info-note {
    line-height: 1.55 !important;
    overflow-wrap: anywhere;
  }

  .payment-card,
  .order-card {
    padding: 18px !important;
  }

  .order-row,
  .order-total-row {
    gap: 10px;
  }

  .order-row span:last-child,
  .order-total-row span:last-child {
    text-align: right;
    min-width: max-content;
  }
}

/* Page reprise / autres pages avec code promo */
@media (max-width: 560px) {
  .rebook-promo-row {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
  }

  .rebook-secondary-btn,
  #promo-apply-btn {
    width: 100%;
    min-height: 46px;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

/* Popups / modales : contenu toujours visible sur petit écran */
@media (max-width: 560px) {
  dialog,
  .auth-modal,
  .modal,
  .popup,
  .sb-modal,
  .access-modal-content {
    max-width: calc(100vw - 24px) !important;
  }

  .auth-modal-body,
  .modal-body,
  .popup-body,
  .access-modal-content {
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}
