/* ================================================================
   annonces.css — Marketplace Annonces Cam
   Design: fond blanc propre, accents orange #F57C00 + vert #2E7D32
   ================================================================ */

:root {
  --ann-primary:   #F57C00;
  --ann-primary-d: #E65100;
  --ann-green:     #2E7D32;
  --ann-green-d:   #1B5E20;
  --ann-bg:        #F9F9F9;
  --ann-white:     #FFFFFF;
  --ann-border:    #E0E0E0;
  --ann-text:      #1A1A1A;
  --ann-muted:     #757575;
  --ann-danger:    #D32F2F;
  --ann-warning:   #F9A825;
  --ann-radius:    10px;
  --ann-shadow:    0 2px 12px rgba(0,0,0,.08);
  --ann-shadow-h:  0 6px 24px rgba(0,0,0,.14);
}

/* ── PAGE WRAPPER ─────────────────────────────────────────────── */
.ann-page {
  background: var(--ann-bg);
  min-height: 100vh;
  font-family: 'Inter', sans-serif;
  color: var(--ann-text);
  padding-top: 4rem; /* compense la navbar fixe */
}

/* ── BREADCRUMB ───────────────────────────────────────────────── */
.ann-breadcrumb {
  background: var(--ann-white);
  border-bottom: 1px solid var(--ann-border);
  padding: .6rem 0;
  font-size: .85rem;
}
.ann-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: var(--ann-muted); }
.ann-breadcrumb a { color: var(--ann-primary); text-decoration: none; }
.ann-breadcrumb a:hover { text-decoration: underline; }

/* ── INPUTS ───────────────────────────────────────────────────── */
.ann-input {
  width: 100%;
  padding: .55rem .9rem;
  border: 1.5px solid var(--ann-border);
  border-radius: var(--ann-radius);
  background: var(--ann-white);
  color: var(--ann-text);
  font-size: .93rem;
  transition: border-color .2s;
  appearance: auto;
}
.ann-input:focus {
  outline: none;
  border-color: var(--ann-primary);
  box-shadow: 0 0 0 3px rgba(245,124,0,.12);
}
.ann-input--sm { padding: .4rem .7rem; font-size: .85rem; }
textarea.ann-input { resize: vertical; }

/* ── BUTTONS ─────────────────────────────────────────────────── */
.ann-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .55rem 1.2rem;
  border-radius: var(--ann-radius);
  border: none;
  font-weight: 600;
  font-size: .9rem;
  cursor: pointer;
  text-decoration: none;
  transition: all .2s;
  white-space: nowrap;
}
.ann-btn--primary  { background: var(--ann-primary); color: #fff; }
.ann-btn--primary:hover { background: var(--ann-primary-d); color: #fff; }
.ann-btn--outline  { background: transparent; border: 1.5px solid var(--ann-primary); color: var(--ann-primary); }
.ann-btn--outline:hover { background: var(--ann-primary); color: #fff; }
.ann-btn--whatsapp { background: #25D366; color: #fff; }
.ann-btn--whatsapp:hover { background: #128C7E; color: #fff; }
.ann-btn--facebook { background: #1877F2; color: #fff; }
.ann-btn--facebook:hover { background: #0d5cc9; color: #fff; }
.ann-btn--tel      { background: #1B4332; color: #fff; }
.ann-btn--tel:hover { background: #0a2e20; color: #fff; }
.ann-btn--success  { background: var(--ann-green); color: #fff; }
.ann-btn--success:hover { background: var(--ann-green-d); color: #fff; }
.ann-btn--warning  { background: var(--ann-warning); color: #333; }
.ann-btn--warning:hover { background: #f57f17; color: #fff; }
.ann-btn--danger   { background: var(--ann-danger); color: #fff; }
.ann-btn--danger:hover { background: #b71c1c; color: #fff; }
.ann-btn--favori-actif { background: #e63946; color: #fff; border-color: #e63946; }
.ann-btn--sm  { padding: .4rem .8rem; font-size: .82rem; }
.ann-btn--xs  { padding: .3rem .6rem; font-size: .78rem; border-radius: 6px; }
.ann-btn--full { width: 100%; justify-content: center; }

/* ── BADGES ──────────────────────────────────────────────────── */
.ann-badge {
  display: inline-block;
  padding: .18rem .6rem;
  border-radius: 20px;
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.4;
}
.ann-badge--urgent   { background: #e63946; color: #fff; }
.ann-badge--premium  { background: var(--ann-warning); color: #333; }
.ann-badge--coeur    { background: #F4A261; color: #fff; }
.ann-badge--verifie  { background: var(--ann-green); color: #fff; }
.ann-badge--new      { background: var(--ann-danger); color: #fff; }
.ann-badge--active   { background: var(--ann-green); color: #fff; }

.ann-badge--statut  { }
.ann-badge--publiee               { background: #e8f5e9; color: #1B5E20; }
.ann-badge--en_attente_validation { background: #fff3e0; color: #E65100; }
.ann-badge--vendue                { background: #eeeeee; color: #424242; }
.ann-badge--expiree               { background: #fce4ec; color: #880E4F; }
.ann-badge--refusee               { background: #ffcdd2; color: #B71C1C; }
.ann-badge--archivee              { background: #e0e0e0; color: #616161; }
.ann-badge--brouillon             { background: #f5f5f5; color: #757575; }

.ann-badge--etat {}
.ann-badge--etat-neuf         { background: #e8f5e9; color: #1B5E20; }
.ann-badge--etat-comme_neuf   { background: #e3f2fd; color: #0D47A1; }
.ann-badge--etat-bon_etat     { background: #fff3e0; color: #E65100; }
.ann-badge--etat-etat_correct { background: #f3e5f5; color: #4A148C; }
.ann-badge--etat-pour_pieces  { background: #ffcdd2; color: #B71C1C; }

/* ── SEARCH HERO ─────────────────────────────────────────────── */
.ann-search-hero {
  background: linear-gradient(135deg, #1B4332 0%, #2E7D32 50%, var(--ann-primary-d) 100%);
  border-radius: 16px;
  padding: 2.5rem 2rem;
  color: #fff;
  text-align: center;
}
.ann-search-hero__titre { font-size: 2rem; font-weight: 800; margin-bottom: .3rem; }
.ann-search-hero__sub   { opacity: .85; font-size: 1.05rem; margin-bottom: 1.5rem; }
.ann-search-form .ann-input { background: rgba(255,255,255,.95); }

/* ── SIDEBAR ─────────────────────────────────────────────────── */
.ann-sidebar {
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  padding: 1.2rem;
  position: sticky;
  top: 80px;
}
.ann-sidebar__titre {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ann-text);
  margin-bottom: 1rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--ann-primary);
}
.ann-sidebar__sub-titre {
  font-size: .85rem;
  font-weight: 600;
  color: var(--ann-muted);
  margin-bottom: .5rem;
}
.ann-categories-list { list-style: none; padding: 0; margin: 0; }
.ann-categories-list li { margin-bottom: .15rem; }
.ann-cat-link {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .5rem;
  border-radius: 6px;
  color: var(--ann-text);
  text-decoration: none;
  font-size: .875rem;
  transition: all .15s;
}
.ann-cat-link:hover, .ann-cat-link--active {
  background: rgba(245,124,0,.1);
  color: var(--ann-primary);
}
.ann-cat-link--sub { font-size: .82rem; padding-left: 1.5rem; color: var(--ann-muted); }
.ann-cat-sous { list-style: none; padding: 0; margin: 0; }

/* ── TOOLBAR ─────────────────────────────────────────────────── */
.ann-toolbar {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding: .75rem 1rem;
  background: var(--ann-white);
  border-radius: var(--ann-radius);
  border: 1px solid var(--ann-border);
}
.ann-toolbar__count { font-weight: 700; font-size: .95rem; }
.ann-toolbar__tri   { display: flex; align-items: center; gap: .5rem; font-size: .875rem; margin-left: auto; }
.ann-toolbar__tri .ann-input { width: auto; padding: .35rem .7rem; }

/* ── GRID ────────────────────────────────────────────────────── */
.ann-grid {
  display: grid;
  gap: 1.2rem;
}
.ann-grid--4 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.ann-grid--3 { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

/* ── CARD ────────────────────────────────────────────────────── */
.ann-card {
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  overflow: hidden;
  transition: all .2s;
  position: relative;
}
.ann-card:hover {
  box-shadow: var(--ann-shadow-h);
  transform: translateY(-3px);
}
.ann-card--premium { border-color: var(--ann-warning); }
.ann-card--urgent  { border-color: #e63946; }

.ann-card__img-link { display: block; position: relative; overflow: hidden; }
.ann-card__img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  transition: transform .3s;
}
.ann-card:hover .ann-card__img { transform: scale(1.04); }
.ann-card__img-placeholder {
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f5f5;
  color: #bdbdbd;
}
.ann-card__badges {
  position: absolute;
  top: 8px;
  left: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.ann-card__body { padding: .9rem; }
.ann-card__cat  { font-size: .72rem; color: var(--ann-primary); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.ann-card__titre {
  font-size: .9rem;
  font-weight: 600;
  margin: .3rem 0 .4rem;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ann-card__titre a { color: var(--ann-text); text-decoration: none; }
.ann-card__titre a:hover { color: var(--ann-primary); }
.ann-card__prix { font-size: 1rem; font-weight: 800; color: var(--ann-primary); margin-bottom: .4rem; }
.ann-card__meta {
  display: flex;
  gap: .7rem;
  font-size: .75rem;
  color: var(--ann-muted);
  flex-wrap: wrap;
}
.ann-card__etat { margin-top: .4rem; }

/* ── DETAIL PAGE ─────────────────────────────────────────────── */
.ann-detail__badges { display: flex; flex-wrap: wrap; gap: .4rem; }
.ann-detail__titre { font-size: 1.7rem; font-weight: 800; margin: .8rem 0 .3rem; }
.ann-detail__localisation { color: var(--ann-muted); font-size: .95rem; margin-bottom: 1rem; }
.text-accent { color: var(--ann-primary); }

/* Galerie */
.ann-galerie { }
.ann-swiper-main { border-radius: var(--ann-radius); overflow: hidden; background: #000; }
.ann-galerie__main-img { width: 100%; height: 420px; object-fit: cover; cursor: zoom-in; }
.ann-galerie__lien { display: block; }
.ann-swiper-thumbs { margin-top: .5rem; }
.ann-swiper-thumbs .swiper-slide { width: 80px !important; height: 60px; border-radius: 6px; overflow: hidden; opacity: .6; cursor: pointer; transition: opacity .2s; }
.ann-swiper-thumbs .swiper-slide-thumb-active { opacity: 1; border: 2px solid var(--ann-primary); }
.ann-galerie__thumb { width: 100%; height: 100%; object-fit: cover; }
.ann-galerie__placeholder {
  height: 300px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #f5f5f5;
  border-radius: var(--ann-radius);
  color: #bdbdbd;
  gap: 1rem;
}

/* Prix */
.ann-detail__prix-bloc {
  background: linear-gradient(90deg, rgba(245,124,0,.08) 0%, transparent 100%);
  border-left: 4px solid var(--ann-primary);
  border-radius: 0 var(--ann-radius) var(--ann-radius) 0;
  padding: .8rem 1.2rem;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .8rem;
}
.ann-detail__prix { font-size: 1.8rem; font-weight: 900; color: var(--ann-primary); }
.ann-detail__expire { font-size: .88rem; }

/* Specs */
.ann-detail__specs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: .6rem;
  margin-bottom: 1.5rem;
}
.ann-spec {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: 8px;
  padding: .6rem .9rem;
  font-size: .875rem;
}
.ann-spec i { color: var(--ann-primary); width: 18px; text-align: center; }

/* Sections */
.ann-detail__section { margin-bottom: 2rem; }
.ann-detail__section-titre {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 1rem;
  padding-bottom: .4rem;
  border-bottom: 2px solid var(--ann-primary);
  display: flex;
  align-items: center;
  gap: .5rem;
}
.ann-detail__description { line-height: 1.7; color: var(--ann-text); }

/* Map */
.ann-map { height: 300px; border-radius: var(--ann-radius); overflow: hidden; }

/* Partage */
.ann-partage { display: flex; gap: .6rem; flex-wrap: wrap; }

/* ── SIDEBAR DETAIL ──────────────────────────────────────────── */
.ann-detail__sidebar {
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  padding: 1.2rem;
  position: sticky;
  top: 80px;
}
.ann-detail__actions { display: flex; flex-direction: column; gap: .4rem; }

/* Vendeur */
.ann-detail__vendeur__titre { font-size: 1rem; font-weight: 700; margin-bottom: .8rem; }
.ann-detail__vendeur__card {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .8rem;
  background: var(--ann-bg);
  border-radius: 8px;
}
.ann-detail__vendeur__avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.ann-detail__vendeur__avatar--placeholder {
  width: 56px; height: 56px; border-radius: 50%;
  background: #e0e0e0; display: flex; align-items: center; justify-content: center; color: #9e9e9e;
}
.ann-detail__vendeur__info { display: flex; flex-direction: column; gap: .2rem; }
.ann-detail__vendeur__info a { color: var(--ann-text); text-decoration: none; font-weight: 700; }
.ann-detail__vendeur__info a:hover { color: var(--ann-primary); }

.ann-lien-signaler { font-size: .82rem; color: var(--ann-muted); text-decoration: none; }
.ann-lien-signaler:hover { color: var(--ann-danger); }

/* Message form */
.ann-detail__msg-form { }
.ann-detail__msg-form__titre { font-size: 1rem; font-weight: 700; margin-bottom: .8rem; }

/* Stats */
.ann-stats-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.ann-stats-list li { display: flex; align-items: center; gap: .5rem; font-size: .875rem; }
.ann-stats-list li i { color: var(--ann-primary); width: 16px; }

/* ── SECTION ─────────────────────────────────────────────────── */
.ann-section__titre {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--ann-text);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.ann-sub-titre { font-size: 1rem; font-weight: 700; color: var(--ann-text); }

/* ── EMPTY STATE ─────────────────────────────────────────────── */
.ann-empty {
  text-align: center;
  padding: 3rem;
  color: var(--ann-muted);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .8rem;
}

/* ── ALERT ───────────────────────────────────────────────────── */
.ann-alert {
  padding: .75rem 1rem;
  border-radius: 8px;
  font-size: .9rem;
}
.ann-alert--success { background: #e8f5e9; color: #1B5E20; }
.ann-alert--info    { background: #e3f2fd; color: #0D47A1; }
.ann-alert--warning { background: #fff8e1; color: #F57F17; }
.ann-alert--sm      { font-size: .82rem; padding: .4rem .7rem; }

/* ── FORM CARD ───────────────────────────────────────────────── */
.ann-form-card {
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  padding: 2rem;
  margin-bottom: 1.5rem;
}
.ann-form-card__titre {
  font-size: 1.3rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
  padding-bottom: .6rem;
  border-bottom: 2px solid var(--ann-primary);
  display: flex;
  align-items: center;
  gap: .5rem;
}
.ann-form-section {
  background: var(--ann-bg);
  border: 1px solid var(--ann-border);
  border-radius: 8px;
  padding: 1.2rem;
  margin-bottom: 1.2rem;
}
.ann-form-section__titre {
  font-size: .95rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: var(--ann-text);
}
.ann-form-label { font-size: .85rem; font-weight: 600; margin-bottom: .3rem; display: block; }
.ann-form-error { color: var(--ann-danger); font-size: .8rem; margin-top: .2rem; }

/* Photos formset */
.ann-photos-formset { display: flex; flex-direction: column; gap: .8rem; }
.ann-photo-row {
  display: flex;
  align-items: center;
  gap: .8rem;
  flex-wrap: wrap;
  padding: .7rem;
  background: var(--ann-white);
  border-radius: 8px;
  border: 1px dashed var(--ann-border);
}
.ann-photo-row__preview { width: 60px; height: 50px; object-fit: cover; border-radius: 6px; }
.ann-photo-row__checks  { display: flex; gap: 1rem; font-size: .82rem; align-items: center; }

/* ── COMPTE NAVIGATION ───────────────────────────────────────── */
.ann-compte-nav {
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  overflow: hidden;
  position: sticky;
  top: 80px;
}
.ann-compte-nav__user {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: 1rem;
  background: linear-gradient(135deg, #1B4332, var(--ann-primary-d));
  color: #fff;
  font-weight: 600;
}
.ann-compte-nav__links { list-style: none; padding: .5rem 0; margin: 0; }
.ann-compte-nav__links li { }
.ann-compte-nav__link {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .65rem 1.2rem;
  color: var(--ann-text);
  text-decoration: none;
  font-size: .9rem;
  transition: all .15s;
}
.ann-compte-nav__link:hover, .ann-compte-nav__link.active {
  background: rgba(245,124,0,.1);
  color: var(--ann-primary);
  font-weight: 600;
}
.ann-compte-nav__link i { width: 18px; text-align: center; color: var(--ann-primary); }

/* ── STAT CARDS ──────────────────────────────────────────────── */
.ann-stat-card {
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  padding: 1.2rem;
  text-align: center;
}
.ann-stat-card--green  { border-color: var(--ann-green);   }
.ann-stat-card--orange { border-color: var(--ann-primary); }
.ann-stat-card--gray   { border-color: #9e9e9e; }
.ann-stat-card__num    { font-size: 2rem; font-weight: 900; color: var(--ann-primary); }
.ann-stat-card__label  { font-size: .8rem; color: var(--ann-muted); font-weight: 600; }
.ann-stat-card--green  .ann-stat-card__num { color: var(--ann-green); }
.ann-stat-card--gray   .ann-stat-card__num { color: #9e9e9e; }

/* ── MES ANNONCES LIST ───────────────────────────────────────── */
.ann-mes-annonces-list { display: flex; flex-direction: column; gap: .8rem; }
.ann-mes-annonces-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  padding: .8rem;
  transition: box-shadow .2s;
}
.ann-mes-annonces-item:hover { box-shadow: var(--ann-shadow); }
.ann-mes-annonces-item__img { flex-shrink: 0; }
.ann-mes-annonces-item__img img, .ann-mes-annonces-item__img-placeholder {
  width: 80px; height: 60px; border-radius: 8px; object-fit: cover;
}
.ann-mes-annonces-item__img-placeholder {
  background: #f5f5f5; display: flex; align-items: center; justify-content: center; color: #bdbdbd;
}
.ann-mes-annonces-item__info { flex: 1; }
.ann-mes-annonces-item__titre { font-size: .9rem; font-weight: 700; margin: 0 0 .3rem; }
.ann-mes-annonces-item__titre a { color: var(--ann-text); text-decoration: none; }
.ann-mes-annonces-item__titre a:hover { color: var(--ann-primary); }
.ann-mes-annonces-item__meta {
  display: flex; gap: .6rem; flex-wrap: wrap;
  font-size: .78rem; color: var(--ann-muted); align-items: center;
}
.ann-mes-annonces-item__actions { display: flex; gap: .3rem; flex-shrink: 0; }

/* ── CONVERSATIONS ───────────────────────────────────────────── */
.ann-conv-list { display: flex; flex-direction: column; gap: .6rem; }
.ann-conv-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .8rem 1rem;
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  text-decoration: none;
  color: var(--ann-text);
  transition: all .15s;
}
.ann-conv-item:hover { border-color: var(--ann-primary); box-shadow: var(--ann-shadow); color: var(--ann-text); }
.ann-conv-item__info { display: flex; flex-direction: column; gap: .15rem; }
.ann-conv-item__annonce { font-size: .82rem; color: var(--ann-muted); }
.ann-conv-item__meta { display: flex; align-items: center; gap: .5rem; font-size: .8rem; color: var(--ann-muted); }

/* ── MESSAGES THREAD ─────────────────────────────────────────── */
.ann-conv-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  flex-wrap: wrap;
}
.ann-conv-header__annonce {
  display: flex; align-items: center; gap: .8rem;
  text-decoration: none; color: var(--ann-text);
}
.ann-conv-header__img { width: 60px; height: 50px; border-radius: 8px; object-fit: cover; }
.ann-conv-header__interlocuteur { font-size: .875rem; color: var(--ann-muted); }
.ann-messages-thread {
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  padding: 1rem;
  max-height: 500px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: .8rem;
}
.ann-msg { max-width: 75%; }
.ann-msg--moi { align-self: flex-end; }
.ann-msg--autre { align-self: flex-start; }
.ann-msg__contenu {
  padding: .7rem 1rem;
  border-radius: 12px;
  font-size: .9rem;
  line-height: 1.5;
}
.ann-msg--moi   .ann-msg__contenu { background: var(--ann-primary); color: #fff; border-bottom-right-radius: 2px; }
.ann-msg--autre .ann-msg__contenu { background: #f5f5f5; color: var(--ann-text); border-bottom-left-radius: 2px; }
.ann-msg__meta { font-size: .72rem; color: var(--ann-muted); margin-top: .2rem; text-align: right; }
.ann-msg--autre .ann-msg__meta { text-align: left; }

/* ── PROFIL CARD ─────────────────────────────────────────────── */
.ann-profil-card {
  background: var(--ann-white);
  border: 1px solid var(--ann-border);
  border-radius: var(--ann-radius);
  padding: 1.5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .6rem;
}
.ann-profil-card__avatar { width: 90px; height: 90px; border-radius: 50%; object-fit: cover; border: 3px solid var(--ann-primary); }
.ann-profil-card__avatar--placeholder {
  width: 90px; height: 90px; border-radius: 50%;
  background: #e0e0e0; display: flex; align-items: center; justify-content: center; color: #9e9e9e;
  border: 3px solid var(--ann-border);
}
.ann-profil-card__nom    { font-size: 1.1rem; font-weight: 800; }
.ann-profil-card__ville  { font-size: .875rem; color: var(--ann-muted); }
.ann-profil-card__desc   { font-size: .85rem; color: var(--ann-muted); }
.ann-profil-card__note   { font-size: .9rem; font-weight: 600; }
.ann-profil-card__membre { font-size: .8rem; color: var(--ann-muted); }

/* ── CATÉGORIE HEADER ────────────────────────────────────────── */
.ann-cat-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 1.5rem;
  background: var(--ann-white);
  border-radius: var(--ann-radius);
  margin-bottom: 1.5rem;
}
.ann-cat-header__titre { font-size: 1.5rem; font-weight: 800; margin: 0; }
.ann-cat-header__sub   { color: var(--ann-muted); font-size: .9rem; margin: 0; }

/* ── PRICING ─────────────────────────────────────────────────── */
.ann-pricing-card {
  background: var(--ann-white);
  border: 2px solid var(--ann-border);
  border-radius: 14px;
  overflow: hidden;
  transition: all .2s;
}
.ann-pricing-card--premium { border-color: var(--ann-warning); box-shadow: 0 4px 20px rgba(245,124,0,.15); }
.ann-pricing-card__header {
  padding: 1.5rem;
  text-align: center;
  background: #f5f5f5;
}
.ann-pricing-card--premium .ann-pricing-card__header { background: linear-gradient(135deg, #fff8e1, #fff3cd); }
.ann-pricing-card__header h3 { font-size: 1.2rem; font-weight: 800; margin-bottom: .3rem; }
.ann-pricing-card__prix { font-size: 1.8rem; font-weight: 900; color: var(--ann-primary); }
.ann-pricing-card__prix span { font-size: .9rem; font-weight: 400; color: var(--ann-muted); }
.ann-pricing-card__features { list-style: none; padding: 1.2rem 1.5rem; margin: 0; }
.ann-pricing-card__features li { padding: .4rem 0; font-size: .9rem; border-bottom: 1px solid var(--ann-border); }
.ann-pricing-card__features li:last-child { border: none; }
.ann-pricing-card__cta { padding: 1rem 1.5rem; text-align: center; }

/* ── PAGINATION ──────────────────────────────────────────────── */
.ann-pagination .page-link {
  color: var(--ann-primary);
  border-color: var(--ann-border);
}
.ann-pagination .page-item.active .page-link {
  background: var(--ann-primary);
  border-color: var(--ann-primary);
  color: #fff;
}

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media (max-width: 991px) {
  .ann-galerie__main-img { height: 280px; }
  .ann-detail__sidebar { position: static; }
}
@media (max-width: 767px) {
  .ann-search-hero { padding: 1.5rem 1rem; }
  .ann-search-hero__titre { font-size: 1.4rem; }
  .ann-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .ann-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .ann-detail__titre { font-size: 1.3rem; }
  .ann-form-card { padding: 1rem; }
  .ann-mes-annonces-item { flex-wrap: wrap; }
}
@media (max-width: 480px) {
  .ann-grid--4 { grid-template-columns: 1fr; }
  .ann-grid--3 { grid-template-columns: 1fr; }
}
