/* Finitions téléphone — identité A2J, confort de lecture et de navigation. */
@media (max-width: 767px) {
  html { scroll-padding-top: 88px; }
  body[data-page="index"] { padding-bottom: calc(80px + env(safe-area-inset-bottom)) !important; }
  #main > section:not(.hero-section) { padding-top: 56px !important; padding-bottom: 56px !important; }
  #main > section > .mx-auto { padding-left: 20px !important; padding-right: 20px !important; }
  .section-heading { font-size: clamp(24px, 7.5vw, 34px) !important; line-height: 1.08 !important; text-wrap: balance; }
  .section-intro { font-size: 14px !important; line-height: 1.7 !important; }
  #services .services-signature__title { font-size: clamp(27px, 8vw, 36px) !important; line-height: 1.06 !important; }
  #services .services-signature__intro { margin-bottom: 22px !important; }
  #services > .mx-auto > .grid { gap: 32px !important; }
  .hero-section .hero-headline { font-size: clamp(27px, 8.3vw, 38px) !important; line-height: 1.04 !important; text-wrap: balance; }
  .hero-section .hero-subline { font-size: 14px !important; line-height: 1.65 !important; }
  .hero-section .hero-proof-label { font-size: 9px !important; }
  .hero-section .hero-proof-item { padding: 10px 12px !important; }
  .hero-section .hero-cta-row { gap: 10px; }
  .hero-discover { min-height: 44px; align-items: center; }

  /* Barre stable au pouce, avec une réserve d'espace en fin de page. */
  #homeFloatingCtas {
    left: 0 !important; right: 0 !important; bottom: 0 !important;
    width: 100%; gap: 10px !important; justify-content: center;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    background: #0a0a0af2; border-top: 1px solid #ffffff20;
    box-shadow: 0 -8px 24px #00000035;
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  }
  /* Fondu au-dessus de la barre : le contenu se dissout au lieu d'être coupé net. */
  #homeFloatingCtas::before {
    content: ""; position: absolute; left: 0; right: 0; bottom: 100%;
    height: 28px; pointer-events: none;
    background: linear-gradient(to top, #0a0a0acc, transparent);
  }
  #homeFloatingCtas > button[data-open-wizard="true"] {
    flex: 1; max-width: 420px; min-height: 48px;
    justify-content: center; font-size: 11px !important; animation: none !important;
  }
  #homeFloatingCtas > a[data-client-phone-href] { width: 48px !important; height: 48px !important; flex: 0 0 48px !important; }
  #mobileMenu { height: 100dvh; overflow-y: auto; overscroll-behavior: contain; }
  #mobileMenu > div:nth-child(2) { flex-shrink: 0; gap: 14px !important; padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important; }
  #mobileMenu .nav-track-link { font-size: clamp(23px, 7vw, 30px) !important; min-height: 44px; display: flex; align-items: center; }
  #mobileMenu .mobile-menu-info { margin-top: 6px; padding: 12px 16px; }
  #mobileMenu .mobile-menu-actions { margin-top: 4px !important; }

  #faq .faq-list { margin-top: 28px; }
  #faq .faq-item { clip-path: none !important; border-radius: 10px !important; }
  #faq .faq-item summary { font-size: 12px; line-height: 1.45; letter-spacing: .025em; }
  #faq .faq-item p { font-size: 14px; line-height: 1.7; }
  #contact .contact-meta { margin-bottom: 20px; }
  #contact .contact-meta > div:last-child { min-width: 0; }
  #clientAddress { font-size: 16px !important; line-height: 1.5 !important; }
  #contact .map-panel { margin-top: 8px; }
  #contact #mapsOuterLink { min-height: 340px !important; }
  #footerAreaServed { font-size: 12px; line-height: 1.65; }
  footer { padding-top: 40px !important; padding-bottom: 28px !important; }

  /* Panneau non découpé : aucun champ ni bouton ne sort du cadre. */
  #quoteWizard { padding: 10px !important; padding-top: max(10px, env(safe-area-inset-top)) !important; padding-bottom: max(10px, env(safe-area-inset-bottom)) !important; }
  #quoteWizard .wizard-panel { max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important; clip-path: none !important; border-radius: 18px !important; }
  #quoteWizard .wizard-panel > div:first-child { flex-shrink: 0; padding: 14px !important; gap: 8px; }
  #quoteWizard .wizard-panel > div:nth-child(2) { min-height: 0; padding: 18px 14px !important; overscroll-behavior: contain; }
  #quoteWizard h3 { font-size: clamp(23px, 7vw, 30px) !important; line-height: 1.12; text-wrap: balance; }
  #wizardCloseBtn { min-width: 70px; min-height: 44px; }
  #quoteWizard input, #quoteWizard select, #quoteWizard textarea { font-size: 16px !important; }
  #quoteWizard .wizard-qty-grid, #quoteWizard .wizard-qty-btn { clip-path: none !important; }
  #quoteWizard .wizard-btn { min-height: 48px; }
  a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
}

@media (max-width: 767px) and (max-height: 700px) {
  #mobileMenu > div:first-child { padding: 10px 16px !important; }
  #mobileMenu > div:nth-child(2) { justify-content: flex-start; gap: 6px !important; }
  #mobileMenu .mobile-menu-info { padding: 8px 12px; }
}
@media (max-width: 767px) {
  #services .services-signature__title { width: 100% !important; max-width: 100% !important; font-size: clamp(21px, 6.6vw, 29px) !important; text-align: left; text-wrap: initial; }
  #services .services-signature__accent { display: block; }
  body.menu-open #homeFloatingCtas, body.overlay-open #homeFloatingCtas { display: none !important; }
}
