/*
Theme Name: Houzez Child
Theme URI: https://primeland-realestate.com/
Author: Prime Land Real Estate & General Maintenance LLC
Description: Prime Land design layer for Houzez. All customisation lives here so the parent theme stays updatable.
Template: houzez
Version: 1.0.0
Text Domain: houzez-child
*/

/* =========================================================
   Prime Land design system — tokens
   ========================================================= */
:root{
  --pl-navy:#071D49;
  --pl-navy-deep:#041130;
  --pl-navy-lift:#0A2A63;
  --pl-gold:#C8A14B;
  --pl-gold-lt:#E2BE74;
  --pl-gold-dk:#A8853C;
  --pl-gold-pale:#E6C987;
  --pl-ink:#1A2233;
  --pl-body:#3A4358;
  --pl-muted:#5C6472;
  --pl-faint:#8B93A3;
  --pl-cream:#FAF9F6;
  --pl-sand:#F2EEE4;
  --pl-line:rgba(7,29,73,.09);
  --pl-r-sm:10px;
  --pl-r:14px;
  --pl-r-lg:18px;
  --pl-r-xl:20px;
  --pl-shadow:0 10px 30px rgba(7,29,73,.07);
  --pl-shadow-lift:0 22px 48px rgba(7,29,73,.16);
  --pl-ease:cubic-bezier(.22,.75,.3,1);
  --pl-head:'Manrope',system-ui,sans-serif;
  --pl-text:'Inter',system-ui,sans-serif;
}

/* =========================================================
   Typography
   ========================================================= */
body,
.houzez-body{
  font-family:var(--pl-text);
  color:var(--pl-body);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6,
.h1,.h2,.h3,.h4,.h5,.h6{
  font-family:var(--pl-head);
  font-weight:800;
  color:var(--pl-navy);
  letter-spacing:-.4px;
  text-wrap:pretty;
}
h1,.h1{line-height:1.08}
h2,.h2{line-height:1.15}
a{color:var(--pl-navy);transition:color .2s}
a:hover,a:focus{color:var(--pl-gold)}

/* Gold gradient accent for headline fragments */
.pl-grad{
  background:linear-gradient(120deg,#eed9a4,var(--pl-gold));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* Uppercase eyebrow label */
.pl-eyebrow,
.pl-eyebrow .elementor-heading-title{
  font-family:var(--pl-head);
  font-weight:600;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--pl-gold);
  line-height:1;
}

/* =========================================================
   Buttons — Houzez + Elementor + WooCommerce
   ========================================================= */
.btn,
.houzez-btn,
.elementor-button,
.button,
input[type=submit],
button[type=submit]{
  font-family:var(--pl-head);
  font-weight:700;
  border-radius:12px;
  transition:transform .22s,box-shadow .25s,background .25s,color .25s;
}
.btn:hover,
.houzez-btn:hover,
.elementor-button:hover,
.button:hover{transform:translateY(-2px)}

.btn-primary,
.houzez-btn-primary,
.btn-secondary-color,
.btn-primary-color{
  background:linear-gradient(120deg,var(--pl-gold-lt),var(--pl-gold) 60%,var(--pl-gold-dk));
  border-color:transparent;
  color:#0A1330;
  box-shadow:0 10px 30px rgba(200,161,75,.35);
}
.btn-primary:hover,
.houzez-btn-primary:hover,
.btn-primary-color:hover{
  background:linear-gradient(120deg,var(--pl-gold),var(--pl-gold-dk));
  color:#0A1330;
  box-shadow:0 16px 38px rgba(200,161,75,.5);
}
.btn-outline,
.btn-outline-primary{
  border:1px solid var(--pl-navy);
  color:var(--pl-navy);
  background:transparent;
}
.btn-outline:hover,
.btn-outline-primary:hover{
  background:var(--pl-navy);
  color:#fff;
}

/* =========================================================
   Forms
   ========================================================= */
.form-control,
.houzez-form input,
.houzez-form select,
.houzez-form textarea,
input[type=text],
input[type=email],
input[type=tel],
input[type=search],
input[type=number],
select,
textarea{
  font-family:var(--pl-text);
  font-size:14px;
  color:var(--pl-ink);
  border:1px solid rgba(7,29,73,.16);
  border-radius:var(--pl-r-sm);
  transition:border-color .2s,box-shadow .2s;
}
.form-control:focus,
input:focus,
select:focus,
textarea:focus{
  border-color:var(--pl-gold);
  box-shadow:0 0 0 3px rgba(200,161,75,.16);
  outline:none;
}
label{
  font-family:var(--pl-head);
  font-weight:600;
  font-size:12px;
  color:var(--pl-navy);
  letter-spacing:.04em;
}

/* =========================================================
   Cards — generic surface used across Houzez modules
   ========================================================= */
.card,
.panel,
.houzez-card,
.dashboard-content-block-wrap{
  background:#fff;
  border:1px solid var(--pl-line);
  border-radius:var(--pl-r);
  box-shadow:var(--pl-shadow);
}

/* =========================================================
   Property listing cards
   ========================================================= */
.property-item,
.item-listing-wrap,
.listing-v1,
.listing-v2,
.listing-v3,
.listing-v4,
.listing-v5{
  border-radius:var(--pl-r);
  overflow:hidden;
  border:1px solid var(--pl-line);
  box-shadow:var(--pl-shadow);
  transition:transform .25s,box-shadow .25s;
}
.property-item:hover,
.item-listing-wrap:hover{
  transform:translateY(-5px);
  box-shadow:var(--pl-shadow-lift);
}
.item-thumb,
.property-thumb{overflow:hidden}
.item-thumb img,
.property-thumb img{
  transition:transform .6s var(--pl-ease);
  display:block;
  width:100%;
}
.property-item:hover .item-thumb img,
.item-listing-wrap:hover .item-thumb img{transform:scale(1.06)}

.item-title,
.item-title a,
.property-title,
.property-title a{
  font-family:var(--pl-head);
  font-weight:700;
  font-size:16.5px;
  line-height:1.35;
  color:var(--pl-navy);
}
.item-title a:hover,
.property-title a:hover{color:var(--pl-gold)}

.item-address,
.property-address{
  font-size:12.5px;
  color:var(--pl-muted);
}
.item-price,
.property-price,
.item-price-wrap{
  font-family:var(--pl-head);
  font-weight:800;
  color:var(--pl-navy);
}
.item-amenities li,
.property-amenities li{
  font-size:12.5px;
  color:var(--pl-muted);
}

/* Status / label pills */
.label-status,
.property-label,
.labels-property span,
.item-label{
  font-family:var(--pl-head);
  font-weight:700;
  font-size:10.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  border-radius:100px;
  padding:6px 13px;
  background:rgba(4,17,48,.72);
  color:#fff;
  backdrop-filter:blur(8px);
}
.label-featured,
.item-label.featured{
  background:linear-gradient(120deg,var(--pl-gold-lt),var(--pl-gold));
  color:#0A1330;
}

/* =========================================================
   Search form
   ========================================================= */
.search-form-wrap,
.advanced-search,
.houzez-search-form{
  border-radius:var(--pl-r-lg);
}
.search-form-wrap.pl-glass{
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 24px 60px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08);
}
.search-form-wrap.pl-glass .form-control{
  background:transparent;
  border:0;
  color:#fff;
}
.search-form-wrap.pl-glass label{color:var(--pl-gold)}

/* =========================================================
   Header / footer chrome
   ========================================================= */
.header-v1,.header-v2,.header-v3,.header-v4,
.main-header{background:#fff}
.navbar-nav > li > a,
.main-nav > li > a{
  font-family:var(--pl-head);
  font-weight:600;
  font-size:13.5px;
  color:var(--pl-navy);
}
.navbar-nav > li > a:hover,
.main-nav > li > a:hover{color:var(--pl-gold)}
.top-bar,
.header-top{
  background:var(--pl-navy-deep);
  color:rgba(255,255,255,.72);
  font-size:12px;
}
.top-bar a,.header-top a{color:rgba(255,255,255,.72)}
.top-bar a:hover,.header-top a:hover{color:var(--pl-gold-pale)}

.footer-wrap,
.main-footer{
  background:var(--pl-navy-deep);
  color:rgba(255,255,255,.65);
}
.footer-wrap a,.main-footer a{color:rgba(255,255,255,.65)}
.footer-wrap a:hover,.main-footer a:hover{color:#fff}
.footer-wrap h4,
.main-footer h4,
.footer-wrap .widget-title,
.main-footer .widget-title{
  font-family:var(--pl-head);
  font-weight:700;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#fff;
}

/* =========================================================
   Single property page
   ========================================================= */
.property-detail-wrap h1{font-size:clamp(26px,3vw,38px)}
.property-overview-wrap,
.block-wrap,
.property-section-wrap{
  background:#fff;
  border:1px solid var(--pl-line);
  border-radius:var(--pl-r-lg);
  box-shadow:var(--pl-shadow);
}
.block-title-wrap h2,
.block-wrap h2{
  font-size:20px;
  font-weight:800;
}
.detail-title,
.property-detail-title{font-family:var(--pl-head)}

/* =========================================================
   Pagination
   ========================================================= */
.pagination > li > a,
.pagination > li > span,
.page-numbers{
  font-family:var(--pl-head);
  font-weight:600;
  font-size:13px;
  border-radius:var(--pl-r-sm);
  border:1px solid rgba(7,29,73,.15);
  color:var(--pl-navy);
  transition:transform .2s,border-color .2s;
}
.pagination > li > a:hover,
.page-numbers:hover{transform:translateY(-2px);border-color:var(--pl-gold)}
.pagination > .active > span,
.page-numbers.current{
  background:var(--pl-navy);
  border-color:var(--pl-navy);
  color:#fff;
}

/* =========================================================
   Reduced motion
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* =========================================================
   Houzez modules — Prime Land treatment
   ========================================================= */

/* ---------- advanced search inside our navy panel ---------- */
.pl-hzsearch .advanced-search,
.pl-hzsearch .advanced-search-v1,
.pl-hzsearch .search-wrap,
.pl-hzsearch .advanced-search-nav{
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  padding:0 !important;
}
.pl-hzsearch .form-control,
.pl-hzsearch .houzez-select,
.pl-hzsearch select,
.pl-hzsearch input[type=text],
.pl-hzsearch input[type=search],
.pl-hzsearch .bootstrap-select > .dropdown-toggle{
  background:rgba(255,255,255,.07) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:10px !important;
  color:#fff !important;
  font-family:var(--pl-text);
  font-size:14px;
  min-height:46px;
  box-shadow:none !important;
}
.pl-hzsearch .form-control::placeholder{color:rgba(255,255,255,.5) !important}
.pl-hzsearch .form-control:focus,
.pl-hzsearch select:focus{
  border-color:var(--pl-gold) !important;
  box-shadow:0 0 0 3px rgba(200,161,75,.18) !important;
}
.pl-hzsearch label,
.pl-hzsearch .control-label{
  color:var(--pl-gold) !important;
  font-family:var(--pl-head);
  font-weight:600;
  font-size:10.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.pl-hzsearch .btn-primary,
.pl-hzsearch button[type=submit],
.pl-hzsearch .search-submit{
  background:linear-gradient(120deg,var(--pl-gold-lt),var(--pl-gold) 60%,var(--pl-gold-dk)) !important;
  border:0 !important;
  color:#0A1330 !important;
  font-family:var(--pl-head);
  font-weight:700;
  border-radius:12px !important;
  min-height:46px;
  padding:0 30px;
  box-shadow:0 10px 30px rgba(200,161,75,.35);
}
.pl-hzsearch .advanced-search-btn,
.pl-hzsearch .search-advanced-toggle,
.pl-hzsearch a{color:var(--pl-gold-pale) !important}
.pl-hzsearch .dropdown-menu{
  border-radius:12px;
  border:1px solid var(--pl-line);
  box-shadow:0 18px 44px rgba(4,17,48,.28);
}

/* ---------- property cards module ---------- */
.pl-hzgrid .property-cards-module,
.property-cards-module-v1{margin:0}
.pl-hzgrid .card,
.property-cards-module .card,
.item-wrap{
  border-radius:var(--pl-r) !important;
  border:1px solid var(--pl-line) !important;
  box-shadow:var(--pl-shadow) !important;
  overflow:hidden;
  transition:transform .25s var(--pl-ease),box-shadow .25s;
}
.pl-hzgrid .card:hover,
.property-cards-module .card:hover,
.item-wrap:hover{
  transform:translateY(-5px);
  box-shadow:var(--pl-shadow-lift) !important;
}
.pl-hzgrid .item-header h2,
.pl-hzgrid .item-title,
.item-header .item-title a{
  font-family:var(--pl-head) !important;
  font-weight:700 !important;
  font-size:16.5px !important;
  line-height:1.35 !important;
  color:var(--pl-navy) !important;
}
.pl-hzgrid .item-header .item-title a:hover{color:var(--pl-gold) !important}
.pl-hzgrid .item-price,
.item-price-wrap .item-price{
  font-family:var(--pl-head) !important;
  font-weight:800 !important;
  color:var(--pl-navy) !important;
  font-size:17px !important;
}
.pl-hzgrid .item-price-per,
.item-price-per{font-size:12px;color:var(--pl-muted);font-weight:500}
.pl-hzgrid .item-address,
.item-address a{font-size:12.5px !important;color:var(--pl-muted) !important}
.pl-hzgrid .item-amenities li,
.item-amenities li{font-size:12.5px;color:var(--pl-muted)}
.pl-hzgrid .item-amenities li i,
.item-amenities li i{color:var(--pl-gold)}

/* thumbnail zoom */
.pl-hzgrid .item-thumb a,
.item-thumb{overflow:hidden;display:block}
.pl-hzgrid .item-thumb img{transition:transform .6s var(--pl-ease)}
.pl-hzgrid .card:hover .item-thumb img{transform:scale(1.06)}

/* labels */
.pl-hzgrid .label-status,
.pl-hzgrid .hz-label,
.label-status{
  font-family:var(--pl-head) !important;
  font-weight:700 !important;
  font-size:10.5px !important;
  letter-spacing:.1em;
  text-transform:uppercase;
  border-radius:100px !important;
  padding:6px 13px !important;
  background:rgba(4,17,48,.74) !important;
  color:#fff !important;
  backdrop-filter:blur(8px);
}
.pl-hzgrid .label-featured,
.label-featured{
  background:linear-gradient(120deg,var(--pl-gold-lt),var(--pl-gold)) !important;
  color:#0A1330 !important;
}

/* action icons (favourite / compare) */
.item-tools a,
.houzez-favorite,
.houzez-compare{
  border-radius:50% !important;
  background:rgba(255,255,255,.92) !important;
  color:var(--pl-navy) !important;
  transition:background .2s,color .2s,transform .2s;
}
.item-tools a:hover,
.houzez-favorite:hover,
.houzez-compare:hover{
  background:var(--pl-gold) !important;
  color:#0A1330 !important;
  transform:translateY(-2px);
}

/* pagination inside shortcode grids */
.pl-hzgrid .pagination{justify-content:center;gap:6px;margin-top:34px}
.pl-hzgrid .pagination .page-link{
  border-radius:var(--pl-r-sm);
  border:1px solid rgba(7,29,73,.15);
  color:var(--pl-navy);
  font-family:var(--pl-head);
  font-weight:600;
  font-size:13px;
  min-width:40px;
  text-align:center;
}
.pl-hzgrid .pagination .active .page-link{
  background:var(--pl-navy);
  border-color:var(--pl-navy);
  color:#fff;
}

/* ---------- single property ---------- */
.property-title-wrap h1{font-family:var(--pl-head);font-weight:800}
.property-price-wrap .item-price{
  font-family:var(--pl-head);
  font-weight:800;
  color:var(--pl-navy);
}
.property-overview-wrap,
.property-section-wrap,
.block-wrap{
  border-radius:var(--pl-r-lg) !important;
  border:1px solid var(--pl-line) !important;
  box-shadow:var(--pl-shadow) !important;
}
.block-title-wrap h2,
.block-wrap h2,
.block-wrap h3{font-family:var(--pl-head);font-weight:800;color:var(--pl-navy)}
.property-detail-wrap .nav-tabs .nav-link.active{
  color:var(--pl-gold);
  border-bottom-color:var(--pl-gold);
}

/* ---------- breadcrumb ---------- */
.breadcrumb-wrap,
.page-title-wrap{background:var(--pl-cream)}
.breadcrumb a{color:var(--pl-muted)}
.breadcrumb .active{color:var(--pl-navy)}

/* ---------- responsive guards ---------- */
@media (max-width:767px){
  .pl-hzsearch{padding:20px 18px 22px !important}
  .pl-hzsearch .form-control,
  .pl-hzsearch select{min-height:44px}
}
/* =========================================================
   Prime Land header / top bar / floating rail / footer
   ========================================================= */

/* ---------- top bar ---------- */
.pl-topbar .elementor-icon-list-item a,
.pl-topbar .elementor-icon-list-text{color:rgba(255,255,255,.72) !important;font-size:12px}
.pl-topbar .elementor-icon-list-item a:hover .elementor-icon-list-text{color:#fff !important}
.pl-topbar .elementor-icon-list-icon i{color:var(--pl-gold) !important}
.pl-topbar .pl-tbright .elementor-heading-title{
  font-family:var(--pl-head);font-weight:600;font-size:11.5px;
  letter-spacing:.04em;color:var(--pl-gold-pale) !important;
}
.pl-topbar .pl-tbright .elementor-heading-title a{color:var(--pl-gold-pale) !important}

/* ---------- header ---------- */
.pl-header{
  box-shadow:0 1px 0 rgba(7,29,73,.08);
  transition:box-shadow .25s,padding .25s;
}
.pl-header .elementor-nav-menu .elementor-item{
  font-family:var(--pl-head) !important;
  font-weight:600 !important;
  font-size:13.5px !important;
  letter-spacing:.01em;
}
.pl-header .elementor-nav-menu--dropdown .elementor-item{font-size:13px !important}
.pl-hcta .elementor-button{white-space:nowrap}
.pl-hlogo img{max-height:46px;width:auto;object-fit:contain}

/* sticky behaviour */
.elementor-sticky--effects .pl-header{padding-top:10px !important;padding-bottom:10px !important;box-shadow:0 8px 28px rgba(7,29,73,.12)}

/* ---------- floating social rail ---------- */
.pl-float{
  position:fixed;
  right:0;
  top:50%;
  transform:translateY(-50%);
  z-index:9990;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px 8px;
  border-radius:16px 0 0 16px;
  background:rgba(4,17,48,.78);
  backdrop-filter:blur(14px);
  border:1px solid rgba(200,161,75,.28);
  border-right:0;
  box-shadow:-8px 0 30px rgba(4,17,48,.28);
}
.pl-fi{
  width:40px;
  height:40px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  color:#fff;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1);
  font-size:15px;
  text-decoration:none;
  overflow:hidden;
  white-space:nowrap;
  transition:background .25s,color .25s,width .3s var(--pl-ease),transform .25s;
}
.pl-fi span{
  max-width:0;
  opacity:0;
  font-family:var(--pl-head);
  font-weight:700;
  font-size:12.5px;
  transition:max-width .3s var(--pl-ease),opacity .2s,margin-left .3s;
}
.pl-fi:hover{
  width:142px;
  background:linear-gradient(120deg,var(--pl-gold-lt),var(--pl-gold));
  color:#0A1330;
  transform:translateX(-4px);
}
.pl-fi:hover span{max-width:100px;opacity:1;margin-left:9px}
.pl-fi.pl-wa{background:rgba(37,211,102,.16);border-color:rgba(37,211,102,.34)}
.pl-fi.pl-wa:hover{background:#25D366;color:#04240f}

@media (max-width:767px){
  .pl-float{
    top:auto;
    bottom:0;
    right:0;
    left:0;
    transform:none;
    flex-direction:row;
    justify-content:space-around;
    border-radius:16px 16px 0 0;
    border-right:1px solid rgba(200,161,75,.28);
    border-bottom:0;
    padding:8px 10px;
    box-shadow:0 -8px 28px rgba(4,17,48,.3);
  }
  .pl-fi{width:46px;height:42px}
  .pl-fi:hover{width:46px;transform:none}
  .pl-fi:hover span{max-width:0;opacity:0;margin-left:0}
  body{padding-bottom:58px}
}

/* ---------- footer ---------- */
.pl-footer{position:relative;overflow:hidden}
.pl-footer::before{
  content:'';
  position:absolute;
  width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,161,75,.14),transparent 66%);
  top:-300px;right:-160px;pointer-events:none;
}
.pl-footer > .e-con-inner{position:relative;z-index:2}
.pl-fgrid{display:grid !important;grid-template-columns:1.5fr 1fr 1fr 1.25fr}
.pl-fgrid > .e-con,.pl-fgrid > .elementor-element{width:auto !important;min-width:0 !important;max-width:none !important}
.pl-fhead .elementor-heading-title{
  font-family:var(--pl-head);font-weight:700;font-size:13px;
  letter-spacing:.08em;text-transform:uppercase;color:#fff !important;
}
.pl-fabout .elementor-widget-container{
  font-family:var(--pl-text);font-size:13px;line-height:1.75;
  color:rgba(255,255,255,.6);max-width:320px;
}
.pl-flist .elementor-icon-list-text{color:rgba(255,255,255,.65) !important;font-size:13px}
.pl-flist .elementor-icon-list-item:hover .elementor-icon-list-text{color:#fff !important}
.pl-flist .elementor-icon-list-icon i{color:var(--pl-gold) !important}
.pl-fsmall .elementor-heading-title{
  font-family:var(--pl-text);font-size:12px;font-weight:400;
  color:rgba(255,255,255,.5) !important;letter-spacing:0;
}
@media (max-width:980px){.pl-fgrid{grid-template-columns:1fr 1fr !important;gap:34px !important}}
@media (max-width:600px){.pl-fgrid{grid-template-columns:1fr !important}}

/* hide Houzez's own chrome when our templates are in play */
body.elementor-page .main-footer,
body .houzez-footer-default{display:none}
/* ---- neutralise Houzez stock accents that live in its static stylesheet ---- */
.btn-primary-color,.btn-primary-color:hover,
.houzez-btn-primary,.label-primary,
.nav-tabs .nav-link.active,
.page-link:hover,.page-item.active .page-link{
  background-color:var(--pl-gold) !important;
  border-color:var(--pl-gold) !important;
  color:#0A1330 !important;
}
.page-item.active .page-link{background-color:var(--pl-navy) !important;border-color:var(--pl-navy) !important;color:#fff !important}
a.text-primary,.text-primary,.color-primary,
.item-amenities i,.property-item i.houzez-icon{color:var(--pl-gold) !important}
.border-primary{border-color:var(--pl-gold) !important}
.btn-secondary-color{background-color:var(--pl-navy) !important;border-color:var(--pl-navy) !important;color:#fff !important}
.form-check-input:checked{background-color:var(--pl-gold);border-color:var(--pl-gold)}
.spinner-border,.loader{border-top-color:var(--pl-gold) !important}
/* =========================================================
   HOMEPAGE REPAIR — loaded last, wins over Houzez + Elementor
   ========================================================= */

/* ---------- 1. reveals must never leave content invisible ----------
   Scroll-timeline animations were computing to their start state
   (opacity 0) in some browsers. Default is now visible; JS opts in. */
.pl-rv,.pl-rvl,.pl-rvr,.pl-rvz,
.pl-head .elementor-heading-title,
.pl-eyebrow .elementor-heading-title{
  animation:none !important;
  animation-timeline:auto !important;
  opacity:1 !important;
  transform:none !important;
  clip-path:none !important;
}
.pl-anim.pl-rv,.pl-anim.pl-rvl,.pl-anim.pl-rvr,.pl-anim.pl-rvz{
  opacity:0 !important;
  transition:opacity .7s var(--pl-ease),transform .7s var(--pl-ease);
}
.pl-anim.pl-rv{transform:translateY(24px) !important}
.pl-anim.pl-rvl{transform:translateX(-28px) !important}
.pl-anim.pl-rvr{transform:translateX(28px) !important}
.pl-anim.pl-rvz{transform:scale(.96) !important}
.pl-anim.pl-inview{opacity:1 !important;transform:none !important}
@media (prefers-reduced-motion:reduce){
  .pl-anim.pl-rv,.pl-anim.pl-rvl,.pl-anim.pl-rvr,.pl-anim.pl-rvz{opacity:1 !important;transform:none !important}
}

/* ---------- 2. hero: stop the content clipping / shifting ---------- */
.plh-el{padding:0 !important}
.plh-el > .e-con-inner{
  max-width:1280px !important;
  margin-inline:auto !important;
  padding:70px 24px 60px !important;
  box-sizing:border-box;
}
.plh-slot{
  position:relative;
  height:auto !important;
  min-height:300px;
  width:100%;
  max-width:940px;
}
.plh-slot > .e-con{
  position:absolute;
  inset:0 auto 0 0;
  width:100%;
  padding:0 !important;
}
.plh-slot > .e-con:not(.on){opacity:0;visibility:hidden;pointer-events:none}
.plh-slot > .e-con.on{opacity:1;visibility:visible;position:relative}
.plh-h1 .elementor-heading-title{margin-top:14px}
.plh-subw .elementor-widget-container{max-width:620px}
.plh-nav{margin:14px 0 18px !important}
.plh-searchw,.plh-searchw .elementor-widget-container{width:100%;max-width:900px}
@media (max-width:1024px){
  .plh-el > .e-con-inner{padding:48px 20px 44px !important}
  .plh-slot{min-height:0}
  .plh-slot > .e-con{position:relative;display:none}
  .plh-slot > .e-con.on{display:block}
}
@media (max-width:767px){
  .plh-el > .e-con-inner{padding:34px 16px 34px !important}
  .plh-h1 .elementor-heading-title{font-size:27px !important;line-height:1.16 !important}
}

/* ---------- 3. marquee: was clipped vertically ---------- */
.pl-mq{padding:22px 0 !important;overflow:hidden}
.pl-mq .elementor-widget-container{overflow:hidden;padding:6px 0}
.pl-mqtrack{align-items:center;line-height:1.25}
.pl-mqi{
  font-size:clamp(24px,3.2vw,44px);
  line-height:1.3;
  padding:4px 0;
  display:inline-block;
}

/* ---------- 4. category tiles: equal, landscape images ---------- */
.pl-g4{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.pl-g4 > .e-con,.pl-g4 > .elementor-element{width:auto !important;min-width:0 !important;max-width:none !important}
.pl-tile{display:flex;flex-direction:column;height:100%}
.pl-tile .elementor-widget-image,
.pl-tile .elementor-widget-image .elementor-widget-container{line-height:0;overflow:hidden}
.pl-tile .elementor-widget-image img{
  width:100% !important;
  height:172px !important;
  object-fit:cover !important;
  display:block;
}
.pl-tile .pl-tbody{margin-top:auto}
@media (max-width:900px){.pl-g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.pl-g4{grid-template-columns:1fr}}

/* ---------- 5. Houzez property cards: real 3-column grid ----------
   Houzez emits Bootstrap 4's .card-deck, removed in Bootstrap 5.3,
   so the cards were stacking full width. */
.property-cards-module .card-deck,
.property-cards-module-3-cols .card-deck,
.pl-hzgrid .card-deck{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  margin:0 !important;
}
.property-cards-module .card-deck > .card,
.pl-hzgrid .card-deck > .card{
  flex:none !important;
  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
  display:flex;
  flex-direction:column;
}
.pl-hzgrid .card .item-thumb,
.property-cards-module .card .item-thumb{
  height:228px;
  overflow:hidden;
  position:relative;
}
.pl-hzgrid .card .item-thumb img,
.property-cards-module .card .item-thumb img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
.pl-hzgrid .card .item-body,
.property-cards-module .card .item-body{flex:1 1 auto}
@media (max-width:980px){
  .property-cards-module .card-deck,
  .pl-hzgrid .card-deck{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .property-cards-module .card-deck,
  .pl-hzgrid .card-deck{grid-template-columns:1fr}
  .pl-hzgrid .card .item-thumb{height:210px}
}

/* ---------- 6. CTA strips: force the navy gradient + readable text ---------- */
.pl-cta{
  background-image:linear-gradient(120deg,#0A2A63 0%,#071D49 100%) !important;
  background-color:#071D49 !important;
  border:1px solid rgba(200,161,75,.35) !important;
  border-radius:18px !important;
  padding:36px 38px !important;
}
.pl-cta .elementor-heading-title,
.pl-cta h1,.pl-cta h2,.pl-cta h3,.pl-cta h4{color:#fff !important}
.pl-cta .pl-eyebrow .elementor-heading-title{color:var(--pl-gold-pale) !important}
.pl-cta .elementor-widget-text-editor,
.pl-cta .elementor-widget-text-editor p{color:rgba(255,255,255,.75) !important}
.pl-cta > .e-con,.pl-cta > .elementor-element{min-width:0 !important}
@media (max-width:900px){
  .pl-cta{grid-template-columns:1fr !important;padding:28px 22px !important}
  .pl-cta .elementor-widget-button{width:100%}
  .pl-cta .elementor-button{width:100%}
}

/* ---------- 7. sand band: keep the tint that was washing out ---------- */
.pl-band{background-image:linear-gradient(180deg,#F2EEE4 0%,#FAF9F6 100%) !important}
.pl-band-dk{background-image:linear-gradient(180deg,#071D49 0%,#041130 100%) !important}
.pl-band-dk .elementor-heading-title{color:#fff}
.pl-band-dk .pl-eyebrow .elementor-heading-title{color:var(--pl-gold-pale) !important}

/* ---------- 8. image/text split rows ---------- */
.pl-row2{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:52px;align-items:center}
.pl-row2 > .e-con,.pl-row2 > .elementor-element{width:auto !important;min-width:0 !important;max-width:none !important}
.pl-zoom .elementor-widget-container{overflow:hidden;border-radius:20px;line-height:0}
.pl-zoom img{width:100% !important;height:auto !important;display:block}
@media (max-width:900px){.pl-row2{grid-template-columns:1fr !important;gap:30px}}

/* ---------- 9. FAQ split ---------- */
.pl-faqsplit{display:grid !important;grid-template-columns:.85fr 1.15fr;gap:52px;align-items:start}
.pl-faqsplit > .e-con,.pl-faqsplit > .elementor-element{width:auto !important;min-width:0 !important;max-width:none !important}
@media (max-width:900px){.pl-faqsplit{grid-template-columns:1fr !important;gap:26px}}

/* ---------- 10. section header row ---------- */
.pl-shead{display:grid !important;grid-template-columns:1fr auto;align-items:end;gap:24px}
.pl-shead > .e-con,.pl-shead > .elementor-element{width:auto !important;min-width:0 !important;max-width:none !important}
@media (max-width:640px){.pl-shead{grid-template-columns:1fr !important}}

/* ---------- 11. hero stat row ---------- */
.pl-hstats.pl-g4{gap:28px}
.pl-stats-dark .elementor-counter-number-wrapper{justify-content:flex-start}
/* =========================================================
   HEADER LAYOUT FIX — stop the CTA column overflowing
   ========================================================= */
.pl-header{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center;
  gap:18px;
  overflow:visible;
}
.pl-header > .e-con-inner{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center;
  gap:18px;
  width:100%;
  max-width:1280px;
  margin-inline:auto;
}
/* logo: natural width, never grows */
.pl-hlogo{
  flex:0 0 auto !important;
  width:auto !important;
  max-width:200px !important;
  min-width:0 !important;
  padding:0 !important;
}
.pl-hlogo img{max-height:46px;width:auto}
/* nav: takes the slack, centred, may shrink */
.pl-hnav{
  flex:1 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  padding:0 !important;
  justify-content:center;
}
.pl-hnav .elementor-nav-menu--main{justify-content:center}
.pl-hnav .elementor-nav-menu > li > a.elementor-item{
  padding-left:11px !important;
  padding-right:11px !important;
  white-space:nowrap;
}
/* CTA: natural width, never shrinks, never wraps */
.pl-hcta{
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  padding:0 !important;
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:flex-end;
  gap:10px;
}
.pl-hcta .elementor-widget-button{width:auto !important;flex:0 0 auto}
.pl-hcta .elementor-button{
  white-space:nowrap;
  padding:12px 20px !important;
  font-size:12.5px !important;
}

/* tighten progressively rather than overflowing */
@media (max-width:1400px){
  .pl-hnav .elementor-nav-menu > li > a.elementor-item{padding-left:8px !important;padding-right:8px !important;font-size:13px !important}
  .pl-hcta .elementor-button{padding:11px 16px !important;font-size:12px !important}
}
@media (max-width:1180px){
  /* drop the secondary button before anything can overflow */
  .pl-hcta .elementor-widget-button:first-child{display:none}
}
@media (max-width:1024px){
  .pl-hnav{flex:0 0 auto !important;order:3}
  .pl-hnav .elementor-nav-menu--main{display:none}
  .pl-hnav .elementor-menu-toggle{display:flex}
  .pl-header > .e-con-inner{justify-content:space-between}
  .pl-hcta{order:2}
  .pl-hcta .elementor-widget-button:first-child{display:block}
}
@media (max-width:640px){
  .pl-hcta .elementor-widget-button:first-child{display:none}
  .pl-hlogo{max-width:150px !important}
  .pl-hcta .elementor-button{padding:10px 15px !important;font-size:11.5px !important}
}
@media (max-width:420px){
  .pl-hcta{display:none !important}
}

/* top bar must not overflow either */
.pl-topbar > .e-con-inner{
  display:flex !important;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 18px;
}
.pl-tbleft,.pl-tbright{flex:0 1 auto !important;width:auto !important;min-width:0 !important;padding:0 !important}
@media (max-width:900px){
  .pl-tbleft .elementor-icon-list-item:first-child{display:none}
}
@media (max-width:767px){
  .pl-topbar > .e-con-inner{justify-content:center;text-align:center}
  .pl-tbleft .elementor-icon-list-items{justify-content:center}
}
/* =========================================================
   FOOTER — match the approved design
   ========================================================= */
.pl-footer{position:relative;overflow:hidden;background:linear-gradient(165deg,#071D49,#041130) !important}
.pl-footer::before{
  content:'';position:absolute;width:620px;height:620px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,161,75,.14),transparent 66%);
  top:-330px;right:-170px;pointer-events:none;z-index:0;
}
.pl-footer > .e-con-inner{position:relative;z-index:2}

/* ---- top CTA strip ---- */
.pl-ftcta{display:flex !important;align-items:center;justify-content:space-between;gap:28px}
.pl-ftcta > .e-con,.pl-ftcta > .elementor-element{width:auto !important;min-width:0 !important;max-width:none !important}
.pl-ftctat{flex:1 1 auto !important;padding:0 !important}
.pl-ftctab{flex:0 0 auto !important;padding:0 !important}
.pl-ftey .elementor-heading-title{
  font-family:var(--pl-head) !important;font-weight:600 !important;font-size:11.5px !important;
  letter-spacing:.2em !important;text-transform:uppercase;color:var(--pl-gold) !important;
}
.pl-fthead .elementor-heading-title{
  font-family:var(--pl-head) !important;font-weight:800 !important;
  font-size:clamp(22px,2.4vw,30px) !important;line-height:1.2 !important;
  color:#fff !important;letter-spacing:-.4px !important;
}
.pl-ftctab .elementor-button{white-space:nowrap}
@media (max-width:820px){
  .pl-ftcta{flex-wrap:wrap}
  .pl-ftctab{width:100% !important}
  .pl-ftctab .elementor-widget-container{display:flex;justify-content:flex-start}
}

/* ---- 4-column grid ---- */
.pl-fgrid{display:grid !important;grid-template-columns:1.6fr 1fr 1.1fr 1.35fr;gap:42px}
.pl-fgrid > .e-con,.pl-fgrid > .elementor-element{width:auto !important;min-width:0 !important;max-width:none !important}
.pl-fhead .elementor-heading-title{
  font-family:var(--pl-head) !important;font-weight:700 !important;font-size:12.5px !important;
  letter-spacing:.14em !important;text-transform:uppercase;color:#fff !important;
}
.pl-fabout .elementor-widget-container{
  font-family:var(--pl-text);font-size:13.5px;line-height:1.75;
  color:rgba(255,255,255,.62);max-width:330px;
}
.pl-fabout p{margin:0}

/* plain links — no bullet icons, as designed */
.pl-fplain .elementor-icon-list-icon{display:none !important}
.pl-fplain .elementor-icon-list-item{padding:0 !important}
.pl-fplain .elementor-icon-list-item a,
.pl-fplain .elementor-icon-list-text{
  color:rgba(255,255,255,.62) !important;font-size:13.5px;font-family:var(--pl-text);
  transition:color .2s,transform .2s;display:inline-block;
}
.pl-fplain .elementor-icon-list-item:hover .elementor-icon-list-text{color:#fff !important;transform:translateX(3px)}

/* contact rows with gold key labels */
.pl-fc{padding:0 !important}
.pl-fck .elementor-heading-title{
  font-family:var(--pl-head) !important;font-weight:600 !important;font-size:10px !important;
  letter-spacing:.16em !important;text-transform:uppercase;color:var(--pl-gold) !important;
}
.pl-fcv .elementor-widget-container{
  font-family:var(--pl-text);font-size:13.5px;line-height:1.65;color:rgba(255,255,255,.72);
}
.pl-fcv p{margin:0}
.pl-fcv a{color:rgba(255,255,255,.72);text-decoration:none}
.pl-fcv a:hover{color:var(--pl-gold-pale)}

/* ---- bottom bar ---- */
.pl-fbottom{display:flex !important;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.pl-fbottom > .elementor-element{width:auto !important}
.pl-fsmall .elementor-heading-title{
  font-family:var(--pl-text) !important;font-size:12px !important;font-weight:400 !important;
  color:rgba(255,255,255,.5) !important;letter-spacing:0 !important;
}

@media (max-width:1024px){.pl-fgrid{grid-template-columns:1fr 1fr !important;gap:34px !important}}
@media (max-width:600px){
  .pl-fgrid{grid-template-columns:1fr !important}
  .pl-fbottom{justify-content:flex-start}
}

/* keep the back-to-top button clear of the floating rail */
.houzez-back-to-top,#back-to-top{right:78px !important;bottom:24px !important}
@media (max-width:767px){.houzez-back-to-top,#back-to-top{right:16px !important;bottom:70px !important}}
/* footer logo: light SVG, sized as designed */
.pl-footer .elementor-widget-image img{height:48px;width:auto;max-width:190px;object-fit:contain;display:block}

/* =========================================================
   FAQ ACCORDION — icon on the right, as designed
   ========================================================= */
.pl-faq .elementor-accordion{border:0}
.pl-faq .elementor-accordion-item{
  border:0 !important;
  border-bottom:1px solid rgba(7,29,73,.1) !important;
  background:transparent !important;
}
.pl-faq .elementor-tab-title{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  background:transparent !important;
  padding:22px 4px !important;
  border:0 !important;
  cursor:pointer;
}
/* the clickable anchor holds the label; let it take the slack */
.pl-faq .elementor-tab-title a,
.pl-faq .elementor-accordion-title{
  order:1;
  flex:1 1 auto;
  min-width:0;
  font-family:var(--pl-head) !important;
  font-weight:700 !important;
  font-size:17px !important;
  line-height:1.4 !important;
  color:var(--pl-navy) !important;
  text-decoration:none;
  display:block;
}
.pl-faq .elementor-tab-title:hover a,
.pl-faq .elementor-tab-title:hover .elementor-accordion-title{color:var(--pl-gold-dk) !important}
.pl-faq .elementor-active .elementor-tab-title a{color:var(--pl-gold) !important}

/* move the +/- circle to the right and give it room */
.pl-faq .elementor-accordion-icon{
  order:2 !important;
  flex:0 0 auto !important;
  width:30px !important;
  height:30px !important;
  min-width:30px;
  margin:0 !important;
  padding:0 !important;
  border-radius:50%;
  border:1px solid rgba(7,29,73,.18);
  display:flex !important;
  align-items:center;
  justify-content:center;
  color:var(--pl-gold) !important;
  font-size:13px;
  line-height:1;
  float:none !important;
  text-align:center;
  transition:background .3s,color .3s,border-color .3s,transform .3s;
}
.pl-faq .elementor-accordion-icon i,
.pl-faq .elementor-accordion-icon svg{
  font-size:12px;
  width:auto;
  height:auto;
  color:inherit;
  fill:currentColor;
  margin:0;
}
.pl-faq .elementor-accordion-icon-left,
.pl-faq .elementor-accordion-icon-right{margin:0 !important;float:none !important}
.pl-faq .elementor-active .elementor-accordion-icon{
  background:var(--pl-navy);
  border-color:var(--pl-navy);
  color:#fff !important;
}

/* answer body */
.pl-faq .elementor-tab-content{
  background:transparent !important;
  border:0 !important;
  padding:0 46px 24px 4px !important;
  font-family:var(--pl-text);
  font-size:14px;
  line-height:1.7;
  color:var(--pl-muted);
}
.pl-faq .elementor-tab-content p{margin:0;max-width:640px}

@media (max-width:767px){
  .pl-faq .elementor-tab-title{gap:14px;padding:18px 2px !important}
  .pl-faq .elementor-tab-title a{font-size:15.5px !important}
  .pl-faq .elementor-tab-content{padding:0 4px 20px 2px !important}
}

/* keep the FAQ column clear of the floating rail */
@media (min-width:1025px){
  .pl-faqsplit{padding-right:66px}
}
/* floating rail: inline SVG icons */
.pl-fi svg{width:17px;height:17px;flex:0 0 auto;display:block;fill:currentColor}
.pl-fi.pl-wa svg{width:19px;height:19px}