/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */
/* this is a testtest */

.accent-font {
  font-family: 'royal-couture-script' !important;
  font-weight: 400 !important;
  font-style: normal !important;
  letter-spacing: 5px !important;
  font-size: 4rem !important;
}

/* Up to 1366px */
@media (max-width: 1366px) {
  .accent-font {
    font-size: 3.5rem !important;
  }
}

/* Up to 1024px */
@media (max-width: 1024px) {
  .accent-font {
    font-size: 3rem !important;
  }
}

/* Up to 767px (mobile) */
@media (max-width: 767px) {
  .accent-font {
    font-size: 2.2rem !important;
    letter-spacing: 3px !important; /* optional: script fonts usually need tighter spacing on mobile */
  }
}

.realtor-font {
  font-family: 'Arial' !important;
  font-weight: 400 !important;
  font-style: normal !important;
  letter-spacing: 5px !important;
  font-size: 0.8rem !important;
  vertical-align: top !important;
}

.wpforms-confirmation-container-full {
  border: 2.5px solid #2875f6 !important;
  background-color: #ffffff !important;
}

.elementor-widget-text-editor p:last-child{ margin-bottom:0px;}

::selection {
  background: #ad8823;
  color: white;
}

.nbm-term-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.nbm-pill {
	background-color: #2875f6;
	color: white;
	padding: 6px 12px;
	border-radius: 50px;
	font-size: 12px;
	font-weight: 600;
	text-transform: lowercase;
	white-space: nowrap;
}

.card-reveal {
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  transform: translateY(10px);
}

.parent-card-reveal:hover .card-reveal {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

html, body {
  overflow-x: hidden !important;
}


/* === HEADER SCROLL SHADOW === */
.main-header {
  box-shadow: none;
  transition: box-shadow 0.25s ease;
}

.main-header.scrolled {
  box-shadow: 0 4px 12px rgba(11, 24, 35, 0.15);
}

/* Elementor header location wrapper */
.elementor-location-header{
  position: sticky;
  top: 0;
  z-index: 999999;
}

/* Elementor Popup wrapper + overlay above everything */
.dialog-widget,
.dialog-widget-content,
.elementor-popup-modal {
  z-index: 2147483647 !important;
}

/* .elementor-editor-active .elementor-control-content {
  overflow: visible !important;
  z-index: 9999;
} */

/* Normalize Elementor global font preview sizes in dropdown
.elementor-panel-popover .elementor-panel-popover-content .elementor-typography-preview {
  font-size: 1.2rem !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
} */

/* Remove default margins on Elementor headings */
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading h5,
.elementor-widget-heading h6 {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.1; /* optional tweak */
}

/* @media (max-width: 767px) {
    .fix-overlap {
      display: block !important;
      min-height: 1px !important;
      overflow: visible !important;
    }
  } */

/* Preloader */

html.loading,
body.loading {
  overflow: hidden !important;
}

#preloader {
  position: fixed;
  inset: 0;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999999;
  transition: opacity 0.4s ease;
}

#preloader.fade-out {
  opacity: 0;
  pointer-events: none;
}

lottie-player {
  display: block;
  margin: 0 auto;
}

#tab-connect {
  cursor: pointer !important;
}

.text-white {
  color: #ffffff;
}

body {
  transition: background-color 0.3s, color 0.3s;
}

/* SVG Elementor Accordion Issue */
/* Ensure the icon container is centered vertically */
.e-n-accordion-item-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Normalize the SVG icon rendering */
.e-n-accordion-item-title-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.e-n-accordion-item-title-icon svg {
  display: block;
  height: 1em; /* or 16px */
  width: 1em;
}

@media (max-width: 767px) {

  /* Center the vertical menu list */
  .nbm-footer-nav .elementor-nav-menu {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  /* Center the text inside each menu item */
  .nbm-footer-nav .elementor-nav-menu a {
    text-align: center;
    justify-content: center;
  }

}

/* Sprout Button Animation */

:root{
  --sprout-palm-size: 75px;
  --sprout-palm-tilt: 40deg;      /* rotation */
  --sprout-hole-w: 60px;          /* mask opening width */
  --sprout-hole-h: 28px;          /* mask opening height */
}

/* Wrapper: shrink-wrap and become positioning context */
.sprout-wrap{
  position: relative;
  display: inline-flex;
  width: fit-content;
}

/* Button on top */
.sprout-wrap .sprout-button .elementor-button{
  position: relative;
  z-index: 3;
}

/* Palm behind (NO opacity fade — shrink only) */
.sprout-wrap .sprout-palm{
  position: absolute;
  right: 0;
  top: -50px;                 /* tweak as needed */
  width: var(--sprout-palm-size);
  height: auto;
  z-index: 1;
  pointer-events: none;

  transform-origin: bottom right;

  /* Hidden state: "seed" */
  transform: translate(-25px, 30px) scale(0.6) rotate(var(--sprout-palm-tilt));
 

  transition:
    transform 520ms cubic-bezier(.3,0,.2,1),
    visibility 0s linear 520ms; /* hide AFTER shrink finishes */
}

/* Mask layer: covers palm so only the “sprout hole” shows */
.sprout-wrap::before{
  content:"";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;

  /* Cut a small window at top-right */
  clip-path: polygon(
    0 0,
    calc(100% - var(--sprout-hole-w)) 0,
    calc(100% - var(--sprout-hole-w)) var(--sprout-hole-h),
    100% var(--sprout-hole-h),
    100% 100%,
    0 100%
  );
}

/* Hover: grow (visible immediately) */
.sprout-wrap:hover .sprout-palm{
  visibility: visible;
  transform: translate(0px, 22px) scale(1) rotate(var(--sprout-palm-tilt));
  animation: palmWiggle 0.8s ease 0.35s 1;

  transition:
    transform 520ms cubic-bezier(.22,1,.36,1),
    visibility 0s; /* show instantly */
}

/* Wiggle around your chosen tilt */
@keyframes palmWiggle{
  0%   { transform: translateY(22px) scaleX(1) scaleY(1) rotate(var(--sprout-palm-tilt)); }
  25%  { transform: translateY(22px) scaleX(1) scaleY(1) rotate(calc(var(--sprout-palm-tilt) + 3deg)); }
  50%  { transform: translateY(22px) scaleX(1) scaleY(1) rotate(calc(var(--sprout-palm-tilt) - 2.5deg)); }
  75%  { transform: translateY(22px) scaleX(1) scaleY(1) rotate(calc(var(--sprout-palm-tilt) + 1.5deg)); }
  100% { transform: translateY(22px) scaleX(1) scaleY(1) rotate(var(--sprout-palm-tilt)); }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .sprout-wrap .sprout-palm{
    transition: none;
    visibility: visible; /* no popping */
    transform: translateY(22px) scaleX(1) scaleY(1) rotate(var(--sprout-palm-tilt));
  }
  .sprout-wrap:hover .sprout-palm{
    animation: none;
  }
}

/* Hide only the RealtyPress credit link */
.rps-footer a[href*="realtypress.ca"] {
  display: none !important;
}

/* Add padding to top and bottom of listing detail pages */
.rps-single-listing {
  padding-top: 75px !important;
  padding-bottom: 75px !important;
}