/* ==========================================================================
   Lark + Fir — site-wide polish pass
   Rounded corners, sexier CTA buttons, typography refinement.
   Scoped to be additive only — no layout restructuring.
   ========================================================================== */

/* ---------- typography ---------- */
body{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4,h5,h6{
  letter-spacing:-0.01em;
  line-height:1.2;
}
p{
  line-height:1.75;
}

/* ---------- CTA buttons (Elementor button widget, used everywhere) ---------- */
.elementor-button{
  border-radius:8px !important;
  box-shadow:0 4px 14px rgba(0,0,0,.10);
  letter-spacing:.04em;
  font-weight:600;
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.elementor-button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  filter:brightness(1.05);
}
.elementor-button:active{
  transform:translateY(0);
  box-shadow:0 4px 10px rgba(0,0,0,.12);
}

/* ---------- form inputs (newsletter, contact) ---------- */
.elementor-field,
.elementor-field-textual{
  border-radius:8px !important;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.elementor-field:focus,
.elementor-field-textual:focus{
  box-shadow:0 0 0 3px rgba(245,194,31,.25);
  outline:none;
}

/* ---------- home search widget (Estatik) ---------- */
.es-search .es-field__input,
.es-search input[type="text"],
.es-search input[type="search"],
.es-search-nav-wrap,
.es-search .es-search__address{
  border-radius:8px !important;
}
.es-search .js-es-search-submit,
.es-search button[type="submit"],
.es-search .es-btn,
.es-btn.es-btn--primary{
  border-radius:8px !important;
  transition:filter .2s ease, transform .2s ease;
}
.es-search .js-es-search-submit:hover,
.es-search button[type="submit"]:hover,
.es-search .es-btn:hover,
.es-btn.es-btn--primary:hover{
  filter:brightness(1.05);
  transform:translateY(-1px);
}

/* ---------- content images (not logo/icons/header) ---------- */
.elementor-widget-image img,
.elementor-widget-image-carousel img,
.elementor-widget-image-carousel .swiper-slide img,
.elementor-widget-image-box img{
  border-radius:12px;
}

/* ---------- homepage: hero section, recreated ---------- */
.elementor-element-794e594{
  position:relative;
  min-height:82vh;
  display:flex;
  align-items:center;
}
.elementor-element-794e594::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(10,9,8,.12) 0%, rgba(10,9,8,.4) 100%);
  pointer-events:none;
  z-index:0;
}
.elementor-element-794e594 > .e-con-inner{
  position:relative;
  z-index:1;
  width:100%;
}

/* the floating "glass card" content panel */
.elementor-element-28d1592{
  border-radius:20px !important;
  backdrop-filter:blur(10px) saturate(1.1);
  -webkit-backdrop-filter:blur(10px) saturate(1.1);
  box-shadow:0 30px 70px rgba(0,0,0,.28), 0 2px 0 rgba(255,255,255,.4) inset;
  animation:lf-hero-in .9s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes lf-hero-in{
  from{opacity:0; transform:translateY(18px);}
  to{opacity:1; transform:translateY(0);}
}

.elementor-element-794e594 .elementor-heading-title{
  text-shadow:0 2px 16px rgba(0,0,0,.06);
}
.elementor-element-3626ade p{
  color:#3a3630;
}

@media (prefers-reduced-motion:reduce){
  .elementor-element-28d1592{animation:none;}
}
@media (max-width:768px){
  .elementor-element-794e594{min-height:auto;}
}

/* ---------- homepage: three dark feature cards + their inner white boxes ----------
   Element IDs are stable per-template (Elementor front-page), not auto-generated
   per request, so this is safe to hardcode. */
.elementor-element-7c69767,
.elementor-element-d35cf36,
.elementor-element-f52b973{
  border-radius:14px;
  overflow:hidden;
}
.elementor-element-b64e877,
.elementor-element-42e1a8b,
.elementor-element-52cc580{
  border-radius:10px;
}

/* ---------- homepage: IDX Broker omnibar search, styled to match the pill search-bar design ---------- */
.elementor-element-3e0e96c{
  width:100% !important;
  max-width:100% !important;
  flex:1 1 100% !important;
}
.elementor-element-3e0e96c .idx-omnibar-form{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:10px;
  justify-content:flex-start;
}
.elementor-element-3e0e96c .awesomplete{
  min-width:140px !important;
}
.elementor-element-3e0e96c .idx-omnibar-form label{
  position:absolute;
  width:1px;height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
.elementor-element-3e0e96c .idx-omnibar-extra{
  margin:0 !important;
  width:auto !important;
  flex:0 0 auto !important;
  display:block !important;
}
.elementor-element-3e0e96c .idx-omnibar-input,
.elementor-element-3e0e96c #omnibar.idx-omnibar-input{
  width:100% !important;
  box-sizing:border-box;
}
/* IDX's JS wraps #omnibar in an Awesomplete autocomplete div at runtime —
   THAT wrapper, not the raw input, is the actual flex child in the DOM,
   so the wrapper gets the flex-grow and the input just fills it (100%). */
.elementor-element-3e0e96c .awesomplete{
  flex:1 1 260px !important;
  width:auto !important;
  min-width:220px;
  height:46px !important;
  display:inline-block;
}
.elementor-element-3e0e96c .idx-omnibar-extra-button{
  flex:0 0 auto !important;
  width:auto !important;
}
.elementor-element-3e0e96c .idx-omnibar-input,
.elementor-element-3e0e96c .idx-omnibar-price,
.elementor-element-3e0e96c .idx-omnibar-min-price,
.elementor-element-3e0e96c .idx-omnibar-bed,
.elementor-element-3e0e96c .idx-omnibar-bath{
  height:46px !important;
  border:1px solid #dcdfe3 !important;
  border-radius:8px !important;
  padding:0 16px !important;
  font-size:14px;
  color:#232323;
  background:#fff;
  box-sizing:border-box;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.elementor-element-3e0e96c .idx-omnibar-input:focus,
.elementor-element-3e0e96c .idx-omnibar-price:focus,
.elementor-element-3e0e96c .idx-omnibar-bed:focus,
.elementor-element-3e0e96c .idx-omnibar-bath:focus{
  outline:none;
  border-color:#f5c21f !important;
  box-shadow:0 0 0 3px rgba(245,194,31,.2);
}
.elementor-element-3e0e96c .idx-omnibar-input{
  flex:1 1 260px;
  min-width:220px;
}
.elementor-element-3e0e96c .idx-omnibar-price-container .idx-omnibar-price,
.elementor-element-3e0e96c .idx-omnibar-bed-container .idx-omnibar-bed,
.elementor-element-3e0e96c .idx-omnibar-bath-container .idx-omnibar-bath{
  width:150px;
  flex:0 0 150px;
}
.elementor-element-3e0e96c .idx-omnibar-extra-button{
  height:46px !important;
  margin-top:0 !important;
  padding:0 28px;
  border:0 !important;
  border-radius:8px !important;
  background:#f5c21f !important;
  color:#201d1a !important;
  font-weight:600;
  letter-spacing:.03em;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  box-shadow:0 4px 14px rgba(0,0,0,.10);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.elementor-element-3e0e96c .idx-omnibar-extra-button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  filter:brightness(1.05);
}
@media (max-width:600px){
  .elementor-element-3e0e96c .idx-omnibar-form{flex-direction:column;align-items:stretch;}
  .elementor-element-3e0e96c .idx-omnibar-price-container .idx-omnibar-price,
  .elementor-element-3e0e96c .idx-omnibar-bed-container .idx-omnibar-bed,
  .elementor-element-3e0e96c .idx-omnibar-bath-container .idx-omnibar-bath,
  .elementor-element-3e0e96c .idx-omnibar-extra-button{width:100%;}
}
