/* Immobilier Sud — Frontend Biens */
:root {
  --is-gold:    #C9A96E;
  --is-dark:    #2A2520;
  --is-grey:    #8A8078;
  --is-cream:   #F2EDE4;
  --is-sand:    #E8DFD0;
  --is-red:     #E05A4A;
  --is-green:   #5A9E7A;
  --is-white:   #FFFFFF;
  --is-radius:  6px;
}

.immosud-wrap {
    font-family: inherit;
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 20px 60px;
    box-sizing: border-box;
}
.immosud-wrap *, .immosud-wrap *::before, .immosud-wrap *::after { box-sizing: border-box; }

/* Stats */
.immosud-hero-stats { display: flex; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
.immosud-stat { background: var(--is-white); border: 1px solid var(--is-sand); border-radius: var(--is-radius); padding: 16px 24px; text-align: center; min-width: 140px; }
.immosud-stat-n { display: block; font-size: 32px; font-weight: 300; color: var(--is-gold); line-height: 1; }
.immosud-stat-l { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--is-grey); margin-top: 4px; }
.immosud-drop-stat .immosud-stat-n { color: var(--is-red); }
.immosud-new-stat  .immosud-stat-n { color: var(--is-green); }

/* Moteur */
.immosud-search-box { background: var(--is-white); border: 1px solid var(--is-sand); border-radius: var(--is-radius); padding: 20px 24px; margin-bottom: 16px; box-shadow: 0 2px 12px rgba(42,37,32,.06); }
.immosud-search-row { display: grid; grid-template-columns: 2fr 1.2fr 1fr 1fr auto; gap: 10px; align-items: end; margin-bottom: 14px; }
.immosud-field label { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .18em; color: var(--is-grey); margin-bottom: 5px; }
.immosud-field input,
.immosud-field select { width: 100%; border: 1px solid var(--is-sand); border-radius: 4px; padding: 9px 12px; font-size: 14px; background: #faf8f4; outline: none; transition: .25s; font-family: inherit; }
.immosud-field input:focus,
.immosud-field select:focus { border-color: var(--is-gold); background: var(--is-white); box-shadow: 0 0 0 3px rgba(201,169,110,.12); }
.immosud-btns { display: flex; gap: 8px; }
#is-search-btn { background: var(--is-gold); color: #1a1714; border: none; border-radius: 4px; padding: 9px 22px; font-size: 12px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; white-space: nowrap; transition: .25s; }
#is-search-btn:hover { background: #a07840; color: #fff; }
#is-reset-btn { background: transparent; color: var(--is-grey); border: 1px solid var(--is-sand); border-radius: 4px; padding: 9px 14px; font-size: 12px; cursor: pointer; transition: .25s; }
#is-reset-btn:hover { border-color: var(--is-gold); color: var(--is-gold); }
.immosud-search-checks { display: flex; gap: 20px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid var(--is-cream); }
.immosud-search-checks label { display: flex; align-items: center; gap: 7px; font-size: 13px; cursor: pointer; color: var(--is-dark); user-select: none; }
.immosud-search-checks input[type="checkbox"] { accent-color: var(--is-gold); width: 15px; height: 15px; }

/* Barre résultats */
.immosud-results-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 10px; }
#is-count { font-size: 15px; color: var(--is-dark); }
#is-count strong { color: var(--is-gold); }
#is-sort { border: 1px solid var(--is-sand); border-radius: 4px; padding: 6px 32px 6px 10px; font-size: 13px; background: var(--is-white); color: var(--is-grey); cursor: pointer; outline: none; font-family: inherit; }

/* Grille */
.immosud-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.immosud-loading { grid-column: 1/-1; text-align: center; padding: 60px; color: var(--is-grey); font-size: 15px; }
.immosud-empty { grid-column: 1/-1; text-align: center; padding: 60px 20px; color: var(--is-grey); }
.immosud-empty strong { display: block; font-size: 20px; font-weight: 300; margin-bottom: 6px; color: var(--is-dark); }

/* Card */
.is-card { background: var(--is-white); border-radius: var(--is-radius); overflow: hidden; box-shadow: 0 2px 12px rgba(42,37,32,.07); transition: transform .3s, box-shadow .3s; animation: isCardIn .35s ease both; }
@keyframes isCardIn { from { opacity:0; transform:translateY(12px) } to { opacity:1; transform:none } }
.is-card:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(42,37,32,.14); }

.is-card-img { position: relative; height: 200px; overflow: hidden; background: var(--is-cream); }
.is-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.is-card:hover .is-card-img img { transform: scale(1.04); }
.is-card-img-ph { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.is-card-img-ph svg { opacity: .25; }

.is-badges { position: absolute; top: 10px; left: 10px; display: flex; flex-wrap: wrap; gap: 5px; z-index: 2; }
.is-badge { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; padding: 3px 8px; border-radius: 3px; font-weight: 500; }
.is-badge-compromis { background: #8A5A00; color: #fff; }
.is-badge-drop { background: var(--is-red); color: #fff; }
.is-badge-up   { background: #e07a3a; color: #fff; }
.is-badge-new  { background: var(--is-green); color: #fff; }
.is-badge-ext  { background: rgba(20,20,20,.78); color: #90C88A; border: 1px solid rgba(144,200,138,.3); backdrop-filter: blur(4px); }
.is-badge-pisc { background: rgba(20,20,20,.78); color: #7ABFDF; border: 1px solid rgba(122,191,223,.3); backdrop-filter: blur(4px); }
.is-badge-vue  { background: rgba(20,20,20,.78); color: var(--is-gold); border: 1px solid rgba(201,169,110,.3); backdrop-filter: blur(4px); }

.is-consultant { position: absolute; bottom: 10px; right: 10px; background: var(--is-gold); color: #1a1714; font-size: 10px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; padding: 3px 8px; border-radius: 3px; }

.is-card-body { padding: 14px 16px 16px; }
.is-titre { font-size: 14px; font-weight: 500; color: var(--is-dark); margin-bottom: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.is-lieu { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--is-grey); margin-bottom: 12px; }
.is-specs { display: flex; gap: 16px; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--is-cream); }
.is-spec-val { font-size: 18px; font-weight: 300; color: var(--is-dark); line-height: 1; }
.is-spec-key { font-size: 10px; text-transform: uppercase; letter-spacing: .12em; color: var(--is-grey); margin-top: 2px; }
.is-sep { width: 1px; background: var(--is-cream); }
.is-footer { display: flex; justify-content: space-between; align-items: flex-end; }
.is-prix { font-size: 22px; font-weight: 400; color: var(--is-dark); line-height: 1; }
.is-prix.is-drop { color: var(--is-red); }
.is-prix.is-up   { color: #e07a3a; }
.is-prix-prev { font-size: 12px; color: var(--is-grey); text-decoration: line-through; margin-top: 2px; }
.is-prix-m2 { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--is-grey); margin-top: 2px; }
.is-btn { background: transparent; color: var(--is-gold); border: 1px solid var(--is-gold); border-radius: 4px; padding: 7px 14px; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; transition: .25s; display: inline-block; }
.is-btn:hover { background: var(--is-gold); color: #1a1714; }

@media (max-width: 768px) {
  .immosud-search-row { grid-template-columns: 1fr 1fr; }
  .immosud-btns { flex-direction: column; }
  .immosud-hero-stats { gap: 12px; }
  .immosud-stat { min-width: 100px; padding: 12px 16px; }
  .immosud-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .immosud-search-row { grid-template-columns: 1fr; }
  .immosud-search-checks { gap: 12px; }
}
