/* SAMAYA — elementor-compat.css
   Loaded only when Elementor is active, after Elementor's frontend CSS.

   1. Hand-written: layout glue so HTML-widget sections sit edge to edge and
      scroll-reveal content stays visible inside the Elementor editor.
   2. Generated (tools/build_compat_css.py): brand rules for the few properties
      Elementor resets on img / a / hr / figure / iframe, re-emitted with a
      `.elementor` prefix so the design wins. Regenerate after editing main.css
      or expression.css; do not edit that part by hand. */

/* ---------- 1. Layout glue ---------- */
/* Applies to Elementor pages inside the theme (.samaya-elementor) and to the
   complete Samaya page templates that carry their own header/footer (.samaya-el-page). */
:is(.samaya-elementor, .samaya-el-page) .elementor-section.elementor-section-full_width > .elementor-container { max-width: none; }
:is(.samaya-elementor, .samaya-el-page) .elementor-column-gap-no > .elementor-column > .elementor-element-populated,
:is(.samaya-elementor, .samaya-el-page) .elementor-column-gap-no .elementor-widget-wrap { padding: 0; }
:is(.samaya-elementor, .samaya-el-page) :is(.elementor-widget-html, .elementor-widget-shortcode) { margin: 0; margin-block-end: 0; --kit-widget-spacing: 0px; }
:is(.samaya-elementor, .samaya-el-page) :is(.elementor-widget-html, .elementor-widget-shortcode) > .elementor-widget-container { padding: 0; margin: 0; }
:is(.samaya-elementor, .samaya-el-page) .elementor-shortcode { width: 100%; }
.samaya-el-page { background: var(--bg); }

/* Header section. The theme header is position:sticky, but inside a widget it
   could only stick within its own small box — so the Elementor SECTION sticks
   instead, and the header inside it behaves normally. The overlay variant
   (Home, Property Owners) stays position:fixed over the hero, as in the theme. */
.elementor .samaya-el-header { position: sticky; top: 0; z-index: 100; }
.elementor .samaya-el-header .site-header { position: relative; }
.elementor .samaya-el-header--overlay { position: relative; height: 0; }
.elementor .samaya-el-header--overlay .site-header { position: fixed; top: 0; left: 0; right: 0; }
/* Logged-in editors: keep the header below the WordPress admin bar. */
.admin-bar .elementor .samaya-el-header { top: 32px; }
.admin-bar .elementor .samaya-el-header--overlay { top: 0; }
.admin-bar .elementor .samaya-el-header--overlay .site-header { top: 32px; }
@media (max-width: 782px) {
  .admin-bar .elementor .samaya-el-header { top: 46px; }
  .admin-bar .elementor .samaya-el-header--overlay .site-header { top: 46px; }
}
@media (max-width: 600px) { /* WP admin bar scrolls away on phones */
  .admin-bar .elementor .samaya-el-header, .admin-bar .elementor .samaya-el-header--overlay .site-header { top: 0; }
}
/* Mobile menu panel must sit above page sections that follow the header. */
.elementor .samaya-el-footer { position: relative; z-index: 1; }

/* Editor only: effects that wait for scroll never fire on re-rendered widgets. */
.elementor-editor-active .reveal,
.elementor-editor-active .wipe { opacity: 1 !important; transform: none !important; clip-path: none !important; }
.elementor-editor-active .wipe img,
.elementor-editor-active .kinetic > span { transform: none !important; animation: none !important; }

/* ---------- 2. Generated: brand wins over Elementor resets ---------- */
.elementor img { max-width: 100%; height: auto; }
.elementor video { max-width: 100%; }
.elementor a { text-decoration: none; }
.elementor .brand img { height: 40px; }
.elementor .hero__media img { height: 100%; }
.elementor .hero__media video { width: 100%; }
.elementor .division img { height: 100%; }
.elementor .split__media img { border-radius: var(--r-card); }
.elementor .tile img { height: 100%; }
@media (max-width: 767px) {
.elementor .editorial__item { margin-top: 0 !important; }
}
.elementor .card__media img { height: 100%; }
.elementor .gallery img { height: 100%; }
.elementor .map iframe { width: 100%; border: 0; }
.elementor .whatsapp { box-shadow: 0 10px 30px -10px rgba(0,0,0,.4); }
.elementor .footer__brand img { height: 56px; }
.elementor .prose a { text-decoration: underline; }
.elementor .dialog__gallery figure { margin: 0; }
.elementor .dialog__gallery img { height: auto; border-radius: 12px; }
.elementor .wave-rule { margin: 0 0 var(--s-3); background: url("../img/wave-rule-heritage.svg") no-repeat center / contain; }
.elementor .section--navy .wave-rule { background-image: url("../img/wave-rule-white.svg"); }
.elementor .hero .wave-rule { background-image: url("../img/wave-rule-white.svg"); }
.elementor .stage .wave-rule { background-image: url("../img/wave-rule-white.svg"); }
.elementor .frame .wave-rule { background-image: url("../img/wave-rule-white.svg"); }
.elementor .hero__media img { height: 118%; }
.elementor .stage__media img { height: 100%; }
.elementor .frame img { height: 100%; }
.elementor .frame .wave-rule { margin-inline: auto; }
.elementor .split__media img { border-radius: var(--r-card); }
.elementor .marquee__item { text-decoration: none; }
@media (prefers-reduced-motion: reduce) {
.elementor .hero__media img { height: 100%; }
}
.elementor .reel__item figure { margin: 0; }
.elementor .reel__item img { height: 100%; }
.elementor .statement .wave-rule { margin-inline: auto; margin-bottom: var(--s-4); }
.elementor .amenities-section .wave-rule { background-image: url("../img/wave-rule-white.svg"); }
.elementor .pitch-band .wave-rule { background-image: url("../img/wave-rule-white.svg"); }
.elementor .owner-band .wave-rule { background-image: url("../img/wave-rule-white.svg"); }
