/* JQ: adaptive Elementor/WPResidence header, managed in child theme code. */
:root {
  --jq-header-height: 90px;
  --jq-header-menu-top: 90px;
  --jq-header-inline-padding: clamp(16px, 3vw, 60px);
  --jq-header-logo-width: 96px;
  --jq-header-mobile-logo-width: 88px;
  --jq-header-toggle-size: 56px;
}

.wpestate_elementor_header_custom,
.elementor-32342,
.elementor-32342 .elementor-element-42c36d8f {
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

.elementor-32342 .elementor-element-42c36d8f {
  display: grid !important;
  grid-template-columns: var(--jq-header-logo-width) minmax(0, 1fr) !important;
  align-items: center !important;
  justify-content: normal !important;
  min-height: var(--jq-header-height) !important;
  padding: 0 var(--jq-header-inline-padding) !important;
  column-gap: 24px !important;
  row-gap: 0 !important;
}

.elementor-32342 :is(
  .elementor-element-4a8a8ed7,
  .elementor-element-3b4f95f4,
  .wpresidence-site-logo,
  .wpresidence-site-logo a,
  img.image-logo
) {
  flex: 0 0 var(--jq-header-logo-width) !important;
  width: var(--jq-header-logo-width) !important;
  max-width: var(--jq-header-logo-width) !important;
  min-width: var(--jq-header-logo-width) !important;
}

.elementor-32342 .elementor-element-4a8a8ed7 {
  grid-column: 1 !important;
  order: 1 !important;
  justify-self: start !important;
  align-self: center !important;
}

.elementor-32342 img.image-logo {
  height: auto !important;
  max-height: 72px !important;
  object-fit: contain !important;
}

.elementor-32342 .elementor-element-7a4bcad4 {
  display: flex !important;
  grid-column: 2 !important;
  order: 2 !important;
  flex: 1 1 auto !important;
  flex-flow: row nowrap !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: auto !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  visibility: visible !important;
  opacity: 1 !important;
  overflow: visible !important;
}

.elementor-32342 .elementor-element-b297008 {
  order: 1 !important;
  flex: 0 1 auto !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.elementor-32342 .elementor-element-1dea8e8 {
  order: 2 !important;
}

.wpestate_elementor_header_custom nav.wpestate-show-menu-desktop,
.wpestate_elementor_header_custom .wpresidence-navigation-menu ul.menu {
  display: flex !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.wpestate_elementor_header_custom nav.wpestate-show-menu-desktop {
  flex: 0 1 auto !important;
  width: auto !important;
  padding-left: clamp(4px, 1vw, 20px) !important;
  padding-right: clamp(4px, 1vw, 20px) !important;
  overflow: visible !important;
}

.wpestate_elementor_header_custom .wpresidence-navigation-menu ul.menu {
  overflow: visible !important;
}

.wpestate_elementor_header_custom .wpresidence-navigation-menu ul.sub-menu {
  flex-direction: column !important;
  white-space: normal !important;
}

.wpestate_elementor_header_custom .wpresidence-navigation-menu ul.sub-menu > li {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.wpestate_elementor_header_custom .wpresidence-navigation-menu ul.sub-menu > li > a {
  white-space: normal !important;
}

.elementor-32342 .elementor-element-1dea8e8,
.wpestate_elementor_header_custom .header_phone {
  display: flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  margin-left: 12px !important;
  white-space: nowrap !important;
}

.wpestate_elementor_header_custom .header_phone {
  color: #f8f8f8 !important;
  gap: 8px !important;
}

.wpestate_elementor_header_custom .header_phone::before {
  content: "" !important;
  display: inline-block !important;
  flex: 0 0 14px !important;
  width: 14px !important;
  height: 18px !important;
  background-color: currentColor !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 295.64 369.5375'%3E%3Cpath d='M231.99 189.12c18.12 10.07 36.25 20.14 54.37 30.21 7.8 4.33 11.22 13.52 8.15 21.9-15.59 42.59-61.25 65.07-104.21 49.39C102.33 258.51 37.12 193.3 5.01 105.33-10.67 62.37 11.81 16.71 54.4 1.12c8.38-3.07 17.57.35 21.91 8.15 10.06 18.12 20.13 36.25 30.2 54.37 4.72 8.5 3.61 18.59-2.85 25.85-8.46 9.52-16.92 19.04-25.38 28.55 18.06 43.98 55.33 81.25 99.31 99.31 9.51-8.46 19.03-16.92 28.55-25.38 7.27-6.46 17.35-7.57 25.85-2.85z'/%3E%3C/svg%3E") center / contain no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 295.64 369.5375'%3E%3Cpath d='M231.99 189.12c18.12 10.07 36.25 20.14 54.37 30.21 7.8 4.33 11.22 13.52 8.15 21.9-15.59 42.59-61.25 65.07-104.21 49.39C102.33 258.51 37.12 193.3 5.01 105.33-10.67 62.37 11.81 16.71 54.4 1.12c8.38-3.07 17.57.35 21.91 8.15 10.06 18.12 20.13 36.25 30.2 54.37 4.72 8.5 3.61 18.59-2.85 25.85-8.46 9.52-16.92 19.04-25.38 28.55 18.06 43.98 55.33 81.25 99.31 99.31 9.51-8.46 19.03-16.92 28.55-25.38 7.27-6.46 17.35-7.57 25.85-2.85z'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

.wpestate_elementor_header_custom .header_phone a {
  color: inherit !important;
}

.wpestate_elementor_header_custom .wpestate-elementor-menu-mobile-container {
  display: none !important;
}

html.jq-header-wide .wpestate_elementor_header_custom .wpestate-elementor-menu-mobile-container,
html.jq-header-compact .wpestate_elementor_header_custom .wpestate-elementor-menu-mobile-container,
html.jq-header-wide .elementor-32342 .wpestate_mobile_menu_trigger,
html.jq-header-compact .elementor-32342 .wpestate_mobile_menu_trigger,
html.jq-header-wide .elementor-32342 .wpestate_mobile_menu_trigger_close,
html.jq-header-compact .elementor-32342 .wpestate_mobile_menu_trigger_close,
html.jq-header-wide .elementor-32342 ul.mobilex-menu,
html.jq-header-compact .elementor-32342 ul.mobilex-menu,
html.jq-header-wide .elementor-32342 .elementor-element.elementor-element-b297008 .wpestate-elementor-menu-mobile-container ul.mobilex-menu,
html.jq-header-compact .elementor-32342 .elementor-element.elementor-element-b297008 .wpestate-elementor-menu-mobile-container ul.mobilex-menu,
html.jq-header-wide .mobilewrapper ul.mobilex-menu,
html.jq-header-compact .mobilewrapper ul.mobilex-menu {
  display: none !important;
}

html.jq-header-compact .elementor-32342 .elementor-element-1dea8e8,
html.jq-header-compact .wpestate_elementor_header_custom .header_phone,
html.jq-header-mobile .elementor-32342 .elementor-element-1dea8e8,
html.jq-header-mobile .wpestate_elementor_header_custom .header_phone {
  display: none !important;
}

html.jq-header-compact .wpestate_elementor_header_custom .wpresidence-navigation-menu ul.menu > li > a {
  padding-left: 6px !important;
  padding-right: 6px !important;
  font-size: 15px !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom nav.wpestate-show-menu-desktop {
  display: none !important;
}

html.jq-header-mobile .elementor-32342 .elementor-element-42c36d8f {
  grid-template-columns: var(--jq-header-mobile-logo-width) minmax(0, 1fr) !important;
  column-gap: 16px !important;
  min-height: var(--jq-header-height) !important;
}

html.jq-header-mobile .elementor-32342 .elementor-element-7a4bcad4 {
  justify-content: flex-end !important;
  flex-flow: row nowrap !important;
  width: 100% !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom .wpestate-elementor-menu-mobile-container {
  display: flex !important;
  flex: 0 0 var(--jq-header-toggle-size) !important;
  width: var(--jq-header-toggle-size) !important;
  min-width: var(--jq-header-toggle-size) !important;
  max-width: var(--jq-header-toggle-size) !important;
  margin-left: auto !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
}

html.jq-header-mobile .elementor-32342 .elementor-element-b297008 {
  display: flex !important;
  order: 1 !important;
  flex: 0 0 var(--jq-header-toggle-size) !important;
  width: var(--jq-header-toggle-size) !important;
  min-width: var(--jq-header-toggle-size) !important;
  max-width: var(--jq-header-toggle-size) !important;
  margin-left: auto !important;
  justify-content: flex-end !important;
  overflow: visible !important;
}

html.jq-header-mobile .elementor-32342 :is(
  .elementor-element-4a8a8ed7,
  .elementor-element-3b4f95f4,
  .wpresidence-site-logo,
  .wpresidence-site-logo a,
  img.image-logo
) {
  flex-basis: var(--jq-header-mobile-logo-width) !important;
  width: var(--jq-header-mobile-logo-width) !important;
  max-width: var(--jq-header-mobile-logo-width) !important;
  min-width: var(--jq-header-mobile-logo-width) !important;
}

html.jq-header-mobile .elementor-32342 :is(
  .wpestate_mobile_menu_trigger,
  .wpestate_mobile_menu_trigger_close
) {
  width: var(--jq-header-toggle-size) !important;
  height: var(--jq-header-toggle-size) !important;
  padding: 15px !important;
  z-index: 100001 !important;
}

html.jq-header-mobile .elementor-32342 ul.mobilex-menu,
html.jq-header-mobile .elementor-32342 .elementor-element.elementor-element-b297008 .wpestate-elementor-menu-mobile-container ul.mobilex-menu,
html.jq-header-mobile .mobilewrapper ul.mobilex-menu {
  position: fixed !important;
  top: var(--jq-header-menu-top) !important;
  right: 0 !important;
  left: auto !important;
  width: min(320px, 86vw) !important;
  min-width: min(280px, 86vw) !important;
  max-width: calc(100vw - 12px) !important;
  max-height: calc(100vh - var(--jq-header-menu-top)) !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  transform: none !important;
  z-index: 100000 !important;
  box-sizing: border-box !important;
}

html.jq-header-mobile .elementor-32342 ul.mobilex-menu :is(li, a, .sub-menu),
html.jq-header-mobile .elementor-32342 .elementor-element.elementor-element-b297008 .wpestate-elementor-menu-mobile-container ul.mobilex-menu :is(li, a, .sub-menu),
html.jq-header-mobile .mobilewrapper ul.mobilex-menu :is(li, a, .sub-menu) {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  white-space: normal !important;
}

html.jq-header-mobile .elementor-32342 ul.mobilex-menu .sub-menu,
html.jq-header-mobile .elementor-32342 .elementor-element.elementor-element-b297008 .wpestate-elementor-menu-mobile-container ul.mobilex-menu .sub-menu,
html.jq-header-mobile .mobilewrapper ul.mobilex-menu .sub-menu {
  position: static !important;
}

@media (max-width: 782px) {
  :root {
    --jq-header-inline-padding: 20px;
  }
}

/* JQ: apply the same adaptive header rules to the internal WPResidence Studio header. */
.wpestate_elementor_header_custom > .elementor,
.wpestate_elementor_header_custom > .elementor > .elementor-element.e-con.e-parent {
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

.wpestate_elementor_header_custom > .elementor > .elementor-element.e-con.e-parent {
  display: grid !important;
  grid-template-columns: var(--jq-header-logo-width) minmax(0, 1fr) !important;
  align-items: center !important;
  justify-content: normal !important;
  min-height: var(--jq-header-height) !important;
  padding: 0 var(--jq-header-inline-padding) !important;
  column-gap: 24px !important;
  row-gap: 0 !important;
}

.wpestate_elementor_header_custom > .elementor > .elementor-element.e-con.e-parent > .e-con.e-child:first-child,
.wpestate_elementor_header_custom .elementor-widget-Site_Logo,
.wpestate_elementor_header_custom .wpresidence-site-logo,
.wpestate_elementor_header_custom .wpresidence-site-logo a,
.wpestate_elementor_header_custom img.image-logo {
  flex: 0 0 var(--jq-header-logo-width) !important;
  width: var(--jq-header-logo-width) !important;
  max-width: var(--jq-header-logo-width) !important;
  min-width: var(--jq-header-logo-width) !important;
}

.wpestate_elementor_header_custom > .elementor > .elementor-element.e-con.e-parent > .e-con.e-child:first-child {
  grid-column: 1 !important;
  order: 1 !important;
  justify-self: start !important;
  align-self: center !important;
}

.wpestate_elementor_header_custom img.image-logo {
  height: auto !important;
  max-height: 72px !important;
  object-fit: contain !important;
}

.wpestate_elementor_header_custom > .elementor > .elementor-element.e-con.e-parent > .e-con.e-child:last-child {
  display: flex !important;
  grid-column: 2 !important;
  order: 2 !important;
  flex: 1 1 auto !important;
  flex-flow: row nowrap !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: auto !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  visibility: visible !important;
  opacity: 1 !important;
  overflow: visible !important;
}

.wpestate_elementor_header_custom .elementor-widget-wpresidence_navigation_menu {
  order: 1 !important;
  flex: 0 1 auto !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.wpestate_elementor_header_custom .elementor-widget-Site_Phone {
  display: flex !important;
  order: 2 !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  margin-left: 12px !important;
  white-space: nowrap !important;
}

html.jq-header-wide .wpestate_elementor_header_custom ul.mobilex-menu,
html.jq-header-compact .wpestate_elementor_header_custom ul.mobilex-menu {
  display: none !important;
}

html.jq-header-compact .wpestate_elementor_header_custom .elementor-widget-Site_Phone,
html.jq-header-mobile .wpestate_elementor_header_custom .elementor-widget-Site_Phone {
  display: none !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom > .elementor > .elementor-element.e-con.e-parent {
  grid-template-columns: var(--jq-header-mobile-logo-width) minmax(0, 1fr) !important;
  column-gap: 16px !important;
  min-height: var(--jq-header-height) !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom > .elementor > .elementor-element.e-con.e-parent > .e-con.e-child:last-child {
  justify-content: flex-end !important;
  flex-flow: row nowrap !important;
  width: 100% !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom .elementor-widget-wpresidence_navigation_menu {
  display: flex !important;
  order: 1 !important;
  flex: 0 0 var(--jq-header-toggle-size) !important;
  width: var(--jq-header-toggle-size) !important;
  min-width: var(--jq-header-toggle-size) !important;
  max-width: var(--jq-header-toggle-size) !important;
  margin-left: auto !important;
  justify-content: flex-end !important;
  overflow: visible !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom > .elementor > .elementor-element.e-con.e-parent > .e-con.e-child:first-child,
html.jq-header-mobile .wpestate_elementor_header_custom .elementor-widget-Site_Logo,
html.jq-header-mobile .wpestate_elementor_header_custom .wpresidence-site-logo,
html.jq-header-mobile .wpestate_elementor_header_custom .wpresidence-site-logo a,
html.jq-header-mobile .wpestate_elementor_header_custom img.image-logo {
  flex-basis: var(--jq-header-mobile-logo-width) !important;
  width: var(--jq-header-mobile-logo-width) !important;
  max-width: var(--jq-header-mobile-logo-width) !important;
  min-width: var(--jq-header-mobile-logo-width) !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom :is(
  .wpestate_mobile_menu_trigger,
  .wpestate_mobile_menu_trigger_close
) {
  width: var(--jq-header-toggle-size) !important;
  height: var(--jq-header-toggle-size) !important;
  padding: 15px !important;
  z-index: 100001 !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom ul.mobilex-menu {
  position: fixed !important;
  top: var(--jq-header-menu-top) !important;
  right: 0 !important;
  left: auto !important;
  width: min(320px, 86vw) !important;
  min-width: min(280px, 86vw) !important;
  max-width: calc(100vw - 12px) !important;
  max-height: calc(100vh - var(--jq-header-menu-top)) !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  transform: none !important;
  z-index: 100000 !important;
  box-sizing: border-box !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom ul.mobilex-menu :is(li, a, .sub-menu) {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  white-space: normal !important;
}

html.jq-header-mobile .wpestate_elementor_header_custom ul.mobilex-menu .sub-menu {
  position: static !important;
}
