/* Wayback Fixer auto-supplement */
/* Elementor entrance-animation elements keep visibility:hidden until frontend JS
   fires; without it (no per-page post-NNNN.css) content stays invisible. Force on. */
.elementor-invisible{opacity:1 !important;visibility:visible !important;animation:none !important;}
.elementor img,.elementor-widget-container img{max-width:100%;height:auto;}

/* Kit color tokens — some templates omit body.elementor-kit-8 */
:root {
  --e-global-color-primary: #2f4946;
  --e-global-color-secondary: #db7a1b;
  --e-global-color-text: #2f4946;
  --e-global-color-accent: #fff;
  --e-global-color-c54228c: #f5f5f5;
}

/* ---- Footer (elementor-49): green backgrounds missing on /pages & articles ---- */
#footer-top,
#footer-contact,
.elementor-49 .elementor-element-eb820d3,
.elementor-49 .elementor-element-eb820d3:not(.elementor-motion-effects-element-type-background),
.elementor-49 .elementor-element-7ef99ed,
.elementor-49 .elementor-element-7ef99ed:not(.elementor-motion-effects-element-type-background) {
  background-color: #2f4946 !important;
}
#footer-top {
  padding: 80px 0 20px;
}
#footer-contact {
  padding: 0 0 100px;
}
/* Force light text — Astra h1–h6 / body color is #2f4946 and blends on green */
.elementor-49,
.elementor-49 .elementor-heading-title,
.elementor-49 .elementor-text-editor,
.elementor-49 .elementor-text-editor *,
.elementor-49 p,
.elementor-49 div,
.elementor-49 span,
.elementor-49 a,
.elementor-49 h1,
.elementor-49 h2,
.elementor-49 h3,
.elementor-49 h4 {
  color: #fff !important;
}
.elementor-49 .elementor-social-icon {
  border: 4px solid #fff;
  background: transparent;
}
.elementor-49 .elementor-social-icon i {
  color: #fff !important;
}
.elementor-49 .elementor-element-eb01a31 img {
  max-width: 365px;
}
.romlifooter,
.romlifooter * {
  color: #fff !important;
}
@media (max-width: 1024px) {
  #footer-top { padding: 40px 20px 0; }
  #footer-contact { padding: 20px 20px 40px; }
}

/* ---- Gap under header on inner pages ---- */
body:not(.home) #content.site-content {
  padding-top: 24px;
}
/* Soft defaults only — page post-CSS overrides these */
body:not(.home) .elementor-section-height-min-height {
  min-height: 320px;
}
/* Page-specific hero image columns (when post CSS still thin) */
.elementor-72 .elementor-element-73e2da0 {
  background-image: url('/wp-content/uploads/bg_banner1.jpg');
  background-size: cover;
  background-position: center;
}
.elementor-259 .elementor-element-7231248 {
  background-image: url('/wp-content/uploads/banner_side-property-1200x642-1.jpg');
  background-size: cover;
  background-position: center;
}

/* Contact: only left photo column is dark; form stays on white */
.elementor-301 .elementor-element-147bb1c,
.elementor-301 .elementor-element-45d1892 {
  background-color: #fff !important;
  background-image: none !important;
  min-height: 0 !important;
}
.elementor-301 .elementor-element-2dcfc3c {
  background-color: #2f4946 !important;
  background-image: url('/wp-content/uploads/bg_banner2.jpg');
  background-size: cover;
  background-position: center;
  min-height: 420px;
}
.elementor-301 .elementor-element-9fc4e4c {
  background-color: #fff;
  padding: 48px 40px;
}
.elementor-301 .elementor-element-9fc4e4c .elementor-heading-title,
.elementor-301 .elementor-element-9fc4e4c .elementor-text-editor,
.elementor-301 .elementor-element-9fc4e4c p {
  color: #2f4946 !important;
}

/* Blog listing + article */
body.single #content.site-content,
body.blog #content.site-content {
  padding-top: 40px;
}

/* Menu: dark green bar needs white labels (astra dynamic CSS sets #2f4946 text) */
.main-header-menu .menu-link,
.main-header-menu .ast-menu-toggle,
.ast-header-custom-item a,
.ast-masthead-custom-menu-items a {
  color: #fff !important;
}
.main-header-menu .menu-link:hover,
.main-header-menu .menu-item:hover > .menu-link,
.main-header-menu .menu-item.focus > .menu-link,
.main-header-menu .menu-item:hover > .ast-menu-toggle,
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current-menu-ancestor > .menu-link {
  color: #d27a1b !important;
}
.main-header-menu .sub-menu .menu-link {
  color: #fff !important;
}
.main-header-menu .sub-menu .menu-link:hover,
.main-header-menu .sub-menu .menu-item:hover > .menu-link {
  color: #2f4946 !important;
}

/* ---- Desktop nav dropdowns: hide until hover/focus ----
   Custom theme CSS forces left:50%!important on .sub-menu, which overrides
   Astra's left:-999em off-canvas hide. Fade animation CSS (astra dynamic) also
   missing on some pages. Enforce hide/show here. */
@media (min-width: 922px) {
  .main-header-menu .menu-item > .sub-menu,
  .main-header-menu .menu-item > .astra-full-megamenu-wrapper {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none;
    transition: opacity .25s ease, visibility .25s ease;
  }
  .main-header-menu .menu-item:hover > .sub-menu,
  .main-header-menu .menu-item.focus > .sub-menu,
  .main-header-menu .menu-item:hover > .astra-full-megamenu-wrapper,
  .main-header-menu .menu-item.focus > .astra-full-megamenu-wrapper {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto;
  }
  .main-header-menu > .menu-item > .ast-menu-toggle {
    display: none;
  }
}

/* ---- Homepage layout hardening ---- */
body.home .elementor-29 .elementor-widget-image img {
  max-width: 100%;
  height: auto;
}
body.home .elementor-element-bd9464c img {
  max-width: 120px !important;
  width: 120px;
  height: auto;
}
body.home .elementor-element-efe2a82 img,
body.home .elementor-element-4ae234f img,
body.home .elementor-element-f55fa52 img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}
body.home .eael-entry-thumbnail img,
body.home .eael-entry-thumbnail picture {
  max-width: 100%;
  height: auto;
  object-fit: cover;
}

/* ---- Homepage Smart Slider containment ----
   Without SS init JS, absolute layers render at natural image size
   (e.g. 1474px) and cover the whole page. Cap height, clip overflow,
   stack slides, show only the first. */
body.home .n2-section-smartslider,
body.home #n2-ss-5-align,
body.home #n2-ss-5 {
  position: relative;
  max-width: 100%;
  width: 100%;
  overflow: hidden !important;
  z-index: 1;
}
body.home #n2-ss-5 {
  height: auto;
  max-height: min(590px, 46vw);
  aspect-ratio: 1280 / 590;
  background-color: #2f4946;
}
body.home #n2-ss-5 .n2-ss-slider-wrapper-inside,
body.home #n2-ss-5 .n2-ss-slider-1,
body.home #n2-ss-5 .n2-ss-slider-2,
body.home #n2-ss-5 .n2-ss-slider-3,
body.home #n2-ss-5 .n2-ss-slider-4 {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
}
body.home #n2-ss-5 .n2-ss-slide-backgrounds {
  position: absolute !important;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}
body.home #n2-ss-5 .n2-ss-slide-background,
body.home #n2-ss-5 .n2-ss-slide-background-image,
body.home #n2-ss-5 .n2-ss-slide-background-image picture,
body.home #n2-ss-5 .n2-ss-slide-background-image img {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
}
/* Only first background visible without JS */
body.home #n2-ss-5 .n2-ss-slide-background:not(:first-child) {
  opacity: 0;
  visibility: hidden;
}
body.home #n2-ss-5 .n2-ss-preserve-size {
  display: none !important;
}
body.home #n2-ss-5 .n2-ss-slide {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  z-index: 2;
}
/* Hide slides 2+ — JS carousel missing */
body.home #n2-ss-5 .n2-ss-slide:not([data-first="1"]) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.home #n2-ss-5 .n2-ss-slide[data-first="1"] {
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 3;
}
/* First-slide headline: center without absolute runaway */
body.home #n2-ss-5 .n2-ss-slide[data-first="1"] .n2-ss-layers-container {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 4;
  padding: 24px;
  box-sizing: border-box;
}
body.home #n2-ss-5 .n2-ss-slide[data-first="1"] .n2-ss-layer[data-pm="absolute"] {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  width: auto !important;
  max-width: 90%;
  transform: none !important;
}
body.home #n2-ss-5item1 {
  color: #fff !important;
  font-family: Roboto, sans-serif;
  font-size: clamp(22px, 3.2vw, 42px);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}
/* Kill oversized layer images from other slides escaping the box */
body.home #n2-ss-5 .n2-ss-layer img {
  max-width: 100% !important;
  height: auto !important;
}
body.home #n2-ss-5 .n2-ss-slider-controls {
  display: none !important;
}
@media (max-width: 700px) {
  body.home #n2-ss-5 {
    max-height: min(420px, 130vw);
    aspect-ratio: 320 / 420;
  }
}
