/* Static clone safety/fidelity overrides. */

/* Approved shared header repair (Jakob 1548001359129874514).
   Captured sticky widths are pixels, not responsive viewport dimensions. */
.elementor-location-header .elementor-element-e504ff2.elementor-sticky--active {
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
}
/* Keep the captured 1140px desktop inner and existing child padding. */
.elementor-location-header .elementor-element-e504ff2 > .e-con-inner {
  margin-inline: auto;
}
/* Elementor appends a second SVG to already-hydrated captured triggers. */
.elementor-location-header nav .sub-arrow:has(~ .sub-arrow) {
  display: none !important;
}
/* SmartMenus distinguishes disclosure clicks by the span event target. */
.elementor-location-header nav .sub-arrow svg {
  pointer-events: none;
}
@media (min-width: 1025px) {
  .elementor-location-header .elementor-nav-menu--main ul.sub-menu {
    width: max-content !important;
    min-width: 12em !important;
    max-width: calc(100vw - 32px) !important;
  }
  .elementor-location-header .elementor-nav-menu--main ul.sub-menu ul.sub-menu {
    left: 100% !important;
    top: 0 !important;
    margin: 0 !important;
  }
  .elementor-location-header .elementor-nav-menu--main ul.sub-menu a {
    white-space: nowrap;
  }
}
/* Mobile descendants remain in-flow; long nested labels may wrap, never clip. */
@media (max-width: 1024px) {
  .elementor-location-header nav.elementor-nav-menu--dropdown ul.sub-menu {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .elementor-location-header nav.elementor-nav-menu--dropdown ul.sub-menu a {
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
}

/* Restore captured desktop dropdown pointer access without replacing menus. */
@media(min-width:1025px) {
 .elementor-nav-menu--main li:hover > ul.sub-menu,
 .elementor-nav-menu--main li:focus-within > ul.sub-menu { display:block !important; visibility:visible !important; opacity:1 !important; }
}
/* Service-area hub extends the captured Elementor image-box system. */
/* New sections lack captured e-flex's --display; inline boxes fragment their backgrounds over adjacent copy. */
.elementor-969 .area-hub-section { display: flex; flex-direction: column; padding: 40px 24px !important; }
.elementor-969 .area-hub-section > .e-con-inner { padding:0 !important; }
.elementor-969 .area-hub-section::before, .elementor-969 .area-hub-section::after { display:none !important; }
.elementor-969 .area-hub-section { --padding-top: 50px; --padding-bottom: 50px; --padding-left: 24px; --padding-right: 24px; }
.elementor-969 .area-hub-section > .e-con-inner { display: flex; flex-direction: column; gap: 24px; }
.elementor-969 .area-hub-section h2 { margin: 0; }
.elementor-969 .area-hub-section p { margin: 0; max-width: 850px; }
.elementor-969 .area-hub-muted { background: var(--e-global-color-astglobalcolor4, #f5f5f5); }
.elementor-969 .area-city-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; width: 100%; }
.elementor-969 .area-city-card .elementor-image-box-img { width: 100%; margin: 0 0 15px; }
.elementor-969 .area-city-card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.elementor-969 .area-city-card h3 { font-family: "Lato",sans-serif; font-weight: 600; color: #000; text-align: center; }
.elementor-969 .area-service-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
.elementor-969 .area-service-card h3 { margin: 0 0 12px; }
.elementor-969 .area-hub-section .elementor-button { align-self: flex-start; }
.elementor-969 .area-faq-list { width: 100%; }
.elementor-969 .area-faq-list details { border-bottom: 1px solid #ccc; padding: 20px 0; }
.elementor-969 .area-faq-list summary { cursor: pointer; font-weight: 600; }
.elementor-969 .area-faq-list p { margin-top: 16px; }
@media(max-width:1024px) { .elementor-969 .area-city-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .elementor-969 .area-city-grid, .elementor-969 .area-service-grid { grid-template-columns: 1fr; } .elementor-969 .area-hub-section { --padding-top: 36px; --padding-bottom: 36px; --padding-left: 20px; --padding-right: 20px; } }

/* css3-animate-it: .animated stays opacity:0 + transform-shifted without JS adding .go */
.animated {
  opacity: 1 !important;
  animation: none !important;
  transform: none !important;
}

/* Elementor slideshow backgrounds need JS on WordPress; provide a static captured hero image. */
.elementor-element-c395f51 {
  background-image: linear-gradient(rgba(0,0,0,.45), rgba(0,0,0,.45)), url("/images/source/Cincinnati_Landscapedesigner_landscapeconsultation_LeonsLandscaping-15-scaled.webp") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

.tekton-form-placeholder {
  border: 2px dashed #d7ae5e;
  background: #fff8ec;
  color: #2f211c;
  padding: 24px;
  border-radius: 8px;
  font-weight: 600;
  text-align: center;
  line-height: 1.5;
}

/* Keep captured typography unchanged when correcting semantic heading tags. */
.tekton-preserve-h3 {
  line-height: 1.3;
}

h3.tekton-preserve-h4 {
  line-height: 1.2;
}

h3.elementor-icon-box-title.tekton-preserve-h4 {
  font-size: 1.3em;
}

/* In-text links inherit the surrounding text color; underline is the only affordance. */
a.contextual-link,
a.contextual-link:visited,
.elementor-widget-text-editor p a:not(.elementor-button),
.elementor-widget-text-editor li a:not(.elementor-button),
.elementor-widget-text-editor p a:not(.elementor-button):visited,
.elementor-widget-text-editor li a:not(.elementor-button):visited {
  color: inherit !important;
  font-weight: inherit !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 0.16em;
}
a.contextual-link:hover,
.elementor-widget-text-editor p a:not(.elementor-button):hover,
.elementor-widget-text-editor li a:not(.elementor-button):hover {
  color: inherit !important;
  text-decoration-thickness: 2px !important;
}
a.contextual-link:focus-visible,
.elementor-widget-text-editor p a:not(.elementor-button):focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 3px !important;
}

/* Mobile side padding: keep page and footer content off the screen edges.
   Applied to top-level content sections only; backgrounds stay full width. */
@media (max-width: 767px) {
  #content .e-con.e-parent,
  .elementor-location-footer .e-con.e-parent {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  #content .e-con.e-parent > .e-con-inner,
  .elementor-location-footer .e-con.e-parent > .e-con-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
