/* Small additions on top of the mirrored original theme CSS — mobile nav toggle
   state and WhatsApp floating button, since the original site's behavior for
   these depended on WordPress/Elementor runtime JS we intentionally don't load. */

/* Homepage hero background slideshow -- Elementor implements the crossfade
   via its own frontend.js (which we don't load), so we drive the same
   .elementor-background-slideshow markup with a small custom class/timer
   instead (see the inline <script> in home.ejs). */
.pn-hero-slideshow { position: relative; min-height: 430px; overflow: hidden; }
.pn-hero-slideshow .elementor-background-slideshow__slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; transition: opacity 1s ease-in-out;
}
.pn-hero-slideshow .elementor-background-slideshow__slide--show { opacity: 1; }

@media (max-width: 1024px) {
  #site-nav-menu { display: none; }
  #site-nav-menu.hfe-nav-menu--open { display: block; }
}

.pn-whatsapp-float {
  position: fixed;
  bottom: 15px;
  left: 15px;
  z-index: 99999;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border-radius: 999px;
  padding: 8px 16px 8px 8px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.2);
  text-decoration: none;
  color: #075e54;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  font-weight: 600;
}
.pn-whatsapp-float svg { width: 32px; height: 32px; }

/* Elements the original site reveals via Elementor's own scroll-triggered
   frontend.js (which we intentionally don't load, see header.ejs/footer.ejs
   comments) would otherwise stay permanently hidden -- show them immediately. */
.elementor-invisible { opacity: 1 !important; visibility: visible !important; }

.pn-property-filters {
  display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1rem 0 1.5rem;
}
.pn-property-filters select, .pn-property-filters button {
  padding: 0.6rem 0.9rem; border-radius: 8px; border: 1px solid #dbe2ea;
}
.pn-property-filters button { background: #0f766e; color: #fff; border: none; cursor: pointer; }
.pn-property-meta { color: #64748b; font-size: 0.9rem; margin: 0.2rem 0; }
.pn-property-price { font-weight: 700; color: #0f766e; font-size: 1.1rem; margin: 0.4rem 0; }
.pn-property-cta {
  display: inline-block; background: #0f766e; color: #fff; padding: 0.6rem 1.2rem;
  border-radius: 999px; text-decoration: none; font-weight: 600; margin-top: 0.4rem;
}
.pn-property-gallery {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.8rem; margin: 1.2rem 0;
}
.pn-property-gallery img { width: 100%; height: 220px; object-fit: cover; border-radius: 12px; }
.pn-property-specs { width: 100%; border-collapse: collapse; margin: 1.2rem 0; }
.pn-property-specs th, .pn-property-specs td { text-align: left; padding: 0.6rem 1rem; border-bottom: 1px solid #e5e7eb; }
.pn-property-specs th { width: 160px; color: #64748b; }

.pn-search-bar {
  display: flex; max-width: 1200px; margin: 0 auto; padding: 0.6rem 20px;
}
.pn-search-bar input {
  flex: 1; padding: 0.6rem 0.9rem; border-radius: 8px 0 0 8px;
  border: 1px solid #dbe2ea; border-right: none;
}
.pn-search-bar button {
  padding: 0.6rem 1rem; border-radius: 0 8px 8px 0; border: none;
  background: #0f766e; color: #fff; cursor: pointer;
}

.pn-scroll-top {
  position: fixed;
  bottom: 15px;
  right: 15px;
  z-index: 9999;
  width: 44px;
  height: 44px;
  border-radius: 6px;
  background: #000;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  opacity: 0.75;
}
