.pub-hero { border-radius:18px; overflow:hidden; background:var(--card); box-shadow:0 2px 20px rgba(0,0,0,.08); margin-bottom:20px; animation:fadeUp .4s ease both; }
.pub-cover { height:220px; background:linear-gradient(135deg,#1a56db,#0ea5e9,#06b6d4); overflow:hidden; }
.pub-cover img { width:100%;height:100%;object-fit:cover; }
.pub-identity { display:flex;align-items:flex-end;gap:20px;padding:0 24px 20px;flex-wrap:wrap; }
.pub-avatar { position:relative;margin-top:-50px;flex-shrink:0; }
.pub-avatar img { width:100px;height:100px;border-radius:50%;border:4px solid var(--card);object-fit:cover;box-shadow:0 4px 20px rgba(0,0,0,.15);background:var(--bg); }
.pub-info { flex:1;min-width:180px;padding-bottom:4px; }
.pub-name { font-size:1.4rem;font-weight:800;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.verified-badge { width:22px;height:22px;border-radius:50%;background:var(--primary);color:white;display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;flex-shrink:0; }

/* ── Locked profile hero ─────────────────────────────────── */
.pub-hero.is-locked .pub-cover { position:relative; }
.pub-hero.is-locked .pub-cover::after {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(160deg,rgba(15,39,68,.72) 0%,rgba(99,40,180,.45) 100%);
  backdrop-filter:blur(3px) saturate(.8);
}
.pub-hero.is-locked .pub-avatar img {
  box-shadow:0 0 0 3px #a78bfa, 0 0 0 6px rgba(167,139,250,.25), 0 8px 28px rgba(0,0,0,.3);
}
.pub-hero.is-locked .pub-stats {
  filter:blur(5px); pointer-events:none; user-select:none; opacity:.3;
}
.pub-hero.is-locked .pub-meta { display:none; }
.pub-hero.is-locked .pab-primary { display:none; }

/* Lock indicator badge on avatar */
.lock-avatar-badge {
  position:absolute; bottom:-3px; right:-3px;
  width:30px; height:30px; border-radius:50%;
  background:linear-gradient(135deg,#7c3aed,#a78bfa);
  border:3px solid var(--card);
  display:flex; align-items:center; justify-content:center;
  font-size:.72rem; color:#fff;
  box-shadow:0 2px 10px rgba(124,58,237,.5);
  animation:lockPulse 3s ease-in-out infinite;
}
@keyframes lockPulse {
  0%,100% { box-shadow:0 2px 10px rgba(124,58,237,.5); }
  50%      { box-shadow:0 2px 20px rgba(124,58,237,.85); }
}

/* ── Locked wall (main content replacement) ─────────────── */
.locked-wall {
  position:relative; overflow:hidden;
  margin-top:20px; border-radius:24px;
  background:var(--card);
  border:1px solid var(--border);
  box-shadow:0 8px 40px rgba(0,0,0,.1);
}
/* Blurred ghost rows behind */
.locked-ghost {
  display:flex; flex-direction:column; gap:14px;
  padding:28px 24px 32px; filter:blur(6px);
  pointer-events:none; user-select:none; opacity:.22;
}
.locked-ghost-row { height:16px; border-radius:8px; background:var(--border); }
.locked-ghost-card {
  height:90px; border-radius:14px;
  background:linear-gradient(90deg,var(--border) 0%,var(--bg) 100%);
}
/* Gradient overlay */
.locked-wall-bg {
  position:absolute; inset:0;
  background:linear-gradient(180deg,
    transparent 0%,
    color-mix(in srgb,var(--card) 60%,transparent) 35%,
    var(--card) 65%);
  pointer-events:none; z-index:1;
}
/* Decorative mesh pattern */
.locked-wall-pattern {
  position:absolute; inset:0; z-index:0;
  opacity:.03;
  background-image:
    radial-gradient(circle at 20% 30%, #7c3aed 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, #1a56db 0%, transparent 50%);
}
.locked-wall-content {
  position:relative; z-index:2;
  display:flex; flex-direction:column; align-items:center;
  padding:0 24px 48px; text-align:center;
}

/* Icon ring */
.locked-icon-wrap {
  width:88px; height:88px; border-radius:50%;
  background:linear-gradient(135deg,#ede9fe,#ddd6fe);
  border:2px solid #c4b5fd;
  display:flex; align-items:center; justify-content:center;
  font-size:2rem; margin-bottom:22px;
  box-shadow:0 12px 32px rgba(124,58,237,.18);
  animation:iconFloat 4s ease-in-out infinite;
}
@keyframes iconFloat {
  0%,100% { transform:translateY(0); }
  50%      { transform:translateY(-6px); }
}

.locked-title {
  font-size:1.35rem; font-weight:900; color:var(--text);
  margin-bottom:8px; letter-spacing:-.4px;
}
.locked-sub {
  font-size:.88rem; color:var(--text-muted); line-height:1.75;
  max-width:340px; margin-bottom:28px;
}

/* Info chips row */
.locked-chips {
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:10px; margin-bottom:28px;
}
.locked-chip {
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 16px; border-radius:100px;
  font-size:.78rem; font-weight:700;
  border:1.5px solid var(--border);
  background:var(--bg); color:var(--text-muted);
}
.locked-chip.purple {
  background:#ede9fe; border-color:#c4b5fd; color:#5b21b6;
}
.locked-chip.blue {
  background:#eff6ff; border-color:#bfdbfe; color:#1d4ed8;
}
.locked-chip.amber {
  background:#fef3c7; border-color:#fde68a; color:#92400e;
}

/* Action buttons */
.locked-actions {
  display:flex; flex-wrap:wrap; gap:12px;
  justify-content:center; margin-bottom:24px;
}
.locked-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 24px; border-radius:12px;
  font-size:.88rem; font-weight:800;
  text-decoration:none; border:none; cursor:pointer;
  transition:all .18s; font-family:inherit;
}
.locked-btn-primary {
  background:linear-gradient(135deg,#7c3aed,#a78bfa);
  color:#fff;
  box-shadow:0 4px 18px rgba(124,58,237,.35);
}
.locked-btn-primary:hover {
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(124,58,237,.45);
  color:#fff;
}
.locked-btn-outline {
  background:var(--card); color:var(--text);
  border:1.5px solid var(--border);
}
.locked-btn-outline:hover {
  border-color:#a78bfa; color:#7c3aed;
  transform:translateY(-1px);
}

/* Bottom note */
.locked-note {
  font-size:.74rem; color:var(--text-muted);
  padding:12px 20px; background:var(--bg);
  border-radius:12px; border:1px solid var(--border);
  max-width:360px; line-height:1.65;
}
.pub-username { font-size:.85rem;color:var(--text-muted);margin-top:2px; }
.pub-meta { display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:.8rem;color:var(--text-muted); }
.pub-meta span { display:flex;align-items:center;gap:5px; }
.pub-actions { display:flex;gap:8px;padding-bottom:4px;flex-wrap:wrap; }
.pab { padding:9px 20px;border-radius:10px;font-size:.85rem;font-weight:700;border:none;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:6px;text-decoration:none;transition:all .15s; }
.pab-primary { background:var(--primary);color:white; }
.pab-primary:hover { filter:brightness(1.08);transform:translateY(-1px); }
.pab-outline { background:var(--bg);color:var(--text);border:1.5px solid var(--border); }
.pab-outline:hover { border-color:var(--primary-light);color:var(--primary); }

.pub-stats { display:flex;border-top:1px solid var(--border); }
.pstat { flex:1;text-align:center;padding:14px 8px;border-right:1px solid var(--border); }
.pstat:last-child { border-right:none; }
.pstat-val { font-size:1.3rem;font-weight:800;background:linear-gradient(135deg,var(--primary),var(--primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.pstat-val.green { background:linear-gradient(135deg,#16a34a,#4ade80);-webkit-background-clip:text;background-clip:text; }
.pstat-val.amber { background:linear-gradient(135deg,#d97706,#fbbf24);-webkit-background-clip:text;background-clip:text; }
.pstat-lbl { font-size:.7rem;color:var(--text-muted);margin-top:2px;font-weight:600;text-transform:uppercase;letter-spacing:.04em; }

.pub-layout { display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start; }
@media (max-width:860px) { .pub-layout { grid-template-columns:1fr; } }

.side-card { background:var(--card);border-radius:14px;border:1px solid var(--border);overflow:hidden;box-shadow:0 1px 8px rgba(0,0,0,.05);margin-bottom:16px; }
.side-card-hdr { padding:14px 18px 10px;font-size:.8rem;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border); }
.side-card-body { padding:16px 18px; }
.bio-text { font-size:.9rem;color:var(--text);line-height:1.6;font-style:italic;border-left:3px solid var(--primary-light);padding-left:12px;margin:0; }
.drow { display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);font-size:.87rem; }
.drow:last-child { border-bottom:none; }
.dico { width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0; }
.dlbl { color:var(--text-muted);font-size:.73rem; }
.dval { font-weight:600;color:var(--text); }

/* Contact cards */
.ccard { display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--border);border-radius:12px;margin-bottom:8px;transition:box-shadow .15s; }
.ccard:last-child { margin-bottom:0; }
.ccard:hover { box-shadow:0 2px 10px rgba(0,0,0,.08); }
.ccard.primary { border-color:var(--primary-light);background:color-mix(in srgb,var(--primary) 4%,transparent); }
.ccard-icon { width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0; }
.ccard-info { flex:1;min-width:0; }
.ccard-num { font-weight:700;font-size:.93rem; }
.ccard-sub { font-size:.72rem;color:var(--text-muted);margin-top:1px; }
.ccard-btns { display:flex;gap:5px;flex-shrink:0; }
.cbtn { height:32px;border-radius:8px;border:1.5px solid var(--border);background:var(--card);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.75rem;padding:0 10px;text-decoration:none;font-weight:700;transition:all .15s;gap:4px; }
.cbtn:hover { border-color:var(--primary-light);color:var(--primary); }
.cbtn-wa { background:#25d366;color:white;border-color:#25d366; }
.cbtn-wa:hover { background:#1da851;color:white; }

/* Star rating */
.star-filled { color:#f59e0b; }
.star-empty  { color:var(--border); }

/* Review cards */
.review-card { padding:16px;border:1px solid var(--border);border-radius:12px;margin-bottom:10px;transition:box-shadow .15s;background:var(--card); }
.review-card:hover { box-shadow:0 2px 10px rgba(0,0,0,.06); }
.review-stars { display:flex;gap:2px;margin-bottom:6px; }
.review-text { font-size:.87rem;line-height:1.55;color:var(--text); }
.review-meta { font-size:.75rem;color:var(--text-muted);margin-top:8px;display:flex;gap:10px;align-items:center; }

/* ── Unified profile cards (cars + annonces) ───────── */
.pcard-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(175px,1fr));
  gap:14px;
}
.pcard {
  border-radius:14px;overflow:hidden;
  border:1.5px solid var(--border);
  background:var(--card);
  text-decoration:none;color:inherit;
  display:flex;flex-direction:column;
  transition:transform .18s,box-shadow .18s,border-color .18s;
  box-shadow:0 1px 6px rgba(0,0,0,.05);
}
.pcard:hover {
  transform:translateY(-4px);
  box-shadow:0 10px 28px rgba(0,0,0,.11);
  border-color:var(--primary-light);
}
.pcard-img-wrap {
  position:relative;height:145px;overflow:hidden;background:var(--bg);flex-shrink:0;
}
.pcard-img-wrap img {
  width:100%;height:100%;object-fit:cover;
  transition:transform .3s;
}
.pcard:hover .pcard-img-wrap img { transform:scale(1.04); }
.pcard-badge {
  position:absolute;top:7px;right:7px;
  font-size:.6rem;font-weight:800;letter-spacing:.04em;
  padding:3px 8px;border-radius:20px;
}
.pcard-badge-sale  { background:#16a34a;color:#fff; }
.pcard-badge-type  { background:rgba(15,39,68,.72);color:#fff;backdrop-filter:blur(4px); }
.pcard-body { padding:11px 13px;flex:1;display:flex;flex-direction:column;gap:2px; }
.pcard-price { font-weight:800;font-size:.97rem;color:var(--primary); }
.pcard-title {
  font-size:.83rem;font-weight:700;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pcard-meta { font-size:.71rem;color:var(--text-muted);margin-top:2px; }
.pcard-action {
  display:block;margin-top:8px;text-align:center;
  background:var(--primary);color:#fff;
  border-radius:8px;font-size:.72rem;font-weight:700;
  padding:5px 0;text-decoration:none;
  transition:filter .15s;
}
.pcard-action:hover { filter:brightness(1.1);color:#fff; }

/* legacy aliases so existing ann-* refs still work */
.ann-grid  { display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:14px; }
.ann-card  { border-radius:14px;overflow:hidden;border:1.5px solid var(--border);background:var(--card);text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s,border-color .18s;display:block;box-shadow:0 1px 6px rgba(0,0,0,.05); }
.ann-card:hover { transform:translateY(-4px);box-shadow:0 10px 28px rgba(0,0,0,.11);border-color:var(--primary-light); }
.ann-img { width:100%;height:145px;object-fit:cover;background:var(--bg); }
.ann-body { padding:11px 13px; }
.ann-price { font-weight:800;font-size:.97rem;color:var(--primary); }
.ann-title { font-size:.83rem;font-weight:700;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.ann-meta { font-size:.71rem;color:var(--text-muted);margin-top:3px; }

/* Share ID pill */
.id-pill { display:inline-flex;align-items:center;gap:8px;background:var(--bg);border:1.5px solid var(--border);border-radius:50px;padding:6px 14px;font-size:.78rem;font-weight:700;color:var(--text-muted);cursor:pointer;transition:all .15s;user-select:all; }
.id-pill:hover { border-color:var(--primary-light);color:var(--primary); }

@keyframes fadeUp { from { opacity:0;transform:translateY(12px); } to { opacity:1;transform:translateY(0); } }

/* Mobile sticky contact bar */
.mob-contact-bar {
  display: none;
}
@media(max-width:768px){
  .mob-contact-bar {
    display: flex;
    position: fixed; bottom: 0; left: 0; right: 0;
    z-index: 400;
    padding: 10px 14px calc(env(safe-area-inset-bottom, 0px) + 10px);
    background: var(--card);
    border-top: 1px solid var(--border);
    box-shadow: 0 -4px 20px rgba(0,0,0,.1);
    gap: 10px;
  }
  .mob-contact-call {
    flex: 1;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    background: var(--primary); color: white;
    border-radius: 12px; padding: 13px 16px;
    font-size: .92rem; font-weight: 800;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }
  .mob-contact-call:active { opacity: .85; color: white; }
  .mob-contact-wa {
    display: flex; align-items: center; justify-content: center;
    width: 52px; height: 52px; border-radius: 12px;
    background: #25d366; color: white;
    font-size: 1.35rem; text-decoration: none; flex-shrink: 0;
    -webkit-tap-highlight-color: transparent;
  }
  .mob-contact-wa:active { opacity: .85; color: white; }
  /* Add bottom padding so content isn't hidden behind sticky bar */
  body { padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* ══════════════════════════════════════════════════════
   MOBILE — full redesign ≤ 768px
══════════════════════════════════════════════════════ */
@media(max-width:768px){

  /* Hero */
  .pub-hero { border-radius:0; margin:-1px -16px 0; box-shadow:none; }
  .pub-cover { height:170px; }

  /* Identity block */
  .pub-identity {
    padding:0 16px 16px;
    gap:0;
    flex-direction:column;
    align-items:flex-start;
  }

  /* Avatar: left-aligned, overlapping cover */
  .pub-avatar { margin-top:-44px; margin-bottom:10px; }
  .pub-avatar img { width:84px; height:84px; border-width:3px; }

  /* Name row */
  .pub-name { font-size:1.2rem; }
  .pub-username { font-size:.8rem; margin-top:1px; }

  /* Meta row: wrap nicely */
  .pub-meta { gap:8px; margin-top:6px; font-size:.76rem; flex-wrap:wrap; }

  /* Actions: full-width row */
  .pub-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    width:100%;
    margin-top:14px;
  }
  .pub-actions .pab { justify-content:center; padding:10px 12px; font-size:.83rem; }
  /* ID pill spans full width */
  .pub-actions .id-pill { grid-column:1/-1; justify-content:center; }

  /* Stats bar */
  .pub-stats { border-top:1px solid var(--border); }
  .pstat { padding:12px 4px; }
  .pstat-val { font-size:1.1rem; }
  .pstat-lbl { font-size:.63rem; letter-spacing:.02em; }

  /* Layout: single column, sidebar moves below main */
  .pub-layout {
    grid-template-columns:1fr;
    margin-top:16px;
    gap:0;
  }
  /* Reorder: main content first on mobile, sidebar after */
  .pub-layout > div:first-child { order:2; }  /* sidebar */
  .pub-layout > div:last-child  { order:1; }  /* main */

  /* Section labels */
  .pub-layout [style*="text-transform:uppercase"] { margin-bottom:10px !important; }

  /* Mobile app: single-column full-width cards */
  .pcard-grid,
  .ann-grid { grid-template-columns:1fr; gap:12px; }
  .pcard { flex-direction:row; height:100px; }
  .pcard-img-wrap { width:120px; height:100px; flex-shrink:0; border-radius:0; }
  .pcard-img-wrap img { border-radius:0; }
  .pcard-body { padding:10px 12px; justify-content:center; }
  .pcard-price,
  .ann-price { font-size:.92rem; }
  .pcard-title,
  .ann-title { font-size:.82rem; white-space:normal; line-clamp:2; -webkit-line-clamp:2; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; }
  .pcard-meta,
  .ann-meta { font-size:.72rem; }
  .pcard-action { display:none; }
  /* Annonce cards keep standard layout (image on top) */
  .ann-card { flex-direction:column; height:auto; }
  .ann-img { width:100%; height:180px; }

  /* Side cards: full-width, no radius on sides */
  .side-card { border-radius:12px; margin-bottom:12px; }
  .side-card-hdr { padding:12px 16px 8px; font-size:.75rem; }
  .side-card-body { padding:12px 16px; }

  /* Contact cards: larger tap targets */
  .ccard { padding:13px 14px; }
  .cbtn { height:36px; padding:0 12px; font-size:.8rem; }

  /* Reviews */
  .review-card { padding:13px; }

  /* Locked wall */
  .locked-wall { margin:16px -16px 0; border-radius:0; }
  .locked-wall-content { padding:0 20px 40px; }
  .locked-title { font-size:1.2rem; }
  .locked-chips { gap:7px; }
  .locked-btn { padding:10px 18px; font-size:.84rem; }
  .locked-actions { flex-direction:column; align-items:stretch; }
  .locked-btn { justify-content:center; }
}

@media(max-width:420px){
  .pub-cover { height:140px; }
  .pub-avatar img { width:76px; height:76px; }
  .pub-avatar { margin-top:-40px; }
  .pcard-img-wrap { width:100px; height:90px; }
  .pcard { height:90px; }
  .pstat-lbl { font-size:.58rem; }
}