/* Property Estate Embed v2.0 */
.pe-embed-container{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#111827}
.pe-embed-container *{box-sizing:border-box}

/* Loading */
.pe-loading{text-align:center;padding:40px 20px;color:#6b7280}
.pe-spinner{width:36px;height:36px;border:3px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:pe-spin .7s linear infinite;margin:0 auto 12px}
@keyframes pe-spin{to{transform:rotate(360deg)}}

/* Grid */
.pe-grid{display:grid;gap:20px}
.pe-grid.pe-cols-2{grid-template-columns:repeat(2,1fr)}
.pe-grid.pe-cols-3{grid-template-columns:repeat(3,1fr)}
.pe-grid.pe-cols-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1024px){.pe-grid.pe-cols-4{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.pe-grid.pe-cols-3,.pe-grid.pe-cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.pe-grid{grid-template-columns:1fr!important}}

/* Card styles */
.pe-card{overflow:hidden;background:#fff;transition:transform .2s,box-shadow .2s}
.pe-card:hover{transform:translateY(-4px)}
.pe-card--shadow{box-shadow:0 4px 20px rgba(0,0,0,.08)}
.pe-card--shadow:hover{box-shadow:0 12px 32px rgba(0,0,0,.12)}
.pe-card--border{border:1px solid #e5e7eb}
.pe-card--border:hover{border-color:#d1d5db}
.pe-card--flat{background:#f9fafb}
.pe-card--elevated{box-shadow:0 8px 30px rgba(0,0,0,.1)}
.pe-card--elevated:hover{box-shadow:0 16px 40px rgba(0,0,0,.15)}

.pe-card__image{width:100%;object-fit:cover;display:block}
.pe-card__image-placeholder{width:100%;background:#f3f4f6;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}
.pe-card__body{padding:16px 18px 20px}
.pe-card__price{font-size:20px;font-weight:700;margin-bottom:4px}
.pe-card__title{font-size:16px;font-weight:600;line-height:1.35;margin:0 0 6px;color:#111827}
.pe-card__location{font-size:13px;color:#6b7280;margin:0 0 10px}
.pe-card__meta{font-size:13px;color:#374151;margin-bottom:14px;display:flex;gap:12px;flex-wrap:wrap}
.pe-card__meta span{display:flex;align-items:center;gap:3px}

/* Buttons */
.pe-card__btn{display:inline-block;padding:10px 20px;color:#fff;text-decoration:none;font-size:13px;font-weight:600;transition:opacity .2s}
.pe-card__btn:hover{opacity:.9}
.pe-btn--rounded{border-radius:8px}
.pe-btn--pill{border-radius:999px}
.pe-btn--square{border-radius:0}
.pe-btn--outline{background:transparent!important;border:2px solid currentColor}

/* Search Bar */
.pe-search-bar{margin-bottom:24px;padding:20px;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}
.pe-search-bar--horizontal{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.pe-search-bar--stacked .pe-search-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.pe-search-field{flex:1;min-width:150px}
.pe-search-field label{display:block;font-size:12px;font-weight:600;color:#374151;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}
.pe-search-field input,.pe-search-field select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff;color:#111827;outline:none;transition:border-color .2s}
.pe-search-field input:focus,.pe-search-field select:focus{border-color:#2563eb}
.pe-search-btn{padding:10px 24px;border:none;color:#fff;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .2s}
.pe-search-btn:hover{opacity:.9}
.pe-search-reset{padding:10px 16px;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;font-size:14px;cursor:pointer;color:#374151}
.pe-search-reset:hover{background:#e5e7eb}
.pe-search-collapse{display:none;align-items:center;justify-content:center;gap:4px;padding:10px 12px;background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;height:42px;white-space:nowrap}
.pe-search-collapse:hover{background:#e5e7eb}
.pe-search-bar--expanded .pe-search-collapse{display:inline-flex}
@media(max-width:768px){
  /* Compact mobile property search: keyword + Search inline; advanced filters collapsed.
     The Search button doubles as a "Show filters" expander when collapsed. */
  .pe-search-bar{padding:10px!important;margin-bottom:14px!important}
  .pe-search-bar > div{flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important}
  .pe-search-bar .pe-search-fields{display:flex!important;flex-wrap:wrap!important;gap:8px!important;width:100%}
  .pe-search-field label{display:none!important}
  .pe-search-field{flex:1 1 100%!important;min-width:0!important;width:100%}
  /* Keyword field shares row with Search button */
  .pe-search-bar .pe-search-field--keyword{flex:1 1 60%!important;width:auto!important;order:1}
  /* All non-keyword fields collapsed by default */
  .pe-search-bar .pe-search-field--advanced{display:none!important;order:3}
  .pe-search-bar--expanded .pe-search-field--advanced{display:flex!important;flex-direction:column;flex:1 1 100%!important}
  .pe-search-bar .pe-search-btn{order:2;flex:0 0 auto;height:42px;padding:10px 18px;font-size:14px}
  .pe-search-bar .pe-search-reset{display:none!important;order:5;height:42px}
  .pe-search-bar--expanded .pe-search-reset{display:inline-block!important}
  .pe-search-bar .pe-search-collapse{order:4}
  .pe-search-bar input,.pe-search-bar select{font-size:16px!important}
  .pe-view-toggle{order:6;width:100%;justify-content:center}
}
@media(max-width:480px){
  .pe-search-bar--horizontal{flex-direction:row!important}
  .pe-search-bar .pe-search-field--keyword{flex:1 1 100%!important;order:1}
  .pe-search-bar .pe-search-btn{flex:1 1 auto!important}
}

/* Results info */
.pe-results-info{font-size:14px;color:#6b7280;margin-bottom:16px}
.pe-no-results{text-align:center;padding:40px;color:#6b7280;font-size:15px}

/* Font families */
.pe-font-inter{font-family:'Inter',sans-serif}
.pe-font-poppins{font-family:'Poppins',sans-serif}
.pe-font-roboto{font-family:'Roboto',sans-serif}
.pe-font-playfair{font-family:'Playfair Display',serif}
.pe-font-inherit{font-family:inherit}

/* Split-view (Map + Results side-by-side) */
.pe-split-wrap{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch;margin-top:12px}
.pe-split-wrap .pe-results-grid.pe-grid-pane{max-height:600px;overflow-y:auto;overflow-x:hidden;padding-right:6px}
.pe-split-wrap .pe-grid-pane .pe-grid{grid-template-columns:1fr !important}
.pe-split-wrap .pe-map-view{position:relative;height:600px;min-height:600px;border-radius:12px;overflow:hidden;border:1px solid #e5e7eb;background:#eef2f7;width:100%}
@media(max-width:900px){
  .pe-split-wrap{grid-template-columns:1fr}
  .pe-split-wrap .pe-results-grid.pe-grid-pane{max-height:none;overflow:visible;padding-right:0}
  .pe-split-wrap .pe-grid-pane .pe-grid{grid-template-columns:repeat(2,1fr) !important}
  .pe-split-wrap .pe-map-view{height:400px;min-height:400px;order:-1}
}
@media(max-width:600px){
  .pe-split-wrap .pe-grid-pane .pe-grid{grid-template-columns:1fr !important}
}
.pe-view-toggle .pe-view-btn{transition:background .15s,color .15s}

/* Hero search bar — ensure Search/Reset buttons stay visible when sticky and on mobile */
.pe-hero-search{box-sizing:border-box}
.pe-hero-search .pe-hero-search-actions{display:flex;gap:8px;flex:0 0 auto;align-items:flex-end}
.pe-hero-search .pe-hero-search-submit:hover{opacity:.92}
.pe-hero-search .pe-hero-search-reset:hover{background:#e5e7eb}
.pe-hero-search[data-pe-stuck="1"]{padding:10px 16px!important;border-radius:0!important}
.pe-hero-search[data-pe-stuck="1"] > div{max-width:1200px;margin:0 auto;align-items:flex-end}
@media(max-width:768px){
  .pe-hero-search > div{gap:8px!important}
  .pe-hero-search .pe-hero-search-actions{width:100%;flex:1 1 100%;justify-content:stretch;margin-top:4px}
  .pe-hero-search .pe-hero-search-submit{flex:1 1 auto}
  .pe-hero-search .pe-hero-search-reset{flex:0 0 auto}
  .pe-hero-search[data-pe-stuck="1"]{padding:10px 12px!important;max-height:60vh;overflow-y:auto}
  .pe-hero-search[data-pe-stuck="1"] > div{flex-wrap:wrap}
}

/* ─── Favorites (Save / heart) buttons ─── */
.pe-fav-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(0,0,0,0.08);background:rgba(255,255,255,0.95);color:#111827;font:600 13px/1 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:7px 12px 7px 10px;border-radius:999px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,0.08);transition:transform .15s,box-shadow .15s,background .15s,color .15s}
.pe-fav-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,0.12)}
.pe-fav-btn__icon{font-size:16px;line-height:1;color:#ef4444}
.pe-fav-btn.is-saved{background:#ef4444;color:#fff;border-color:#ef4444}
.pe-fav-btn.is-saved .pe-fav-btn__icon{color:#fff}
/* Card-positioned favorite button. Stays inside its card via the wrapper's
   stacking context (see .pe-card / inline position:relative). z-index is kept
   intentionally low (1) so it can never overlap sticky search bars (z:9990)
   or the navigation menu (z:9999) when scrolling. */
.pe-card{position:relative;z-index:0}
.pe-fav-btn--card{position:absolute;top:10px;right:10px;z-index:1}
.pe-fav-btn--detail{padding:9px 16px 9px 12px;font-size:14px}
.pe-fav-btn--detail .pe-fav-btn__icon{font-size:18px}

/* ─── Favorites page (rendered by [pe_favorites]) ─── */
.pe-favorites-page{max-width:1200px;margin:0 auto;padding:24px 16px}
.pe-favorites-page__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px}
.pe-favorites-page__title{font-size:26px;font-weight:800;margin:0;color:#111827}
.pe-favorites-page__count{font-size:14px;color:#6b7280}
.pe-favorites-page__clear{background:transparent;border:1px solid #e5e7eb;color:#6b7280;padding:7px 12px;border-radius:8px;font-size:13px;cursor:pointer}
.pe-favorites-page__clear:hover{background:#f3f4f6;color:#111827}
.pe-favorites-page__empty{background:#f9fafb;border:1px dashed #d1d5db;border-radius:14px;padding:40px 20px;text-align:center;color:#6b7280}
.pe-favorites-page__empty h3{margin:0 0 6px;color:#111827;font-size:18px}
.pe-favorites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:900px){.pe-favorites-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pe-favorites-grid{grid-template-columns:1fr}}

/* ─── Account block on favorites page ─── */
.pe-fav-account{margin-top:32px;padding:22px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid #e5e7eb;border-radius:16px}
.pe-fav-account__title{margin:0 0 6px;font-size:20px;font-weight:700;color:#111827}
.pe-fav-account__sub{margin:0 0 16px;color:#4b5563;font-size:14px}
.pe-fav-account__tabs{display:inline-flex;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:3px;margin-bottom:14px}
.pe-fav-account__tab{border:0;background:transparent;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;color:#6b7280;cursor:pointer}
.pe-fav-account__tab.is-active{background:#111827;color:#fff}
.pe-fav-account__form{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:560px}
.pe-fav-account__form .pe-fav-full{grid-column:1 / -1}
.pe-fav-account__form input{padding:11px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;background:#fff;color:#111827;width:100%;box-sizing:border-box}
.pe-fav-account__form input:focus{outline:2px solid rgba(37,99,235,0.3);outline-offset:0;border-color:#2563eb}
.pe-fav-account__submit{grid-column:1 / -1;background:#111827;color:#fff;border:0;padding:12px 18px;border-radius:8px;font-weight:700;font-size:14px;cursor:pointer}
.pe-fav-account__submit:hover{opacity:.92}
.pe-fav-account__msg{grid-column:1 / -1;font-size:13px;padding:8px 10px;border-radius:8px;display:none}
.pe-fav-account__msg.is-error{display:block;background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.pe-fav-account__msg.is-success{display:block;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}
.pe-fav-account__success{padding:18px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;color:#166534;font-size:14px}
