/* ===== VARIABLES ===== */
:root {
    --or: #D4AF37;
    --or-hover: #C9A032;
    --or-pale: #FDF8EC;
    --noir: #0D0D0D;
    --blanc: #FFFFFF;
    --gris-fonce: #2A2A2A;
    --gris-moyen: #8E8E93;
    --gris-clair: #EDEDED;
    --fond: #F7F7F7;
    --success: #22C55E;
    --error: #EF4444;
    --warning: #F59E0B;
    --radius-btn: 12px;
    --radius-card: 16px;
    --radius-lg: 24px;
    --shadow-sm: 0 2px 8px rgba(0,0,0,.06);
    --shadow-md: 0 4px 24px rgba(0,0,0,.08);
    --shadow-lg: 0 8px 40px rgba(0,0,0,.12);
    --transition: 0.2s ease;
}

/* ===== RESET ===== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html { scroll-behavior:smooth; overflow-x:clip; }
body { font-family:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif; color:var(--noir); background:var(--blanc); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; max-width:100vw; }
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }
button { border:none; background:none; cursor:pointer; font-family:inherit; }
ul { list-style:none; }
input, select, textarea { font-family:inherit; }

/* ===== UTILITIES ===== */
.container { max-width:1200px; margin:0 auto; padding:0 16px; }
@media (min-width:480px) { .container { padding:0 24px; } }
.text-center { text-align:center; }
.text-muted { color:var(--gris-moyen); }
.text-sm { font-size:.875rem; }
.w-full { width:100%; }
.col-span-4 { grid-column: span 4; }

/* ===== NAVBAR ===== */
.navbar { position:fixed; top:0; left:0; right:0; z-index:1000; background:rgba(255,255,255,.98); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--gris-clair); transition:box-shadow var(--transition); }
.navbar.scrolled { box-shadow:var(--shadow-sm); }
.navbar .container { padding-top:0; padding-bottom:0; }
.logo-link { display:flex; align-items:center; }
.logo-text { font-size:1.4rem; font-weight:700; color:var(--noir); letter-spacing:-.5px; }
.logo-text span { color:var(--or); }
.nav-menu { display:flex; align-items:center; gap:32px; }
.nav-menu a { font-size:.9375rem; font-weight:500; color:var(--gris-moyen); padding:6px 0; position:relative; transition:color var(--transition); }
.nav-menu a:hover { color:var(--noir); }
.nav-menu a.active { color:var(--or); font-weight:600; }
.nav-menu a.active::after { content:''; position:absolute; bottom:-2px; left:0; right:0; height:2.5px; background:var(--or); border-radius:2px; }
.nav-actions { display:flex; align-items:center; gap:12px; }
.badge-dot { display:inline-flex; align-items:center; justify-content:center; background:var(--error); color:#fff; border-radius:999px; font-size:.65rem; font-weight:700; min-width:18px; height:18px; padding:0 4px; margin-left:4px; }
.hamburger { display:none; flex-direction:column; gap:5px; padding:4px; }
.hamburger span { display:block; width:22px; height:2px; background:var(--noir); border-radius:2px; transition:var(--transition); }
/* lang-dropdown / nav-avatar — see v2 block at bottom */
.avatar-initial { font-weight:700; color:var(--or); font-size:.875rem; }
.avatar-initial.big { font-size:1.8rem; width:80px; height:80px; display:flex; align-items:center; justify-content:center; background:var(--or-pale); border-radius:50%; border:2px solid var(--or); }
.avatar-initial.xl { font-size:2rem; width:96px; height:96px; display:flex; align-items:center; justify-content:center; background:var(--or-pale); border-radius:50%; border:3px solid var(--or); }
.avatar-sm { width:36px; height:36px; border-radius:50%; object-fit:cover; }

/* ===== BUTTONS ===== */
.btn-primary { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--or); color:#fff; font-weight:600; font-size:.9375rem; padding:12px 24px; border-radius:var(--radius-btn); transition:background var(--transition),transform var(--transition),box-shadow var(--transition); box-shadow:0 2px 12px rgba(212,175,55,.3); }
.btn-primary:hover { background:var(--or-hover); transform:translateY(-1px); box-shadow:0 4px 20px rgba(212,175,55,.4); }
.btn-primary:active { transform:translateY(0); }
.btn-outline { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:transparent; color:var(--noir); font-weight:600; font-size:.9375rem; padding:11px 24px; border-radius:var(--radius-btn); border:2px solid var(--gris-clair); transition:var(--transition); }
.btn-outline:hover { border-color:var(--or); color:var(--or); }
.btn-danger { display:inline-flex; align-items:center; justify-content:center; background:#FEE2E2; color:var(--error); font-weight:600; font-size:.875rem; padding:8px 14px; border-radius:var(--radius-btn); transition:var(--transition); }
.btn-danger:hover { background:var(--error); color:#fff; }
.btn-swaphit { display:inline-flex; align-items:center; justify-content:center; gap:6px; background:linear-gradient(135deg,#D4AF37,#F5C842); color:#fff; font-weight:700; font-size:.9375rem; padding:12px 24px; border-radius:var(--radius-btn); box-shadow:0 2px 12px rgba(212,175,55,.35); transition:var(--transition); }
.btn-swaphit:hover { transform:translateY(-1px); box-shadow:0 4px 20px rgba(212,175,55,.5); }
.btn-text { color:var(--or); font-weight:600; font-size:.875rem; }
.btn-text:hover { text-decoration:underline; }
.btn-full { width:100%; }
.btn-lg { padding:14px 32px; font-size:1rem; border-radius:var(--radius-lg); }
.btn-sm { padding:9px 18px; font-size:.875rem; }
.btn-xs { padding:6px 12px; font-size:.8125rem; border-radius:8px; }

/* ===== FLASH ===== */
.flash-container { position:fixed; top:68px; left:50%; transform:translateX(-50%); z-index:2000; display:flex; flex-direction:column; gap:8px; pointer-events:none; width:calc(100% - 32px); max-width:480px; }
@media (min-width:768px) { .flash-container { top:84px; width:auto; max-width:480px; } }
.flash { padding:14px 24px; border-radius:var(--radius-btn); font-weight:600; font-size:.9375rem; box-shadow:var(--shadow-md); pointer-events:all; animation:slideDown .3s ease; }
.flash-success { background:#DCFCE7; color:#166534; border:1px solid #86EFAC; }
.flash-error { background:#FEE2E2; color:#991B1B; border:1px solid #FECACA; }
@keyframes slideDown { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:translateY(0); } }

/* padding-top géré par header-mobile.css (60px mobile / 72px desktop) */
.page-body { min-height:calc(100vh - 60px); }

/* ===== BADGES ===== */
.badge { display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; font-size:.75rem; font-weight:600; }
.badge-xs { font-size:.65rem; padding:2px 7px; }
.badge-active { background:#DCFCE7; color:#166534; }
.badge-reserved { background:#FEF9C3; color:#854D0E; }
.badge-closed { background:var(--gris-clair); color:var(--gris-moyen); }
.badge-paused { background:#F3F4F6; color:#6B7280; }
.badge-pending { background:#DBEAFE; color:#1E40AF; }
.badge-accepted { background:#DCFCE7; color:#166534; }
.badge-refused { background:#FEE2E2; color:#991B1B; }
.badge-progress { background:#FEF9C3; color:#854D0E; }
.badge-waiting { background:#EDE9FE; color:#5B21B6; }
.badge-done { background:#DCFCE7; color:#14532D; }
.badge-default { background:var(--gris-clair); color:var(--gris-moyen); }
.badge-type { background:var(--or-pale); color:var(--or-hover); }
.badge-cat { background:#F0F9FF; color:#0369A1; }

/* ===== FORMS ===== */
.form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:20px; position:relative; }
.form-group label { font-size:.9375rem; font-weight:600; color:var(--noir); }
.form-group input[type=text],
.form-group input[type=email],
.form-group input[type=password],
.form-group input[type=number],
.form-group input[type=file],
.filter-input,
.filter-select { width:100%; padding:12px 16px; border:2px solid var(--gris-clair); border-radius:var(--radius-btn); font-size:.9375rem; font-family:inherit; color:var(--noir); background:#fff; transition:border-color var(--transition); outline:none; }
.form-group input[type=file] { padding:8px 12px; font-size:.875rem; }
.form-group input:focus, .filter-input:focus, .filter-select:focus { border-color:var(--or); }
.form-textarea { width:100%; padding:12px 16px; border:2px solid var(--gris-clair); border-radius:var(--radius-btn); font-size:.9375rem; font-family:inherit; color:var(--noir); background:#fff; resize:vertical; min-height:100px; transition:border-color var(--transition); outline:none; }
.form-textarea:focus { border-color:var(--or); }
.form-hint { font-size:.8125rem; color:var(--gris-moyen); margin-top:4px; }
.form-hint a { color:var(--or); }
.form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:8px; }
@media (max-width:480px) { .form-actions { flex-direction:column-reverse; } .form-actions .btn-primary, .form-actions .btn-outline { width:100%; justify-content:center; } }
.input-password { position:relative; }
.input-password input { padding-right:48px; }
.toggle-pw { position:absolute; right:14px; top:50%; transform:translateY(-50%); color:var(--gris-moyen); transition:color var(--transition); }
.toggle-pw:hover { color:var(--nor); }
.radio-group { display:flex; gap:16px; flex-wrap:wrap; }
.radio-label { display:flex; align-items:center; gap:8px; cursor:pointer; padding:10px 18px; border:2px solid var(--gris-clair); border-radius:var(--radius-btn); transition:var(--transition); }
.radio-label:has(input:checked) { border-color:var(--or); background:var(--or-pale); }
.radio-label input { accent-color:var(--or); }
.forgot-link { font-size:.875rem; color:var(--gris-moyen); margin-top:6px; align-self:flex-end; transition:color var(--transition); }
.forgot-link:hover { color:var(--or); }

/* ===== AUTH ===== */
.auth-page { display:flex; align-items:center; justify-content:center; min-height:calc(100vh - 60px); padding:40px 16px; background:var(--fond); }
@media (min-width:768px) { .auth-page { min-height:calc(100vh - 72px); } }
.auth-card { background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:40px 24px; width:100%; max-width:460px; }
@media (min-width:480px) { .auth-card { padding:48px 40px; } }
.auth-header { margin-bottom:32px; text-align:center; }
.auth-title { font-size:1.75rem; font-weight:700; color:var(--noir); }
.auth-sub { color:var(--gris-moyen); margin-top:6px; }
.auth-form { display:flex; flex-direction:column; }
.auth-switch { text-align:center; margin-top:24px; font-size:.9375rem; color:var(--gris-moyen); }
.auth-switch a { color:var(--or); font-weight:600; }

/* ===== HERO ===== */
.hero { padding:80px 0 60px; background:linear-gradient(135deg,#FFFDF5 0%,#FDF8EC 50%,#FFFDF5 100%); }
.hero .container { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.hero-badge { display:inline-flex; align-items:center; background:var(--or-pale); border:1px solid rgba(212,175,55,.3); padding:6px 14px; border-radius:999px; margin-bottom:20px; }
.hero-badge span { font-size:.8125rem; font-weight:600; color:var(--or-hover); }
.hero-title { font-size:3rem; font-weight:700; line-height:1.15; color:var(--noir); margin-bottom:20px; }
.hero-title span { color:var(--or); }
.hero-desc { font-size:1.0625rem; color:var(--gris-moyen); max-width:460px; margin-bottom:32px; }
.hero-cta { display:flex; gap:12px; flex-wrap:wrap; }
.hero-visual { display:flex; align-items:center; justify-content:center; }
.hero-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; width:100%; }
.stat-card { background:#fff; border-radius:var(--radius-card); box-shadow:var(--shadow-md); padding:24px 16px; text-align:center; }
.stat-num { display:block; font-size:2rem; font-weight:700; color:var(--or); }
.stat-label { font-size:.8125rem; color:var(--gris-moyen); font-weight:500; }

/* ===== SECTIONS ===== */
.section-cats, .section-annonces, .section-how { padding:60px 0; }
.section-cats { background:var(--fond); }
.section-title { font-size:1.75rem; font-weight:700; color:var(--noir); margin-bottom:32px; }
.section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:32px; }
.section-head .section-title { margin-bottom:0; }
.see-all { color:var(--or); font-weight:600; font-size:.9375rem; transition:color var(--transition); }
.see-all:hover { color:var(--or-hover); }
.cats-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
.cat-card { display:flex; flex-direction:column; align-items:center; gap:10px; padding:20px 12px; background:#fff; border-radius:var(--radius-card); border:2px solid var(--gris-clair); transition:var(--transition); text-align:center; }
.cat-card:hover { border-color:var(--or); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.cat-icon { font-size:1.75rem; }
.cat-name { font-size:.8125rem; font-weight:600; color:var(--gris-fonce); }

/* ===== ANNONCE CARDS ===== */
.annonces-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.annonce-card { background:#fff; border-radius:var(--radius-card); overflow:hidden; border:1px solid var(--gris-clair); transition:var(--transition); display:flex; flex-direction:column; }
.annonce-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); border-color:var(--or); }
.card-img { position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--fond); }
.card-img img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.annonce-card:hover .card-img img { transform:scale(1.03); }
.card-type { position:absolute; top:10px; left:10px; padding:4px 10px; border-radius:999px; font-size:.75rem; font-weight:600; }
.type-objet { background:rgba(255,255,255,.95); color:var(--gris-fonce); }
.type-service { background:rgba(212,175,55,.9); color:#fff; }
.card-body { padding:16px; display:flex; flex-direction:column; gap:6px; flex:1; }
.card-cat { font-size:.75rem; font-weight:600; color:var(--or); text-transform:uppercase; letter-spacing:.5px; }
.card-title { font-size:.9375rem; font-weight:600; color:var(--noir); line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.card-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.card-city { display:flex; align-items:center; gap:4px; font-size:.8125rem; color:var(--gris-moyen); }
.card-value { font-size:.8125rem; font-weight:600; color:var(--or-hover); background:var(--or-pale); padding:2px 8px; border-radius:999px; }
.card-footer { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:10px; border-top:1px solid var(--gris-clair); }
.card-user { font-size:.8125rem; color:var(--gris-moyen); font-weight:500; }
.card-time { font-size:.75rem; color:var(--gris-moyen); }

/* ===== STEPS ===== */
.steps-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:16px; }
.step-card { text-align:center; padding:32px 20px; background:#fff; border-radius:var(--radius-card); border:1px solid var(--gris-clair); transition:var(--transition); }
.step-card:hover { border-color:var(--or); box-shadow:var(--shadow-sm); }
.step-num { width:48px; height:48px; border-radius:50%; background:var(--or); color:#fff; font-size:1.125rem; font-weight:700; display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.step-card h3 { font-size:1rem; font-weight:700; margin-bottom:8px; }
.step-card p { font-size:.875rem; color:var(--gris-moyen); }

/* ===== EXPLORER ===== */
.explorer-page { padding:40px 0 60px; }
.explorer-header { margin-bottom:24px; }
.page-title { font-size:2rem; font-weight:700; }
.search-bar { background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:20px; margin-bottom:24px; border:1px solid var(--gris-clair); }
.search-input-wrap { position:relative; margin-bottom:16px; }
.search-icon { position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--gris-moyen); pointer-events:none; }
.search-input { width:100%; padding:14px 16px 14px 48px; border:2px solid var(--gris-clair); border-radius:var(--radius-btn); font-size:1rem; font-family:inherit; outline:none; transition:border-color var(--transition); }
.search-input:focus { border-color:var(--or); }
.filters-row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
@media (max-width:600px) {
    .filters-row { flex-direction:column; align-items:stretch; }
    .filters-row .filter-select,
    .filters-row .filter-input { width:100%; }
}
.filter-select { padding:10px 14px; border:2px solid var(--gris-clair); border-radius:var(--radius-btn); font-size:.875rem; background:#fff; outline:none; cursor:pointer; transition:border-color var(--transition); }
.filter-select:focus { border-color:var(--or); }
.filter-input { padding:10px 14px; border:2px solid var(--gris-clair); border-radius:var(--radius-btn); font-size:.875rem; background:#fff; outline:none; transition:border-color var(--transition); }
.filter-input:focus { border-color:var(--or); }
.results-info { margin-bottom:16px; font-size:.9375rem; color:var(--gris-moyen); }
.empty-state { text-align:center; padding:60px 20px; color:var(--gris-moyen); }
.empty-icon { font-size:3rem; margin-bottom:16px; }
.empty-state p { margin-bottom:20px; }
.pagination { display:flex; gap:8px; justify-content:center; margin-top:40px; flex-wrap:wrap; }
.page-link { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:var(--radius-btn); border:2px solid var(--gris-clair); font-weight:600; transition:var(--transition); color:var(--gris-fonce); }
.page-link:hover { border-color:var(--or); color:var(--or); }
.page-link.active { background:var(--or); color:#fff; border-color:var(--or); }

/* ===== ANNONCE DETAIL ===== */
.annonce-page { padding:40px 0 60px; }
.annonce-layout { display:grid; grid-template-columns:1fr 380px; gap:40px; align-items:start; }
.breadcrumb { display:flex; align-items:center; gap:8px; font-size:.875rem; color:var(--gris-moyen); margin-bottom:24px; flex-wrap:wrap; }
.breadcrumb a:hover { color:var(--or); }
.breadcrumb span { color:var(--gris-moyen); }
.photos-viewer { margin-bottom:32px; }
.photo-main { border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3; background:var(--fond); }
.photo-main img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.photo-thumbs { display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.thumb { border-radius:12px; overflow:hidden; width:72px; height:72px; border:2px solid var(--gris-clair); transition:border-color var(--transition); cursor:pointer; }
.thumb.active, .thumb:hover { border-color:var(--or); }
.thumb img { width:100%; height:100%; object-fit:cover; }
.photo-placeholder { border-radius:var(--radius-lg); aspect-ratio:4/3; background:var(--fond); display:flex; align-items:center; justify-content:center; }
.annonce-details { }
.annonce-tags { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.annonce-title { font-size:1.75rem; font-weight:700; margin-bottom:12px; }
.annonce-value { font-size:1.25rem; font-weight:700; color:var(--or); margin-bottom:10px; }
.annonce-city { display:flex; align-items:center; gap:6px; color:var(--gris-moyen); margin-bottom:20px; }
.annonce-desc h2 { font-size:1rem; font-weight:700; margin-bottom:8px; }
.annonce-desc p { color:var(--gris-fonce); line-height:1.7; }
.annonce-meta-row { display:flex; gap:16px; margin-top:16px; font-size:.875rem; color:var(--gris-moyen); border-top:1px solid var(--gris-clair); padding-top:16px; }
.proposals-section { margin-top:40px; }
.section-subtitle { font-size:1.125rem; font-weight:700; margin-bottom:16px; }
.proposal-card { background:var(--fond); border-radius:var(--radius-card); padding:20px; margin-bottom:12px; border:1px solid var(--gris-clair); }
.proposal-header { display:flex; align-items:center; gap:12px; margin-bottom:8px; flex-wrap:wrap; }
.proposal-user { font-weight:600; color:var(--noir); }
.proposal-time { font-size:.8125rem; color:var(--gris-moyen); margin-left:auto; }
.proposal-offer { font-size:.9375rem; color:var(--gris-fonce); margin-bottom:8px; }
.proposal-msg { color:var(--gris-moyen); font-size:.875rem; border-left:3px solid var(--or); padding-left:12px; margin-bottom:12px; }
.proposal-actions { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.annonce-sidebar { position:sticky; top:90px; }
.owner-card { background:#fff; border-radius:var(--radius-card); border:1px solid var(--gris-clair); padding:24px; margin-bottom:16px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; }
.owner-avatar { width:88px; height:88px; border-radius:50%; overflow:hidden; border:2px solid var(--or); background:var(--or-pale); display:flex; align-items:center; justify-content:center; }
.owner-avatar img { width:100%; height:100%; object-fit:cover; }
.owner-name { font-size:1rem; font-weight:700; color:var(--noir); }
.owner-city { font-size:.875rem; color:var(--gris-moyen); }
.owner-stats { display:flex; gap:16px; font-size:.8125rem; color:var(--gris-moyen); }
.sidebar-notice { background:var(--or-pale); border:1px solid rgba(212,175,55,.3); border-radius:var(--radius-btn); padding:12px 16px; font-size:.875rem; color:var(--or-hover); font-weight:600; text-align:center; }
.owner-actions { display:flex; flex-direction:column; gap:8px; }
.proposal-form { background:var(--fond); border-radius:var(--radius-card); padding:20px; margin-top:12px; border:1px solid var(--gris-clair); }
.offer-type-tabs { display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
.offer-tab { padding:10px 14px; border-radius:var(--radius-btn); border:2px solid var(--gris-clair); font-size:.875rem; font-weight:500; text-align:left; transition:var(--transition); cursor:pointer; background:#fff; }
.offer-tab.active { border-color:var(--or); background:var(--or-pale); color:var(--or-hover); font-weight:600; }
.offer-tab:hover:not(.active) { border-color:#ccc; }

/* ===== AJOUTER ANNONCE ===== */
.form-page { padding:40px 0 60px; background:var(--fond); }
.form-card { background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:40px; max-width:700px; margin:0 auto; }
.form-title { font-size:1.5rem; font-weight:700; margin-bottom:32px; }
.photo-upload-area { border:2px dashed var(--gris-clair); border-radius:var(--radius-card); padding:32px; text-align:center; position:relative; cursor:pointer; transition:border-color var(--transition); }
.photo-upload-area:hover, .photo-upload-area.drag-over { border-color:var(--or); background:var(--or-pale); }
.photo-file-input { position:absolute; inset:0; width:100%; opacity:0; cursor:pointer; z-index:2; }
.photo-upload-inner { pointer-events:none; }
.photo-upload-inner p { color:var(--gris-moyen); margin-top:10px; }
.photo-previews { display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.preview-thumb { width:80px; height:80px; border-radius:10px; overflow:hidden; }
.preview-thumb img { width:100%; height:100%; object-fit:cover; }
.existing-photos { margin-top:16px; }
.existing-photos p { font-size:.875rem; color:var(--gris-moyen); margin-bottom:10px; }
.thumb-wrap { position:relative; display:inline-block; width:80px; height:80px; }
.thumb-wrap img { width:100%; height:100%; border-radius:10px; object-fit:cover; }
.thumb-delete { position:absolute; top:-6px; right:-6px; width:20px; height:20px; background:var(--error); color:#fff; border-radius:50%; font-size:.65rem; display:flex; align-items:center; justify-content:center; z-index:1; }

/* ===== DASHBOARD ===== */
.dashboard-page { padding:40px 0 60px; background:var(--fond); }
.dashboard-layout { display:grid; grid-template-columns:300px 1fr; gap:32px; align-items:start; }
.dash-sidebar { display:flex; flex-direction:column; gap:16px; position:sticky; top:90px; }
.dash-profile-card { background:#fff; border-radius:var(--radius-card); border:1px solid var(--gris-clair); padding:28px 20px; text-align:center; }
.dash-avatar { width:100px; height:100px; border-radius:50%; overflow:hidden; border:3px solid var(--or); background:var(--or-pale); display:flex; align-items:center; justify-content:center; margin:0 auto 12px; }
.dash-avatar img { width:100%; height:100%; object-fit:cover; }
.dash-username { font-size:1.125rem; font-weight:700; }
.dash-city { font-size:.875rem; color:var(--gris-moyen); margin-top:4px; }
.dash-stats { display:flex; justify-content:center; gap:24px; margin:16px 0; }
.dash-stat { text-align:center; }
.stat-val { display:block; font-size:1.5rem; font-weight:700; color:var(--or); }
.stat-lbl { font-size:.75rem; color:var(--gris-moyen); }
.swaphit-card { background:#fff; border-radius:var(--radius-card); border:1px solid var(--gris-clair); padding:20px; }
.swaphit-card h3 { font-size:1rem; font-weight:700; margin-bottom:12px; }
.swaphit-item { display:flex; align-items:center; gap:10px; }
.swaphit-item img { width:48px; height:48px; border-radius:10px; object-fit:cover; border:2px solid var(--or); }
.swaphit-item span { font-weight:600; font-size:.9375rem; }
.dash-edit-profile { background:#fff; border-radius:var(--radius-card); border:1px solid var(--gris-clair); padding:20px; }
.dash-edit-profile h3 { font-size:1rem; font-weight:700; margin-bottom:16px; }
.dash-sidebar-links { background:#fff; border-radius:var(--radius-card); border:1px solid var(--gris-clair); padding:16px; display:flex; flex-direction:column; gap:10px; }
.dash-sidebar-links a { font-size:.9375rem; font-weight:500; color:var(--gris-fonce); display:flex; align-items:center; gap:6px; padding:8px 12px; border-radius:var(--radius-btn); transition:var(--transition); }
.dash-sidebar-links a:hover { background:var(--fond); color:var(--or); }
.dash-main { display:flex; flex-direction:column; gap:24px; }
.dash-section { background:#fff; border-radius:var(--radius-card); border:1px solid var(--gris-clair); padding:24px; }
.dash-section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.dash-section-head h2 { font-size:1.125rem; font-weight:700; }
.dash-annonces-list { display:flex; flex-direction:column; gap:12px; }
.dash-annonce-row { display:flex; align-items:center; gap:14px; padding:12px; background:var(--fond); border-radius:var(--radius-btn); }
.dash-ann-img { width:56px; height:56px; object-fit:cover; border-radius:10px; flex-shrink:0; }
.dash-ann-info { flex:1; min-width:0; }
.dash-ann-title { font-weight:600; font-size:.9375rem; color:var(--noir); display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dash-ann-meta { display:flex; align-items:center; gap:8px; margin-top:4px; flex-wrap:wrap; }
.dash-ann-actions { display:flex; gap:6px; flex-shrink:0; }
.exchanges-list { display:flex; flex-direction:column; gap:10px; }
.exchange-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px; background:var(--fond); border-radius:var(--radius-btn); flex-wrap:wrap; }
.ex-info { display:flex; flex-direction:column; gap:2px; }
.ex-title { font-weight:600; font-size:.9375rem; color:var(--noir); }
.ex-meta { display:flex; align-items:center; gap:8px; }
.link-more { color:var(--or); font-size:.875rem; font-weight:600; }

/* ===== PROFILE ===== */
.profile-page { padding:40px 0 60px; }
.profile-header { display:grid; grid-template-columns:auto 1fr auto; gap:32px; align-items:start; background:#fff; border-radius:var(--radius-lg); border:1px solid var(--gris-clair); padding:32px; margin-bottom:40px; }
.profile-avatar { width:110px; height:110px; border-radius:50%; overflow:hidden; border:3px solid var(--or); background:var(--or-pale); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.profile-avatar img { width:100%; height:100%; object-fit:cover; }
.profile-name { font-size:1.5rem; font-weight:700; margin-bottom:4px; }
.profile-city { display:flex; align-items:center; gap:6px; color:var(--gris-moyen); margin-bottom:10px; }
.profile-bio { color:var(--gris-fonce); line-height:1.6; margin-bottom:12px; }
.profile-stats { display:flex; gap:24px; margin-bottom:8px; }
.p-stat { text-align:center; }
.p-stat-val { display:block; font-size:1.5rem; font-weight:700; color:var(--or); }
.p-stat-lbl { font-size:.75rem; color:var(--gris-moyen); }
.profile-since { margin-top:4px; }
.profile-annonces { }
.swaphit-showcase { background:linear-gradient(135deg,var(--or-pale),#fff); border-radius:var(--radius-card); border:2px solid rgba(212,175,55,.3); padding:20px; text-align:center; }
.swaphit-badge { display:inline-flex; align-items:center; background:var(--or); color:#fff; border-radius:999px; padding:4px 12px; font-size:.75rem; font-weight:700; margin-bottom:12px; }
.swaphit-item-lg { display:flex; flex-direction:column; align-items:center; gap:8px; }
.swaphit-item-lg img { width:80px; height:80px; border-radius:var(--radius-card); object-fit:cover; border:2px solid var(--or); }
.swaphit-item-lg span { font-weight:600; font-size:.9375rem; }
.swaphit-chain { display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:center; margin-top:12px; font-size:.75rem; }
.chain-arrow { color:var(--or); font-weight:700; }
.chain-item { background:var(--or-pale); padding:3px 8px; border-radius:999px; font-weight:500; }

/* ===== MESSAGES ===== */
.messages-page { padding:40px 0 60px; }
.messages-layout { display:grid; grid-template-columns:320px 1fr; gap:0; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--gris-clair); min-height:600px; background:#fff; }
.conversations-panel { border-right:1px solid var(--gris-clair); display:flex; flex-direction:column; }
.conversations-panel h2 { font-size:1.125rem; font-weight:700; padding:20px; border-bottom:1px solid var(--gris-clair); }
.conv-list { flex:1; overflow-y:auto; }
.conv-item { display:flex; align-items:flex-start; gap:12px; padding:16px 20px; border-bottom:1px solid var(--gris-clair); transition:background var(--transition); cursor:pointer; }
.conv-item:hover { background:var(--fond); }
.conv-item.active { background:var(--or-pale); }
.conv-item.unread .conv-name { font-weight:700; color:var(--noir); }
.conv-avatar { position:relative; flex-shrink:0; }
.conv-avatar img { width:44px; height:44px; border-radius:50%; object-fit:cover; }
.conv-avatar .avatar-initial { width:44px; height:44px; font-size:.875rem; }
.unread-dot { position:absolute; top:-2px; right:-2px; width:18px; height:18px; background:var(--or); border-radius:50%; font-size:.65rem; font-weight:700; color:#fff; display:flex; align-items:center; justify-content:center; border:2px solid #fff; }
.conv-info { flex:1; min-width:0; }
.conv-top { display:flex; justify-content:space-between; align-items:center; }
.conv-name { font-size:.9375rem; font-weight:500; }
.conv-ann { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; }
.conv-preview { margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--gris-moyen); }
.thread-panel { display:flex; flex-direction:column; }
.thread-empty { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--gris-moyen); gap:12px; }
.thread-header { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; border-bottom:1px solid var(--gris-clair); }
.thread-user { display:flex; align-items:center; gap:12px; }
.thread-name { font-weight:700; display:block; }
.thread-ann { display:block; }
.thread-messages { flex:1; overflow-y:auto; padding:20px 24px; display:flex; flex-direction:column; gap:12px; min-height:200px; max-height:calc(100vh - 280px); }
@media (max-width:767px) { .thread-messages { max-height:calc(100vh - 220px); padding:12px 16px; } }
.message-bubble { max-width:70%; display:flex; flex-direction:column; gap:4px; }
.message-bubble.mine { align-self:flex-end; align-items:flex-end; }
.message-bubble.theirs { align-self:flex-start; align-items:flex-start; }
.bubble-content { padding:10px 16px; border-radius:18px; font-size:.9375rem; line-height:1.5; }
.mine .bubble-content { background:var(--or); color:#fff; border-bottom-right-radius:4px; }
.theirs .bubble-content { background:var(--fond); color:var(--noir); border-bottom-left-radius:4px; }
.bubble-time { font-size:.7rem; color:var(--gris-moyen); }
.thread-actions-bar { padding:12px 24px; border-top:1px solid var(--gris-clair); background:var(--or-pale); }
.message-form { display:flex; gap:10px; padding:16px 24px; border-top:1px solid var(--gris-clair); }
.message-input { flex:1; padding:12px 16px; border:2px solid var(--gris-clair); border-radius:var(--radius-btn); font-size:.9375rem; font-family:inherit; resize:none; outline:none; transition:border-color var(--transition); }
.message-input:focus { border-color:var(--or); }

/* ===== EXCHANGES PAGE ===== */
.exchanges-page { padding:40px 0 60px; }
.tabs-bar { display:flex; gap:4px; margin-bottom:28px; background:var(--fond); border-radius:var(--radius-btn); padding:4px; width:fit-content; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; flex-wrap:nowrap; }
.tab { padding:8px 18px; border-radius:10px; font-size:.875rem; font-weight:600; color:var(--gris-moyen); transition:var(--transition); }
.tab:hover { color:var(--noir); }
.tab.active { background:#fff; color:var(--nor); box-shadow:var(--shadow-sm); color:var(--or); }
@media (max-width: 767px) {
  .tabs-bar { width:100%; box-sizing:border-box; }
  .tab { flex:1; text-align:center; padding:8px 4px; font-size:.8rem; white-space:nowrap; }
}
.exchanges-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.exchange-card { background:#fff; border-radius:var(--radius-card); border:1px solid var(--gris-clair); padding:20px; display:flex; flex-direction:column; gap:12px; transition:var(--transition); }
.exchange-card:hover { box-shadow:var(--shadow-sm); border-color:#ddd; }
.ex-card-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ex-ann-title { font-weight:700; font-size:.9375rem; flex:1; }
.ex-card-body { display:flex; flex-direction:column; gap:4px; }
.ex-parties { font-size:.875rem; color:var(--gris-moyen); }
.ex-offer { font-size:.9375rem; color:var(--gris-fonce); }
.ex-time { }
.ex-card-actions { display:flex; gap:8px; flex-wrap:wrap; }

/* ===== FOOTER — see v2 block at bottom ===== */

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
    .annonces-grid { grid-template-columns:repeat(3,1fr); }
    .cats-grid { grid-template-columns:repeat(4,1fr); }
    .steps-grid { grid-template-columns:repeat(2,1fr); }
    .hero .container { grid-template-columns:1fr; gap:40px; }
    .hero-stats { grid-template-columns:repeat(3,1fr); }
    .annonce-layout { grid-template-columns:1fr; }
    .annonce-sidebar { position:static; }
    .dashboard-layout { grid-template-columns:1fr; }
    .dash-sidebar { position:static; }
    .profile-header { grid-template-columns:auto 1fr; }
    .swaphit-showcase { grid-column: span 2; }
    .footer-inner { grid-template-columns:1fr 1fr; }
}
@media (max-width: 768px) {
    .annonces-grid { grid-template-columns:repeat(2,1fr); }
    .cats-grid { grid-template-columns:repeat(3,1fr); }
    .form-row-2 { grid-template-columns:1fr; }
    .messages-layout { grid-template-columns:1fr; }
    .conversations-panel { max-height:300px; }
    .exchanges-grid { grid-template-columns:1fr; }
    .hero-title { font-size:2.2rem; }
    .hero-cta { flex-direction:column; }
    .nav-menu { display:none; flex-direction:column; position:fixed; top:72px; left:0; right:0; background:#fff; padding:20px 24px; border-bottom:1px solid var(--gris-clair); gap:16px; box-shadow:var(--shadow-md); z-index:999; }
    .nav-menu.open { display:flex; }
    .hamburger { display:flex; }
    .profile-header { grid-template-columns:1fr; }
    .footer-inner { grid-template-columns:1fr; gap:24px; }

    /* ──────────────────────────────
       DASHBOARD MOBILE
    ────────────────────────────── */
    .dashboard-page { padding:16px 0 80px; overflow-x:hidden; }

    /* Carte profil : layout vertical compact (pas flex row - évite overflow stats) */
    .dash-profile-card {
        display:grid;
        grid-template-columns:auto 1fr;
        grid-template-rows:auto auto;
        column-gap:14px;
        row-gap:0;
        align-items:center;
        text-align:left;
        padding:14px;
        overflow:hidden;
    }
    .dash-avatar { margin:0; flex-shrink:0; grid-row:1/3; align-self:center; }
    .dash-username { font-size:.9375rem; grid-column:2; grid-row:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .dash-city { display:inline; font-size:.8rem; margin-top:0; margin-left:6px; }
    .dash-stats {
        grid-column:2; grid-row:2;
        display:flex; gap:12px; margin:4px 0 0;
        flex-wrap:nowrap;
    }
    .dash-stat { text-align:left; min-width:0; }
    .stat-val { font-size:1rem; }
    .stat-lbl { font-size:.7rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    /* Bouton profil public caché sur mobile */
    .dash-profile-card .btn-outline { display:none; }

    /* SwapHit : masqué sur mobile */
    .swap-hit { display:none; }

    /* Formulaire édition profil : accordéon collapsed */
    .dash-edit-profile { padding:14px; }
    .dash-edit-profile h3 {
        margin-bottom:0; cursor:pointer;
        display:flex; align-items:center; justify-content:space-between;
    }
    .dash-edit-profile h3::after { content:'＋'; font-size:.9rem; color:var(--or); }
    .dash-edit-profile.open h3::after { content:'－'; }
    .dash-edit-profile .form-group,
    .dash-edit-profile button[type=submit] { display:none; }
    .dash-edit-profile.open .form-group { display:flex; }
    .dash-edit-profile.open button[type=submit] { display:flex; margin-top:4px; }

    /* Liens sidebar : grille 2 colonnes */
    .dash-sidebar-links { flex-direction:row; flex-wrap:wrap; gap:8px; padding:12px; }
    .dash-sidebar-links a {
        flex:1; min-width:0; justify-content:center;
        font-size:.8125rem; padding:10px 6px;
        border:1px solid var(--gris-clair); border-radius:var(--radius-btn);
        white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    }

    /* Sections : pas de débordement */
    .dash-section { padding:14px; border-radius:var(--radius-btn); overflow:hidden; }
    .dash-section-head { margin-bottom:14px; gap:8px; flex-wrap:nowrap; align-items:center; overflow:hidden; }
    .dash-section-head h2 { font-size:.9375rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; min-width:0; }
    .dash-section-head .btn-primary { flex-shrink:0; white-space:nowrap; }

    /* Ligne annonce : actions sur 2e ligne */
    .dash-annonce-row { flex-wrap:wrap; gap:8px; padding:10px; }
    .dash-ann-img { width:44px; height:44px; }
    .dash-ann-info { min-width:0; flex:1; overflow:hidden; }
    .dash-ann-actions {
        width:100%; justify-content:flex-end; gap:4px;
        padding-top:8px; border-top:1px solid var(--gris-clair);
        flex-wrap:wrap;
    }
    .dash-ann-actions .btn-xs { padding:4px 10px; font-size:.75rem; }
    .dash-ann-title { white-space:normal; font-size:.8125rem; }
    .dash-ann-meta { gap:4px; font-size:.75rem; }
    .dash-ann-meta .badge { font-size:.675rem; }

    /* Lignes échange */
    .exchange-row { gap:8px; overflow:hidden; }
    .ex-info { flex:1; min-width:0; overflow:hidden; }
    .ex-title { font-size:.8125rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; }
    .ex-meta { gap:4px; flex-wrap:wrap; }
    .ex-meta .badge { font-size:.675rem; }
    .ex-meta .btn-xs { font-size:.6875rem; padding:4px 8px; }
}
@media (max-width: 480px) {
    .annonces-grid { grid-template-columns:1fr; }
    .cats-grid { grid-template-columns:repeat(2,1fr); }

    /* Dashboard 480px */
    .dashboard-page { overflow-x:hidden; }
    .dash-avatar { width:80px; height:80px; }
    .dash-username { font-size:.8125rem; }
    .stat-val { font-size:.875rem; }
    .dash-ann-img { width:40px; height:40px; }
    .dash-ann-actions .btn-xs { font-size:.6875rem; padding:3px 8px; }
    .dash-sidebar-links a { font-size:.75rem; padding:8px 4px; }
    .auth-card { padding:32px 20px; }
    .hero-title { font-size:1.75rem; }
    .hero-stats { grid-template-columns:1fr; }
    .steps-grid { grid-template-columns:1fr; }
    .form-card { padding:24px 16px; }
}
.annonce-detail {
    padding: 40px 20px;
}

.annonce-header h1 {
    font-size: 28px;
    margin-bottom: 10px;
}

.annonce-meta {
    color: #777;
    font-size: 14px;
}

.annonce-content {
    display: flex;
    gap: 30px;
    margin-top: 30px;
    flex-wrap: wrap;
}

.annonce-image img {
    width: 100%;
    max-width: 400px;
    border-radius: 10px;
}

.annonce-info {
    flex: 1;
}

.annonce-info h3 {
    margin-bottom: 10px;
}

.annonce-extra p {
    margin: 5px 0;
}

.annonce-proposal {
    margin-top: 40px;
}

.annonce-proposal textarea {
    width: 100%;
    height: 120px;
    padding: 10px;
    margin-bottom: 10px;
}

/* ===== HEADER v2 — unified navbar & mobile drawer ===== */

/* navbar-inner (index.php uses .container.navbar-inner, header uses .container > .navbar-inner) */
.navbar .container.navbar-inner,
.navbar-inner { display:flex; align-items:center; justify-content:space-between; height:72px; }

.logo-img { height:42px; width:auto; display:block; }

/* nav-user avatar */
.nav-user { display:flex; align-items:center; gap:10px; }
.nav-avatar { width:36px; height:36px; border-radius:50%; object-fit:cover; border:2px solid var(--gris-clair); }
.nav-username { font-size:14px; font-weight:600; color:var(--noir); }
.nav-logout { color:var(--gris-moyen); font-size:16px; transition:color 0.2s; display:flex; }
.nav-logout:hover { color:#EF4444; }

/* lang dropdown — supports both <div> list <ul> children */
.lang-dropdown { position:relative; }
.lang-btn { display:flex; align-items:center; gap:6px; font-size:14px; font-weight:500; color:var(--gris-moyen); padding:8px 10px; border-radius:8px; transition:background 0.2s; background:none; border:none; cursor:pointer; font-family:inherit; }
.lang-btn:hover { background:var(--fond); }
.lang-btn i { font-size:10px; transition:transform 0.2s; }
.lang-dropdown.open .lang-btn i { transform:rotate(180deg); }
.lang-menu { position:absolute; top:calc(100% + 8px); right:0; background:var(--blanc); border-radius:12px; box-shadow:0 12px 40px rgba(0,0,0,0.1); padding:8px; min-width:130px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:all 0.25s ease; border:1px solid var(--gris-clair); list-style:none; }
.lang-dropdown.open .lang-menu { opacity:1; visibility:visible; transform:translateY(0); }
.lang-menu a, .lang-menu li a { display:block; padding:8px 12px; font-size:14px; border-radius:8px; transition:background 0.15s; color:var(--gris-fonce); }
.lang-menu a:hover, .lang-menu li a:hover { background:var(--fond); }
.lang-menu a.active, .lang-menu li a.active { color:var(--or); font-weight:600; }

/* mobile menu button */
.mobile-menu-btn { display:none; width:40px; height:40px; align-items:center; justify-content:center; font-size:20px; color:var(--noir); border-radius:10px; border:none; background:none; cursor:pointer; }
.mobile-menu-btn:hover { background:var(--fond); }

/* mobile overlay */
.mobile-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.35); z-index:999; opacity:0; visibility:hidden; transition:all 0.3s ease; }
.mobile-overlay.open { opacity:1; visibility:visible; }

/* mobile drawer */
.mobile-drawer { position:fixed; top:0; right:0; bottom:0; width:300px; background:var(--blanc); z-index:1001; padding:80px 28px 28px; transform:translateX(100%); transition:transform 0.35s cubic-bezier(0.16,1,0.3,1); box-shadow:-10px 0 40px rgba(0,0,0,0.1); overflow-y:auto; }
.mobile-drawer.open { transform:translateX(0); }
.mobile-drawer .nav-menu { flex-direction:column; align-items:flex-start; gap:4px; margin-bottom:24px; display:flex !important; }
.mobile-drawer .nav-menu a { font-size:18px; padding:12px 0; width:100%; border-bottom:1px solid var(--gris-clair); color:var(--noir); }
.mobile-drawer .nav-menu a.active { color:var(--or); }
.mobile-drawer .lang-section { padding:16px 0; border-bottom:1px solid var(--gris-clair); margin-bottom:20px; }
.mobile-drawer .lang-section h4 { font-size:12px; font-weight:600; color:var(--gris-moyen); text-transform:uppercase; letter-spacing:1px; margin-bottom:12px; }
.mobile-drawer .lang-options { display:flex; gap:10px; }
.mobile-drawer .lang-option { padding:8px 16px; border-radius:20px; font-size:14px; font-weight:500; border:1.5px solid var(--gris-clair); color:var(--gris-moyen); transition:all 0.2s; cursor:pointer; text-decoration:none; display:inline-block; }
.mobile-drawer .lang-option.active { background:var(--or); color:var(--blanc); border-color:var(--or); }
.mobile-drawer .lang-option:not(.active):hover { border-color:var(--or); color:var(--or); }
.mobile-drawer .auth-btns { display:flex; flex-direction:column; gap:10px; margin-top:8px; }
.mobile-drawer .auth-btns a { display:block; text-align:center; padding:13px 14px; border-radius:var(--radius-btn); font-size:15px; font-weight:600; }
.mobile-drawer .auth-btns .btn-primary { background:var(--or); color:var(--blanc); box-shadow:0 4px 16px rgba(212,175,55,0.3); }
.mobile-drawer .auth-btns .btn-outline { color:var(--or); border:1.5px solid var(--or); }

/* btn-sm — defined above */

/* ===== FOOTER v2 — unified rich footer ===== */
.footer { background:var(--blanc); color:var(--noir); padding:64px 0 24px; border-top:1px solid var(--gris-clair); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; margin-bottom:48px; }
.footer-brand p { color:var(--gris-moyen); font-size:.875rem; margin-top:10px; margin-bottom:16px; }
.social-links { display:flex; gap:10px; }
.social-links a { width:36px; height:36px; border-radius:50%; background:var(--fond); display:flex; align-items:center; justify-content:center; color:var(--gris-moyen); font-size:14px; transition:all 0.25s; }
.social-links a:hover { background:var(--or); color:var(--blanc); transform:translateY(-2px); }
.footer-col h4 { font-size:14px; font-weight:700; margin-bottom:18px; color:var(--noir); }
.footer-col ul { list-style:none; }
.footer-col li { margin-bottom:10px; }
.footer-col a { font-size:14px; color:var(--gris-moyen); transition:color 0.2s; }
.footer-col a:hover { color:var(--or); }
.footer-bottom { border-top:1px solid var(--gris-clair); padding-top:24px; text-align:center; }
.footer-bottom p { font-size:13px; color:var(--gris-moyen); }
.footer-dev { margin-top:6px; font-size:13px; color:var(--gris-moyen); }
.footer-credit { margin-top:6px; font-size:13px; }
.footer-credit a { color:var(--or); font-weight:600; transition:color .2s; }
.footer-credit a:hover { color:var(--or-hover); text-decoration:underline; }

@media (max-width:1024px) { .footer-grid { grid-template-columns:repeat(2,1fr); } .footer-brand { grid-column:1/-1; } }
@media (max-width:768px) {
    .nav-menu { display:none; }
    .nav-user { display:none; }
    .nav-actions .lang-dropdown { display:none; }
    .nav-actions .btn-primary { display:none; }
    .mobile-menu-btn { display:flex; }
    .footer-grid { grid-template-columns:1fr; gap:24px; }
}

/* ===== ANNONCE DETAIL — MOBILE ===== */
@media (max-width: 767px) {
    /* Page padding */
    .annonce-page { padding:16px 0 100px; }

    /* Breadcrumb compact */
    .breadcrumb { font-size:.75rem; gap:4px; margin-bottom:14px; flex-wrap:nowrap; overflow:hidden; }
    .breadcrumb span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

    /* Photos */
    .photos-viewer { margin-bottom:20px; }
    .photo-main { border-radius:var(--radius-card); }
    .thumb { width:60px; height:60px; }

    /* Titre & valeur */
    .annonce-title { font-size:1.3rem; margin-bottom:8px; }
    .annonce-value { font-size:1.1rem; margin-bottom:8px; }
    .annonce-city { font-size:.875rem; }
    .annonce-desc p { font-size:.9rem; line-height:1.65; }
    .annonce-meta-row { font-size:.8rem; }

    /* ── Sidebar sticky en bas ── */
    .annonce-sidebar {
        position:fixed;
        bottom:0; left:0; right:0;
        z-index:200;
        background:#fff;
        border-top:1px solid var(--gris-clair);
        box-shadow:0 -4px 20px rgba(0,0,0,.08);
        padding:12px 16px;
        display:flex;
        flex-direction:column;
        gap:8px;
    }

    /* Owner card : s'affiche dans le flux (avant la sidebar) */
    .owner-card {
        flex-direction:row;
        text-align:left;
        padding:14px;
        gap:12px;
        margin-bottom:16px;
    }
    .owner-avatar { width:64px; height:64px; flex-shrink:0; }
    .owner-avatar img { width:64px; height:64px; }
    .avatar-initial { width:64px; height:64px; font-size:1.3rem; }
    .owner-stats { font-size:.75rem; }

    /* Boutons en pleine largeur dans la barre sticky */
    .annonce-sidebar .btn-primary,
    .annonce-sidebar .btn-outline,
    .annonce-sidebar .btn-swaphit { width:100%; }

    /* Formulaire de proposition : drawer du bas */
    .proposal-form {
        position:fixed;
        bottom:0; left:0; right:0;
        z-index:300;
        border-radius:20px 20px 0 0;
        max-height:85vh;
        overflow-y:auto;
        padding:20px 16px 32px;
        box-shadow:0 -8px 40px rgba(0,0,0,.15);
        background:#fff;
        border:none;
        margin-top:0;
    }
    .proposal-form::before {
        content:'';
        display:block;
        width:40px; height:4px;
        background:var(--gris-clair);
        border-radius:2px;
        margin:0 auto 16px;
    }

    /* Offer tabs en colonne */
    .offer-type-tabs { flex-direction:column; gap:8px; }
    .offer-tab { width:100%; text-align:left; }

    /* Proposals section */
    .proposals-section { margin-top:24px; }
    .proposal-header { flex-wrap:wrap; gap:6px; }
    .proposal-actions { flex-wrap:wrap; gap:8px; }
    .proposal-actions .btn-primary,
    .proposal-actions .btn-outline { flex:1; min-width:120px; text-align:center; }

    /* Owner actions */
    .owner-actions { display:flex; flex-direction:column; gap:8px; width:100%; }
    .owner-actions .btn-outline { margin-top:0 !important; }
}
