/* ═══════════════════════════════════════════════════════════════
   SansAgents — Mobile Design System
   CHARTE MOBILE (norme unique appliquée partout) :
   • Padding horizontal : 14px
   • Font body : 13px / labels : 11px / titres sections : 18px
   • Cards : radius 12px, padding 12px
   • Touch targets : min 44px height
   • Tout strictement dans @media sauf overflow-x sur html/body
   ═══════════════════════════════════════════════════════════════ */

html, body { overflow-x: hidden; }

/* ─── BOTTOM NAV ─────────────────────────────────────────────── */
.sa-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 56px;
  background: white;
  border-top: 1px solid #efefef;
  z-index: 500;
  align-items: stretch;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.05);
}
.sa-bottom-nav-tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background: none;
  border: none;
  cursor: pointer;
  color: #aaa;
  font-family: inherit;
  font-size: 9.5px;
  font-weight: 600;
  padding: 0;
  min-height: 44px;
}
.sa-bottom-nav-tab i { font-size: 20px; }
.sa-bottom-nav-tab.active { color: #E84533; }
.sa-bottom-nav-cta {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 9.5px;
  font-weight: 700;
  color: #E84533;
  padding: 0;
}
.sa-bottom-nav-cta-circle {
  width: 38px; height: 38px;
  background: #E84533;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 10px rgba(232,69,51,0.35);
  margin-top: -10px;
}
.sa-bottom-nav-cta-circle i { color: white; font-size: 20px; }
.sa-bottom-nav-badge {
  position: absolute;
  top: -3px; right: -5px;
  background: #E84533;
  color: white;
  font-size: 8px;
  font-weight: 800;
  min-width: 14px; height: 14px;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
}
.sa-bottom-nav-avatar {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: #E84533;
  color: white;
  font-size: 9px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.sa-has-bottom-nav { padding-bottom: 56px !important; }

/* ─── HAMBURGER MENU DROIT ────────────────────────────────────── */
.sa-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  width: 34px; height: 34px;
  background: none;
  border: 1.5px solid #e5e5e5;
  border-radius: 8px;
  cursor: pointer;
  flex-shrink: 0;
  margin-left: auto;
}
.sa-hamburger span {
  display: block;
  width: 15px; height: 1.5px;
  background: #333;
  border-radius: 2px;
  transition: all .2s;
}
.sa-hamburger.open span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.sa-hamburger.open span:nth-child(2) { opacity: 0; }
.sa-hamburger.open span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }

.sa-mobile-menu {
  display: none;
  position: fixed;
  top: 52px; right: 0;
  width: 270px; bottom: 56px;
  background: white;
  z-index: 499;
  overflow-y: auto;
  padding: 10px 12px 16px;
  border-left: 1px solid #f0f0f0;
  box-shadow: -6px 0 20px rgba(0,0,0,0.07);
}
.sa-mobile-menu.open { display: block; }
.sa-mobile-menu-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.18);
  z-index: 498;
}
.sa-mobile-menu-overlay.open { display: block; }
.sa-mobile-menu-section {
  font-size: 10px;
  font-weight: 700;
  color: #ccc;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 12px 6px 5px;
}
.sa-mobile-menu-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #222;
  cursor: pointer;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
  font-family: inherit;
  min-height: 40px;
}
.sa-mobile-menu-item:hover { background: #f7f7f7; }
.sa-mobile-menu-item i { font-size: 17px; color: #999; width: 20px; flex-shrink: 0; }
.sa-mobile-menu-divider { height: 1px; background: #f0f0f0; margin: 5px 0; }

/* ═══════════════════════════════════════════════════════════════
   @media 768px — TOUT LE MOBILE
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* ─ Activer bottom nav + hamburger ─ */
  .sa-bottom-nav { display: flex !important; }
  .sa-hamburger { display: flex !important; }

  /* ─ NAV : logo à gauche ─ */
  .sa-nav { padding: 0 14px !important; height: 52px !important; }
  .sa-nav-left { position: static !important; left: auto !important; transform: none !important; }
  .sa-nav-links, .sa-nav-actions { display: none !important; }

  /* iOS : empêcher zoom auto sur focus */
  input, select, textarea { font-size: 16px !important; }

  /* ══ PAGE ACCUEIL ══════════════════════════════════════════ */

  /* ─ Hero ─ */
  .sa-hero {
    grid-template-columns: 1fr !important;
    padding: 1.4rem 14px 2rem !important;
    gap: 14px !important;
  }
  .sa-hero h1 {
    font-size: 19px !important;
    letter-spacing: -0.2px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }
  .sa-hero h1 br { display: none !important; }
  .sa-hero-left p { font-size: 13px !important; margin-bottom: 1rem !important; }
  .sa-hero-badge { font-size: 11px !important; padding: 5px 10px 5px 9px !important; margin-bottom: 1rem !important; }
  .sa-hero-stats { grid-template-columns: 1fr !important; gap: 6px !important; }
  .sa-hero-stat { padding: 9px 12px !important; }
  .sa-hero-stat-num { font-size: 14.5px !important; white-space: normal !important; }
  .sa-hero-stat-label { font-size: 11px !important; }
  .sa-cta-grid { grid-template-columns: 1fr !important; gap: 8px !important; }
  .sa-cta-card { padding: 1rem 0.9rem !important; }
  .sa-cta-icon { width: 34px !important; height: 34px !important; margin-bottom: 8px !important; }
  .sa-cta-title { font-size: 13.5px !important; }
  .sa-cta-desc { font-size: 11.5px !important; }
  .sa-cta-arrow { font-size: 11.5px !important; margin-top: 8px !important; }

  /* ─ Trust bar : items larges pour indiquer le scroll ─ */
  .sa-trust-bar-inner {
    padding: 0 14px !important;
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 0 !important;
  }
  .sa-trust-bar-inner::-webkit-scrollbar { display: none; }
  .sa-trust-item {
    flex-shrink: 0 !important;
    width: 72vw !important;
    max-width: 240px !important;
    border-right: 1px solid #e8e8e8 !important;
    border-bottom: none !important;
    padding: 9px 14px !important;
  }
  .sa-trust-title { font-size: 12px !important; }
  .sa-trust-sub { font-size: 10px !important; }
  .sa-trust-icon { width: 30px !important; height: 30px !important; }
  .sa-trust-icon i { font-size: 14px !important; }

  /* ─ Search ─ */
  .sa-search-wrapper { padding: 12px 14px 0 !important; }
  .sa-search-box { flex-direction: column !important; border-radius: 11px !important; }
  .sa-search-select-wrap { border-right: none !important; border-bottom: 1px solid #ebebeb !important; }
  .sa-search-select { width: 100% !important; padding: 9px 14px !important; font-size: 13px !important; }
  .sa-search-input { padding: 9px 14px !important; font-size: 13px !important; }
  .sa-search-btn {
    border-radius: 0 0 10px 10px !important;
    padding: 12px !important;
    justify-content: center !important;
    font-size: 13.5px !important;
  }
  .sa-search-tags {
    padding: 8px 4px 2px !important;
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .sa-search-tags::-webkit-scrollbar { display: none; }
  .sa-search-tag {
    flex-shrink: 0 !important;
    background: white !important;
    border: 1.5px solid #d8d8d8 !important;
    font-size: 11px !important;
    padding: 4px 10px !important;
    color: #555 !important;
  }
  .sa-search-tags-label { display: none !important; }

  /* ─ Layout global ─ */
  .sa-home { padding: 0 14px !important; }
  .sa-section { padding: 1.8rem 0 !important; }
  .sa-section-title { font-size: 18px !important; margin-bottom: 5px !important; }
  .sa-section-sub { font-size: 12.5px !important; margin-bottom: 1.2rem !important; }

  /* ─ Savings : tailles réduites ─ */
  .sa-savings-layout { grid-template-columns: 1fr !important; gap: 16px !important; }
  .sa-compare { grid-template-columns: 1fr 1fr !important; gap: 8px !important; margin-bottom: 10px !important; }
  .sa-compare-card { padding: 10px 12px !important; border-radius: 10px !important; }
  .sa-compare-label { font-size: 9px !important; margin-bottom: 6px !important; }
  .sa-compare-big { font-size: 23px !important; margin-bottom: 3px !important; letter-spacing: -0.5px !important; }
  .sa-compare-detail { font-size: 10.5px !important; }
  .sa-savings-banner { padding: 1rem 1rem !important; border-radius: 10px !important; }
  .sa-savings-banner .label { font-size: 11px !important; }
  .sa-savings-banner .amount { font-size: 26px !important; }
  .sa-savings-banner .amount span { font-size: 30px !important; }

  /* ─ Table : scroll horizontal ─ */
  .sa-table-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch; border-radius: 10px !important; }
  .sa-table-header { padding: 10px 12px 0 !important; font-size: 12px !important; }
  .sa-price-table { font-size: 11px !important; min-width: 360px; }
  .sa-price-table th { padding: 7px 10px !important; white-space: nowrap !important; }
  .sa-price-table td { padding: 7px 10px !important; white-space: nowrap !important; }
  /* Ligne "Votre prix" : tag au-dessus de l'input */
  .sa-price-table .row-custom td:first-child { padding: 10px 10px !important; vertical-align: top !important; }
  .sa-row-custom-tag { display: block !important; margin-right: 0 !important; margin-bottom: 6px !important; width: fit-content; }
  .sa-price-input { font-size: 13px !important; width: 100% !important; display: block !important; box-sizing: border-box !important; }

  /* ─ How it works ─ */
  .sa-howitworks-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
  .sa-tabs { gap: 6px !important; }
  .sa-tab { font-size: 12px !important; padding: 6px 14px !important; }
  .sa-step { padding: 11px 0 !important; gap: 10px !important; }
  .sa-step-num { width: 26px !important; height: 26px !important; font-size: 11.5px !important; }
  .sa-step-title { font-size: 13px !important; }
  .sa-step-desc { font-size: 11.5px !important; }
  .sa-doc-inline { padding: 1rem 1.1rem !important; }
  .sa-doc-tag { font-size: 11px !important; padding: 4px 9px !important; }

  /* ─ Safety : carrousel horizontal ─ */
  .sa-safety-grid {
    display: flex !important;
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    padding-bottom: 6px !important;
    grid-template-columns: unset !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
  }
  .sa-safety-grid::-webkit-scrollbar { display: none; }
  .sa-safety-card {
    flex-shrink: 0 !important;
    width: 72vw !important;
    max-width: 240px !important;
    padding: 12px 14px !important;
    scroll-snap-align: start;
  }
  .sa-safety-card i { font-size: 18px !important; margin-bottom: 8px !important; }
  .sa-safety-card-title { font-size: 12.5px !important; }
  .sa-safety-card-desc { font-size: 11px !important; }
  .sa-safety-banner { padding: 0.8rem 1rem !important; margin-bottom: 1rem !important; }
  .sa-safety-banner-icon { width: 34px !important; height: 34px !important; }
  .sa-safety-banner-text { font-size: 12px !important; }

  /* ─ Annonces récentes : carrousel horizontal ─ */
  .sa-listings {
    display: flex !important;
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    padding-bottom: 6px !important;
    grid-template-columns: unset !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
  }
  .sa-listings::-webkit-scrollbar { display: none; }
  .sa-listing-card {
    flex-shrink: 0 !important;
    width: 68vw !important;
    max-width: 230px !important;
    scroll-snap-align: start;
    border-radius: 12px !important;
  }
  .sa-listing-img { height: 110px !important; }
  .sa-listing-body { padding: 10px 11px !important; }
  .sa-listing-price { font-size: 14px !important; }
  .sa-listing-title { font-size: 11px !important; }
  .sa-listing-meta { font-size: 10px !important; }
  .sa-listings-cta { margin-top: 1rem !important; }
  .sa-listings-link { font-size: 12.5px !important; padding: 8px 18px !important; }

  /* ─ Pros preview : carrousel ─ */
  .sa-pros-grid {
    display: flex !important;
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    padding-bottom: 6px !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
  }
  .sa-pros-grid::-webkit-scrollbar { display: none; }
  .sa-pro-card {
    flex-shrink: 0 !important;
    width: 50vw !important;
    max-width: 180px !important;
    scroll-snap-align: start;
    padding: 1rem 0.8rem !important;
    border-radius: 12px !important;
  }
  .sa-pro-avatar { width: 40px !important; height: 40px !important; font-size: 18px !important; margin-bottom: 8px !important; }
  .sa-pro-name { font-size: 12px !important; }
  .sa-pro-job { font-size: 11px !important; margin-bottom: 5px !important; }
  .sa-pro-rating { font-size: 10.5px !important; }
  .sa-pro-loc { font-size: 10px !important; }

  /* ─ Pros banner : bouton "voir tous" visible ─ */
  .sa-pros-banner {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 1.2rem 1rem !important;
    margin-top: 1rem !important;
    text-align: left !important;
    border-radius: 12px !important;
  }
  .sa-pros-banner-text h4 { font-size: 14px !important; }
  .sa-pros-banner-text p { font-size: 11.5px !important; }
  .sa-pros-discount { padding: 10px 14px !important; }
  .sa-pros-banner button {
    padding: 10px 20px !important;
    font-size: 13px !important;
    width: 100% !important;
  }
  .sa-pros-discount { display: none !important; }

  /* ─ Footer ─ */
  .sa-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 20px !important; padding: 1.5rem 0 1rem !important; }
  .sa-footer-col h4 { font-size: 10.5px !important; margin-bottom: 8px !important; }
  .sa-footer-col a { font-size: 11.5px !important; margin-bottom: 6px !important; }
  .sa-footer-inner { padding: 0 14px !important; }
  .sa-cta-section { padding: 1.4rem 14px !important; margin: 1.2rem 14px !important; border-radius: 14px !important; }
  .sa-final-cta-wrap { padding: 2rem 14px !important; border-radius: 14px !important; }
  .sa-final-cta-wrap h3 { font-size: 18px !important; }
  .sa-final-cta-wrap p { font-size: 12.5px !important; }
  .sa-final-cta-wrap button { font-size: 13px !important; padding: 11px 24px !important; }

  /* ─ FAQ ─ */
  .sa-faq { column-count: 1 !important; }
  .sa-faq-q { font-size: 13px !important; }
  .sa-faq-a { font-size: 11.5px !important; }

  /* ══ PAGE ANNONCES ═══════════════════════════════════════════ */

  .sa-filterbar-wrapper { top: 52px !important; }
  .sa-an-header { padding: 1rem 14px 0.8rem !important; }
  .sa-an-header h1 { font-size: 19px !important; }
  .sa-an-body { padding: 0.8rem 12px 2rem !important; }

  /* Filtres : une seule ligne, glissable horizontalement (comme une app) */
  .sa-filterbar {
    padding: 9px 12px 10px !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .sa-filterbar::-webkit-scrollbar { display: none; }
  .sa-pillgroup { flex-shrink: 0; }
  .sa-pill {
    padding: 7px 12px !important;
    font-size: 12px !important;
    gap: 5px !important;
    border-radius: 999px !important;
    flex-shrink: 0;
  }
  .sa-pill i.ti-chevron-down { font-size: 10px !important; }
  .sa-pill .picon { font-size: 12px !important; }
  .sa-pill-loc-input { font-size: 11px !important; width: 72px !important; }
  .sa-pill-count { font-size: 9px !important; min-width: 14px !important; height: 14px !important; }

  /* Panels filtres : feuille qui monte du bas de l'écran (style app) */
  .sa-pill-panel {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: none !important;
    max-height: 78vh !important;
    overflow-y: auto !important;
    padding: 14px 16px calc(80px + env(safe-area-inset-bottom)) !important;
    border-radius: 20px 20px 0 0 !important;
    border-top: none !important;
    font-size: 12.5px !important;
    box-shadow: 0 -10px 34px rgba(0,0,0,0.2) !important;
    z-index: 700 !important;
  }
  /* Poignée de glissement en haut de la feuille */
  .sa-pill-panel::before {
    content: "";
    display: block;
    width: 36px; height: 4px;
    background: #e0e0e0;
    border-radius: 2px;
    margin: 0 auto 16px;
  }
  /* Fond assombri derrière la feuille (couvre aussi la barre du bas) */
  .sa-pp-overlay { background: rgba(0,0,0,0.35) !important; z-index: 650 !important; }
  /* Panneau "Filtres" avancés : une seule colonne */
  .sa-pp-cols { display: block !important; }
  .sa-pp-w260, .sa-pp-w300, .sa-pp-w560 {
    width: 100% !important;
    max-width: none !important;
    left: 0 !important;
    right: 0 !important;
  }
  .sa-pp-label {
    font-size: 10px !important;
    margin-top: 12px !important;
    margin-bottom: 7px !important;
  }
  .sa-pp-radiogrp { gap: 5px !important; flex-wrap: wrap !important; }
  .sa-pp-radio {
    font-size: 11px !important;
    padding: 5px 10px !important;
  }
  .sa-range-row input[type="number"] {
    padding: 6px 8px !important;
    font-size: 12px !important;
  }
  .sa-pp-checks label { font-size: 11px !important; padding: 4px 0 !important; }
  .sa-pp-checks input { width: 14px !important; height: 14px !important; }
  /* Inputs texte dans les panels (mots clés, etc.) */
  .sa-pill-panel input[type="text"],
  .sa-pill-panel input[type="search"] { font-size: 13px !important; }
  /* Diagnostics / DPE labels */
  .sa-pp-dpe-grid label, .sa-pp-dpe label,
  .sa-pp-feature label, .sa-pp-feat label { font-size: 10px !important; }
  .sa-pp-head { padding: 10px 0 6px !important; }
  .sa-pp-head-title { font-size: 13px !important; }
  .sa-pp-foot { padding: 8px 0 0 !important; }
  .sa-pp-foot button { padding: 8px 16px !important; font-size: 12px !important; }
  .sa-pp-section { margin-top: 10px !important; }
  .sa-pp-section-title { font-size: 10.5px !important; margin-bottom: 7px !important; }

  /* Résultats barre : tri + vue visibles mais compacts */
  .sa-an-results-bar {
    padding: 5px 12px !important;
    flex-wrap: wrap !important;
    gap: 5px !important;
  }
  .sa-sort-select { font-size: 11.5px !important; padding: 6px 10px !important; }
  .sa-view-toggle { display: flex !important; }
  .sa-view-btn { padding: 6px 9px !important; font-size: 13px !important; }
  .sa-an-count { font-size: 11.5px !important; }

  /* Annonces : liste (1 par ligne) par défaut */
  .sa-card-list { flex-direction: column !important; }
  .sa-card-list .sa-card-photos { width: 100% !important; height: 190px !important; border-radius: 0 !important; }
  .sa-card-list .sa-card-body { padding: 10px 12px !important; }
  .sa-card-list .sa-card-footer { padding: 8px 12px !important; }

  /* ══ PAGE PROFESSIONNELS ════════════════════════════════════ */

  .sa-pro-header { padding: 1.4rem 14px 1.2rem !important; }
  .sa-pro-header h1 { font-size: 20px !important; margin-bottom: 6px !important; }
  .sa-pro-header p { font-size: 12.5px !important; margin-bottom: 1rem !important; }
  .sa-trust-badge { font-size: 11px !important; padding: 5px 12px 5px 6px !important; }

  /* Search bar pros */
  .sa-pro-searchbar { flex-direction: column !important; border-radius: 11px !important; }
  .sa-pro-search-input { padding: 12px 14px !important; font-size: 13.5px !important; }
  .sa-pro-search-divider { display: none !important; }
  .sa-pro-search-loc { padding: 10px 14px !important; border-top: 1px solid #ebebeb !important; }
  .sa-pro-search-loc input { font-size: 13.5px !important; }
  .sa-pro-search-btn {
    padding: 12px !important;
    justify-content: center !important;
    font-size: 13.5px !important;
  }

  /* Filterbar pros */
  .sa-pro-filterbar-wrapper { top: 52px !important; }
  .sa-pro-filterbar {
    padding: 7px 12px 8px !important;
    gap: 5px !important;
    flex-wrap: wrap !important;
  }
  /* Ville pill input : même taille que les autres pills */
  .sa-pill-loc-input { font-size: 11px !important; width: 68px !important; }

  /* Pro body */
  .sa-pro-body {
    padding: 1rem 14px 3rem !important;
    grid-template-columns: 1fr !important;
  }
  .sa-filters { display: none !important; }

  /* Pro rows : compacts, lisibles */
  .sa-pro-list { gap: 10px !important; }
  .sa-pro-row {
    grid-template-columns: auto 1fr !important;
    gap: 10px !important;
    padding: 12px 14px !important;
    border-radius: 12px !important;
    align-items: flex-start !important;
  }
  .sa-pro-row-avatar {
    width: 50px !important; height: 50px !important;
    border-radius: 12px !important;
    font-size: 22px !important;
  }
  .sa-pro-row-name { font-size: 14px !important; }
  .sa-pro-row-job { font-size: 11.5px !important; margin-bottom: 4px !important; }
  .sa-pro-row-desc { font-size: 11.5px !important; margin-bottom: 6px !important; }
  .sa-pro-row-meta { font-size: 11px !important; gap: 10px !important; }
  .sa-pro-row-action {
    grid-column: 1 / -1 !important;
    margin-top: 2px !important;
    gap: 8px !important;
  }
  .sa-pro-row-action button:not(.sa-pro-fav) {
    font-size: 12px !important;
    padding: 8px 14px !important;
    flex: 1 !important;
  }
  .sa-pro-fav { width: 34px !important; height: 34px !important; }
  .sa-results-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    margin-bottom: 1rem !important;
  }
  .sa-results-count { font-size: 12.5px !important; display: flex !important; flex-direction: column !important; gap: 5px !important; }
  .sa-verified-legend {
    margin-left: 0 !important;
    padding-left: 0 !important;
    border-left: none !important;
    font-size: 11.5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    flex-wrap: nowrap !important;
  }
  .sa-verified-legend .sa-pro-row-badge { flex-shrink: 0 !important; white-space: nowrap !important; }
  .sa-verified-legend span:last-child {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  /* CTA pros */
  .sa-pro-cta-wrap { padding: 2rem 14px !important; }
  .sa-pro-cta-inner { grid-template-columns: 1fr !important; gap: 20px !important; }
  .sa-pro-cta-left h2 { font-size: 18px !important; }
  .sa-pro-cta-left p { font-size: 12.5px !important; }

  /* ══ PAGES COMMUNES ════════════════════════════════════════ */

  /* Mes annonces */
  .sa-page-header, .sa-page-body { padding-left: 14px !important; padding-right: 14px !important; }
  .sa-stats-row { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .sa-mcard-row { flex-direction: column !important; }
  .sa-mphoto { width: 100% !important; height: 180px !important; }

  /* Annonce detail */
  .sa-detail-wrap { padding: 0 0 2rem !important; }
  .sa-detail-grid { grid-template-columns: 1fr !important; gap: 0 !important; }
  .sa-gallery-hero { height: 240px !important; border-radius: 0 !important; }
  .sa-back-link { margin: 8px 14px !important; font-size: 12px !important; }

  /* Messages */
  .sa-msg-layout { flex-direction: column !important; height: auto !important; }
  .sa-msg-sidebar {
    width: 100% !important;
    max-height: 36vh !important;
    border-right: none !important;
    border-bottom: 1px solid #efefef !important;
  }

  /* Formulaire */
  .page-wrap { padding: 14px 14px 80px !important; }
  .sa-grid-2, .sa-grid-3, .egrid-2 { grid-template-columns: 1fr !important; }

  /* Auth */
  .sa-auth-wrap { padding: 1.2rem 14px 4rem !important; }

  /* Contact / Accord */
  .contact-wrap { padding: 1.2rem 14px 4rem !important; }
  .contact-grid, .accord-grid, .cform-grid { grid-template-columns: 1fr !important; }

  /* ══ PAGE ANNONCE (détail d'un bien) ═══════════════════════════ */
  .sa-detail-wrap { padding: 0.6rem 14px 5rem !important; }
  .sa-back-link { font-size: 12.5px !important; margin-bottom: 0.7rem !important; }
  .sa-detail-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
  .sa-gallery-hero { height: 240px !important; border-radius: 14px !important; }
  .sa-gallery-fav { width: 34px !important; height: 34px !important; font-size: 15px !important; }
  .sa-gallery-allphotos { font-size: 11px !important; padding: 6px 11px !important; }
  .sa-detail-head { margin-top: 1.1rem !important; }
  .sa-detail-price { font-size: 22px !important; }
  .sa-detail-pricem { font-size: 12px !important; }
  .sa-detail-title { font-size: 13.5px !important; }
  .sa-detail-desc { font-size: 13px !important; }
  .sa-fact-grid { grid-template-columns: 1fr !important; }
  .sa-energy-cols { grid-template-columns: 1fr !important; gap: 16px !important; }
  .sa-fmodal-grid { grid-template-columns: 1fr !important; }
  .sa-contact-card { position: static !important; padding: 1.1rem !important; border-radius: 14px !important; }
  .sa-similar-grid { grid-template-columns: 1fr !important; }
}

/* ═══════════════════════════════════════════════════════════════
   @media 480px — TRÈS PETIT MOBILE
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 480px) {
  .sa-hero h1 { font-size: 18px !important; }
  .sa-stats-row { grid-template-columns: 1fr !important; }
  .sa-gallery-hero { height: 200px !important; }
  .sa-footer-grid { grid-template-columns: 1fr !important; }
  .sa-compare-big { font-size: 18px !important; }
}
