/* =============================================================================
   theme.css — UI Modernization design-system layer  (WP-U0-02)
   Evolutionary refresh of the brand blue (#3862C6). Loaded AFTER bootstrap.min.css.
   Override-only, render-lean (keep small — it blocks render like bootstrap).
   Target: Bootstrap 5.2.3 (component vars + rgb utility vars + link vars).
   ============================================================================= */

:root{
  /* --- Brand: revive & refine the blue --- */
  --bs-primary:#3862c6;
  --bs-primary-rgb:56,98,198;

  /* --- Links --- */
  --bs-link-color:#2b4fa0;
  --bs-link-color-rgb:43,79,160;
  --bs-link-hover-color:#1e3a7a;
  --bs-link-hover-color-rgb:30,58,122;

  /* --- Text neutrals (WCAG-AA on white) --- */
  --bs-body-color:#1f2430;
  --bs-body-color-rgb:31,36,48;

  /* --- Surfaces & borders --- */
  --bs-body-bg:#ffffff;
  --bs-border-color:#e4e8f0;
  --bs-border-color-translucent:rgba(16,24,40,.10);

  /* --- Shape --- */
  --bs-border-radius:.6rem;
  --bs-border-radius-sm:.4rem;
  --bs-border-radius-lg:.9rem;
  --bs-border-radius-xl:1.1rem;

  /* --- Elevation (own tokens) --- */
  --brand-elev-1:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.10);
  --brand-elev-2:0 6px 18px rgba(16,24,40,.10);

  /* --- Type --- */
  --bs-body-line-height:1.6;
}

/* ---- base polish ---- */
body{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a{ transition:color .15s ease; }
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{ font-weight:700; letter-spacing:-.01em; }

/* ---- primary buttons (5.2.3 --bs-btn-* component vars) ---- */
.btn{ --bs-btn-border-radius:var(--bs-border-radius); font-weight:600; }
.btn-primary{
  --bs-btn-bg:#3862c6; --bs-btn-border-color:#3862c6;
  --bs-btn-hover-bg:#2f56b3; --bs-btn-hover-border-color:#2f56b3;
  --bs-btn-active-bg:#264a9c; --bs-btn-active-border-color:#264a9c;
  --bs-btn-disabled-bg:#3862c6; --bs-btn-disabled-border-color:#3862c6;
}
.btn-outline-primary{
  --bs-btn-color:#3862c6; --bs-btn-border-color:#3862c6;
  --bs-btn-hover-bg:#3862c6; --bs-btn-hover-border-color:#3862c6;
  --bs-btn-active-bg:#3862c6; --bs-btn-active-border-color:#3862c6;
}

/* ---- cards: soft, modern ---- */
.card{
  --bs-card-border-color:var(--bs-border-color);
  --bs-card-border-radius:var(--bs-border-radius-lg);
  box-shadow:var(--brand-elev-1);
}

/* ---- form controls: brand focus ring ---- */
.form-control,.form-select{ border-color:var(--bs-border-color); }
.form-control:focus,.form-select:focus{
  border-color:#3862c6; box-shadow:0 0 0 .25rem rgba(56,98,198,.20);
}

/* ---- pagination (component vars; visible from WP-U1-04) ---- */
.pagination{
  --bs-pagination-color:#2b4fa0; --bs-pagination-hover-color:#1e3a7a;
  --bs-pagination-active-bg:#3862c6; --bs-pagination-active-border-color:#3862c6;
  --bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(56,98,198,.25);
  --bs-pagination-border-radius:var(--bs-border-radius);
}

/* ---- muted text: AA-compliant grey (also starts retiring the deferred contrast item) ---- */
.text-muted{ color:#5b6472 !important; }

/* ---- subtle section surface ---- */
.bg-light{ background-color:#f5f7fb !important; }

/* ---- icons (helper ships in WP-U0-03) ---- */
.bi{ width:1em; height:1em; vertical-align:-.125em; fill:currentColor; }

/* ====== property card (WP-U1-01) — one modern card for every property teaser surface ====== */
.property-card{
  display:flex; flex-direction:column; height:100%; overflow:hidden; background:#fff;
  border:1px solid var(--bs-border-color); border-radius:var(--bs-border-radius-lg);
  box-shadow:var(--brand-elev-1); transition:box-shadow .18s ease, transform .18s ease;
}
.property-card:hover{ box-shadow:var(--brand-elev-2); transform:translateY(-2px); }
.property-card__media{ display:block; position:relative; overflow:hidden; }
.property-card__media img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; height:auto; transition:transform .3s ease; }
.property-card:hover .property-card__media img{ transform:scale(1.03); }
.property-card__body{ display:flex; flex-direction:column; gap:.2rem; padding:.7rem .8rem .85rem; }
.property-card__price{ font-weight:700; font-size:1.05rem; color:var(--bs-primary); line-height:1.2; }
.property-card__title{
  font-weight:600; color:var(--bs-body-color); text-decoration:none; line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.property-card__title:hover{ color:var(--bs-primary); }
.property-card__meta{ font-size:.85rem; color:#5b6472; display:flex; align-items:flex-start; gap:.3rem; }
.property-card__meta .bi{ flex:0 0 auto; margin-top:.15rem; opacity:.75; }
/* grid gap helper for a row of property cards */
.property-grid{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); }

/* ---- legacy-table migration shim (temporary — removed as each page-type WP rebuilds) ----
   Keeps 2007-era table content from looking cramped until its WP modernizes it. Deliberately
   minimal: brand links/buttons already cascade globally above. */
.container table td, .container table th{ vertical-align:middle; }
