/**
 * Talibi — Mobile premium layer
 * Complète style.css sans modifier le rendu desktop (≤767px / ≤480px / ≤400px).
 */

/* ── Base : pas de scroll horizontal, typo stable ───────────── */
@media (max-width: 1024px) {
  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    overflow-x: clip;
    overflow-x: hidden;
  }

  img,
  video,
  svg {
    max-width: 100%;
    height: auto;
  }

  :where(h1, h2, h3, p, li) {
    overflow-wrap: anywhere;
    word-wrap: break-word;
  }
}

/* ── Zones sûres (encoches, barre d’accueil) ─────────────────── */
@supports (padding: max(0px)) {
  @media (max-width: 1024px) {
    .site-main,
    main.site-main {
      padding-left: max(0px, env(safe-area-inset-left, 0px));
      padding-right: max(0px, env(safe-area-inset-right, 0px));
    }

    #site-footer {
      padding-bottom: max(22px, env(safe-area-inset-bottom, 0px));
    }
  }
}

/* ── Cibles tactiles (44×44 px min. Apple HIG) ───────────────── */
@media (max-width: 1024px) {
  :where(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-ghost,
    button:not(:disabled),
    a.footer-wa-btn,
    .faq-trigger,
    .talibi-fees-diaporama__nav,
    .talibi-fees-diaporama__dot,
    .whatsapp-float a
  ) {
    min-height: 44px;
    min-width: 44px;
  }

  a:not(.btn):not(.brand):not(.header-nav-acces):not(.header-nav-contact) {
    -webkit-tap-highlight-color: rgba(14, 53, 100, 0.12);
  }
}

/* ── Formulaires : 16px → pas de zoom iOS au focus ───────────── */
@media (max-width: 1024px) {
  :where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
    select,
    textarea,
    .lead-input,
    .acces-card input,
    .auth-box input
  ) {
    font-size: max(16px, 1rem) !important;
    min-height: 48px;
    line-height: 1.35;
  }

  textarea {
    min-height: 120px;
  }

  select {
    padding-right: 2.25rem;
  }

  .form-group label,
  label {
    line-height: 1.4;
  }

  .form-submit-btn,
  #lead-form .btn,
  .contact-form .form-submit-btn {
    min-height: 52px;
    font-size: 1rem;
  }
}

/* ── Header : pilules confortables (tablette / mobile large) ─── */
@media (max-width: 767px) and (min-width: 401px) {
  #site-header .header-nav-acces,
  #site-header .header-nav-contact {
    min-height: 44px !important;
    padding: 10px 14px !important;
    font-size: 0.8rem !important;
  }

  #site-header .header-actions {
    gap: 8px !important;
  }
}

/* ── Header : menu hamburger (iPhone SE, petits Android) ─────── */
@media (max-width: 400px) {
  #site-header .header-desktop-nav {
    display: none !important;
  }

  #site-header .premium-menu-toggle {
    display: inline-flex !important;
    pointer-events: auto;
    flex-shrink: 0;
    min-width: 44px;
    min-height: 44px;
    margin-left: auto;
  }

  #site-header .premium-menu-panel:not(.open) {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  #site-header .premium-menu-panel.open {
    display: block !important;
    visibility: visible !important;
    pointer-events: auto !important;
    z-index: 2100;
  }

  #site-header .premium-menu-panel .nav-mobile-link {
    min-height: 48px;
    display: flex;
    align-items: center;
  }
}

body.mobile-menu-open {
  overflow: hidden;
  touch-action: none;
}

body.mobile-menu-open::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 1999;
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  pointer-events: auto;
}

/* ── Sticky CTA : lisible, safe-area, moins agressif ─────────── */
@media (max-width: 900px) {
  .sticky-mobile-cta {
    padding: 12px max(16px, env(safe-area-inset-right, 16px))
      max(12px, env(safe-area-inset-bottom, 12px))
      max(16px, env(safe-area-inset-left, 16px)) !important;
    gap: 10px;
  }

  .sticky-mobile-cta .btn,
  .sticky-mobile-cta .btn-primary {
    min-height: 48px;
    width: 100%;
    font-size: 1rem;
    letter-spacing: 0.02em;
    animation: none !important;
  }

  body.page-home .whatsapp-float {
    bottom: calc(88px + env(safe-area-inset-bottom, 0px));
    right: max(14px, env(safe-area-inset-right, 14px));
  }
}

/* ── Footer mobile premium ───────────────────────────────────── */
@media (max-width: 767px) {
  #site-footer {
    padding-top: clamp(28px, 6vw, 40px);
  }

  .footer-inner {
    gap: clamp(22px, 5vw, 32px) !important;
    width: min(100% - 32px, 100%) !important;
    padding-left: max(0px, env(safe-area-inset-left, 0px));
    padding-right: max(0px, env(safe-area-inset-right, 0px));
  }

  .footer-brand-tagline {
    max-width: 100%;
    font-size: 0.875rem;
    line-height: 1.55;
  }

  .footer-wa-btn {
    width: 100%;
    justify-content: center;
    min-height: 48px;
  }

  .footer-legal-row a {
    padding: 6px 0;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
}

/* ── Tableaux : scroll horizontal maîtrisé ─────────────────── */
@media (max-width: 900px) {
  .pd-tari-table-scroll,
  .table-scroll,
  .comparison-table-wrap,
  :where([class*="table-scroll"]) {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }

  .pd-tari-table-scroll::-webkit-scrollbar,
  .table-scroll::-webkit-scrollbar {
    display: block;
    height: 4px;
  }
}

/* ── Pages légales / contenu long ────────────────────────────── */
@media (max-width: 767px) {
  body.page-legal-doc main.site-main,
  body.page-securite main.site-main {
    padding-left: max(16px, env(safe-area-inset-left, 16px));
    padding-right: max(16px, env(safe-area-inset-right, 16px));
  }

  body.page-legal-doc :where(h1, h2) {
    font-size: clamp(1.5rem, 6.5vw, 2rem);
    line-height: 1.15;
    text-wrap: balance;
  }

  body.page-legal-doc :where(p, li) {
    font-size: clamp(0.9375rem, 3.6vw, 1rem);
    line-height: 1.65;
  }
}

/* ── Contact ─────────────────────────────────────────────────── */
@media (max-width: 767px) {
  body.page-contact .contact-hero {
    padding-top: calc(var(--site-header-height, 64px) + clamp(20px, 4vh, 32px));
  }

  body.page-contact .contact-form-card,
  body.page-contact .contact-panel {
    width: min(100%, calc(100vw - 32px));
    margin-left: auto;
    margin-right: auto;
  }

  body.page-contact .contact-trust-row {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  body.page-contact #site-header .premium-menu-panel .nav-mobile-link--contact-pill,
  body.page-contact #site-header .header-nav-contact {
    display: none !important;
  }
}

/* Diaporama frais : règles détaillées dans pages/fees-showcase.css */
@media (max-width: 767px) {
  .talibi-fees-diaporama__copy-inner {
    text-wrap: pretty;
  }
}

/* ── Hero accueil : éviter 100vw qui déborde ─────────────────── */
@media (max-width: 767px) {
  body.page-home {
    overflow-x: clip;
    overflow-x: hidden;
  }

  .hero-pitch-store-badges {
    max-width: calc(100% - 32px) !important;
  }

  .hero-pitch-devices {
    max-width: 100% !important;
  }
}

/* ── Tablette (768–1024) : respiration sections ──────────────── */
@media (min-width: 768px) and (max-width: 1024px) {
  .section-inner,
  .footer-inner,
  .header-inner {
    width: min(1320px, calc(100% - 48px));
  }

}

/* ── Performance mobile : animations allégées ────────────────── */
@media (max-width: 900px) {
  .sticky-mobile-cta .btn-primary {
    animation: none !important;
  }

  * {
    scroll-behavior: auto;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .hero-pitch-figure .hero-pitch-main-motion,
  .hero-pitch-figure .hero-pitch-pc-motion {
    transition: none !important;
  }
}

/* ── Focus visible (accessibilité clavier / VoiceOver) ─────────── */
@media (max-width: 1024px) {
  :focus-visible {
    outline: 2px solid #0e3564;
    outline-offset: 3px;
  }
}
