/*
 * Avalos Lawn & Landscape - 2026 refresh layer.
 * Loaded after Elementor's CSS on every page (with scale-fix.css). Elementor
 * styles each element by ID, so the shared rules below use !important where
 * they need to win over those per-element rules. Remove the two <link> tags
 * (and refresh.js) to get the original look back.
 */
:root {
  --rf-blue: var(--e-global-color-primary, #0C5395);
  --rf-blue-dark: #094379;
  --rf-green: #69A84F;
  --rf-ink: #14202b;
  --rf-text: #46525e;
  --rf-line: #e3e8ee;
  --rf-soft: #f5f8f6;
  --rf-radius: 16px;
  --rf-radius-sm: 10px;
  --rf-shadow: 0 1px 2px rgb(16 24 40 / .06), 0 8px 24px -8px rgb(16 24 40 / .14);
  --rf-shadow-hover: 0 2px 4px rgb(16 24 40 / .06), 0 18px 36px -12px rgb(16 24 40 / .22);
  --rf-ease: cubic-bezier(.22, .61, .36, 1);
  --rf-font: "Libre Franklin", system-ui, -apple-system, "Segoe UI", sans-serif;
}

html { scroll-behavior: smooth; }
body.elementor-kit-6 {
  font-family: var(--rf-font);
  color: var(--rf-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

/* ---------- One typeface ----------
 * The site mixed Libre Franklin, Poppins, DM Sans, Oswald, Montserrat,
 * Roboto and Source Sans Pro. Everything now uses Libre Franklin. */
.elementor-kit-6 :is(h1, h2, h3, h4, h5, h6, p, a, li, label, input, select, textarea, button, blockquote,
  .elementor-heading-title, .elementor-button, .elementor-button-text, .elementor-icon-list-text,
  .elementor-tab-title, .elementor-toggle-title, .elementor-nav-menu a, .elementor-widget-text-editor,
  .gform_wrapper, .gfield_label, .gform-field-label, .gform_button) {
  font-family: var(--rf-font) !important;
}

/* ---------- Type scale ---------- */
.elementor-kit-6 .elementor-heading-title {
  color: var(--rf-ink);
  letter-spacing: -0.015em;
  text-wrap: balance;
}
/* Section titles */
.elementor-kit-6 [data-elementor-type="wp-post"] h2.elementor-heading-title,
.elementor-kit-6 [data-elementor-type="wp-page"] h2.elementor-heading-title {
  font-size: clamp(1.75rem, 1.15rem + 1.5vw, 2.375rem) !important;
  line-height: 1.15 !important;
  font-weight: 700 !important;
}
/* Page hero titles (About Us, Services We Offer...) and the homepage headline */
.elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child h1.elementor-heading-title,
.elementor-kit-6 [data-elementor-type="wp-post"] .elementor-element-7967e5e h2.elementor-heading-title {
  font-size: clamp(2.25rem, 1.3rem + 3.2vw, 3.75rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.025em;
  font-weight: 800 !important;
  color: #fff;
}
.elementor-kit-6 .elementor-element-7967e5e .elementor-heading-title { max-width: 13em; margin-inline: auto; }
@media (max-width: 767px) { .elementor-kit-6 .elementor-element-7967e5e .elementor-heading-title { margin-inline: 0; } }
/* Phone-only green bar at the top ("Follow Us") */
.elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child > .e-con:first-child h2.elementor-heading-title,
.elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child > .e-con-inner > .e-con:first-child h2.elementor-heading-title {
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: .02em !important;
}
/* Homepage eyebrow above the headline ("St. Charles, MO Lawn Care...") */
.elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .elementor-element-b07f4f0 h1.elementor-heading-title {
  font-size: clamp(.78rem, .74rem + .2vw, .9rem) !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
  color: rgb(255 255 255 / .9);
}
/* Card titles (service cards, process steps, quote box) */
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) h2.elementor-heading-title,
.elementor-kit-6 .e-con:has(> .elementor-widget-icon + .elementor-widget-heading + .elementor-widget-text-editor) h2.elementor-heading-title,
.elementor-kit-6 [data-elementor-type="wp-post"] .elementor-element-86199e4 h2.elementor-heading-title {
  font-size: clamp(1.05rem, 1rem + .3vw, 1.25rem) !important;
  line-height: 1.25 !important;
  letter-spacing: .01em;
  text-transform: uppercase;
}
/* Body copy */
.elementor-kit-6 .elementor-widget-text-editor {
  font-size: clamp(1rem, .96rem + .15vw, 1.0625rem) !important;
  line-height: 1.7 !important;
}
.elementor-kit-6 .elementor-widget-text-editor p { margin-block: 0 1em; }
.elementor-kit-6 .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---------- Dividers ---------- */
.elementor-kit-6 .elementor-widget-divider { --divider-border-width: 3px; }
.elementor-kit-6 .elementor-divider-separator { border-radius: 3px; }

/* Thin black outlines left over on three homepage sections */
.elementor-7 .elementor-element.elementor-element-adcb86e,
.elementor-7 .elementor-element.elementor-element-63aba01,
.elementor-7 .elementor-element.elementor-element-c4d427f {
  border: 0 !important;
}

/* ---------- Buttons ---------- */
.elementor-kit-6 .elementor-button {
  border-width: 2px !important;
  border-color: transparent !important;
  border-radius: 999px !important;
  padding: .95em 1.75em !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  line-height: 1.1 !important;
  box-shadow: 0 6px 16px -8px rgb(12 83 149 / .65) !important;
  transition: transform .25s var(--rf-ease), box-shadow .25s var(--rf-ease), background-color .2s, color .2s, border-color .2s !important;
}
.elementor-kit-6 .elementor-button:hover,
.elementor-kit-6 .elementor-button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -10px rgb(12 83 149 / .7) !important;
}
/* Solid blue buttons */
.elementor-kit-6 .elementor-widget-button:not(.elementor-element-994e11c) .elementor-button {
  background-color: var(--rf-blue) !important;
  color: #fff !important;
}
.elementor-kit-6 .elementor-widget-button:not(.elementor-element-994e11c) .elementor-button:hover {
  background-color: var(--rf-blue-dark) !important;
}
/* Outline button on dark photos ("Learn More" in the hero) */
.elementor-kit-6 .elementor-element-994e11c .elementor-button {
  background: rgb(255 255 255 / .06) !important;
  border-color: rgb(255 255 255 / .85) !important;
  color: #fff !important;
  box-shadow: none !important;
  backdrop-filter: blur(4px);
}
.elementor-kit-6 .elementor-element-994e11c .elementor-button:hover { background: #fff !important; color: var(--rf-blue) !important; }
/* Text links styled as buttons ("Learn More ->" in cards) */
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) .elementor-widget-button .elementor-button {
  background: none !important;
  box-shadow: none !important;
  padding: .25em 0 !important;
  color: var(--rf-blue) !important;
  font-size: .95rem !important;
  letter-spacing: .01em !important;
  text-transform: none;
}
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) .elementor-widget-button .elementor-button:hover { transform: none; }
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) .elementor-widget-button .elementor-button-icon { transition: transform .25s var(--rf-ease); }
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) .elementor-widget-button .elementor-button:hover .elementor-button-icon,
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading):hover .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) .elementor-widget-button .elementor-button-icon { transform: translateX(4px); }

/* Form submit buttons */
.elementor-kit-6 .gform_wrapper :is(.gform_button, input[type="submit"], button[type="submit"]) {
  border: 0 !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  padding: 1em 1.75em !important;
  background-color: var(--rf-blue) !important;
  transition: background-color .2s, transform .25s var(--rf-ease) !important;
  cursor: pointer;
}
.elementor-kit-6 .gform_wrapper :is(.gform_button, input[type="submit"], button[type="submit"]):hover {
  background-color: var(--rf-blue-dark) !important;
  transform: translateY(-1px);
}

/* ---------- Form fields ---------- */
.elementor-kit-6 .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], select, textarea) {
  background: #f6f8fa !important;
  border: 1px solid var(--rf-line) !important;
  border-radius: var(--rf-radius-sm) !important;
  padding: .8em 1em !important;
  font-size: .95rem !important;
  color: var(--rf-ink) !important;
  min-height: 46px;
  transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.elementor-kit-6 .gform_wrapper :is(input, select, textarea):focus {
  outline: none !important;
  background: #fff !important;
  border-color: var(--rf-blue) !important;
  box-shadow: 0 0 0 3px rgb(12 83 149 / .15) !important;
}
.elementor-kit-6 .gform_wrapper :is(.gfield_label, .gform-field-label) {
  font-size: .85rem !important;
  font-weight: 600 !important;
  color: var(--rf-ink) !important;
}

/* ---------- Header ---------- */
.elementor-kit-6 .e-con:has(> .e-con > .elementor-widget-nav-menu) {
  box-shadow: 0 10px 30px -12px rgb(16 24 40 / .25);
}
.elementor-kit-6 .elementor-nav-menu--main .elementor-item {
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  padding-inline: 14px !important;
  position: relative;
}
.elementor-kit-6 .elementor-nav-menu--main .elementor-item::after {
  content: "" !important;
  position: absolute !important;
  left: 14px !important; right: 14px !important; bottom: 4px !important;
  height: 2px !important;
  background: var(--rf-green) !important;
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s var(--rf-ease) !important;
  opacity: 1 !important;
  width: auto !important;
}
.elementor-kit-6 .elementor-nav-menu--main .elementor-item:hover::after,
.elementor-kit-6 .elementor-nav-menu--main .elementor-item.elementor-item-active::after { transform: scaleX(1); }

/* Header size, the same on every page. The pages were built separately, so logo
 * and bar sizes differed (the Gallery logo was twice the size). */
.elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-mobile:has(.elementor-widget-nav-menu) .elementor-widget-image img {
  width: auto !important;
  max-width: none !important;
  height: 64px !important;
  object-fit: contain;
}
@media (max-width: 767px) {
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child { --padding-top: 12px !important; }
  /* Green "Follow Us" strip */
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-desktop:has(> .elementor-widget-heading + .elementor-widget-icon) {
    --padding-top: 6px !important; --padding-bottom: 6px !important;
    --padding-left: 16px !important; --padding-right: 16px !important;
    --min-height: 0px !important; min-height: 0 !important;
    align-items: center !important;
  }
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-desktop:has(> .elementor-widget-heading + .elementor-widget-icon) h2.elementor-heading-title {
    font-size: .875rem !important; line-height: 1.2 !important;
  }
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-desktop:has(> .elementor-widget-heading + .elementor-widget-icon) .elementor-icon {
    font-size: 20px !important;
  }
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-desktop:has(> .elementor-widget-heading + .elementor-widget-icon) .elementor-icon svg {
    width: 20px !important; height: 20px !important;
  }
  /* White bar: phone icon, logo, menu */
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-desktop:has(.elementor-widget-image) {
    --padding-top: 8px !important; --padding-bottom: 8px !important;
    --padding-left: 16px !important; --padding-right: 16px !important;
    --min-height: 0px !important; min-height: 0 !important;
  }
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-desktop:has(.elementor-widget-image) .elementor-widget-image {
    width: auto !important; max-width: none !important; --container-widget-width: auto !important;
  }
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-desktop:has(.elementor-widget-image) .elementor-widget-image img {
    width: auto !important; max-width: none !important; height: 44px !important; object-fit: contain;
  }
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-desktop:has(.elementor-widget-image) .elementor-icon { font-size: 24px !important; }
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-desktop:has(.elementor-widget-image) .elementor-icon svg { width: 24px !important; height: 24px !important; }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-mobile:has(.elementor-widget-nav-menu) .elementor-button { white-space: nowrap; font-size: .78rem !important; padding: .85em 1.2em !important; }
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-mobile:has(.elementor-widget-nav-menu) .elementor-widget-nav-menu { margin-right: 12px; }
  .elementor-kit-6 [data-elementor-type="wp-post"] > .e-con:first-child .e-con.elementor-hidden-mobile .elementor-widget-text-editor:has(a[href^="tel:"]) { font-size: .8125rem !important; white-space: nowrap; }
}

/* ---------- Cards ---------- */
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading),
.elementor-kit-6 .e-con:has(> .elementor-widget-icon + .elementor-widget-heading + .elementor-widget-text-editor) {
  border-radius: var(--rf-radius) !important;
  --border-radius: var(--rf-radius) !important;
  box-shadow: var(--rf-shadow) !important;
  transition: transform .35s var(--rf-ease), box-shadow .35s var(--rf-ease) !important;
}
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading):hover,
.elementor-kit-6 .e-con:has(> .elementor-widget-icon + .elementor-widget-heading + .elementor-widget-text-editor):hover {
  transform: translateY(-4px);
  box-shadow: var(--rf-shadow-hover) !important;
}
/* Service cards: equal photo heights */
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) .elementor-widget-image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: calc(var(--rf-radius) - 6px) !important;
  transition: transform .6s var(--rf-ease);
}
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) .elementor-widget-image { overflow: hidden; border-radius: calc(var(--rf-radius) - 6px); }
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading):hover .elementor-widget-image img { transform: scale(1.04); }
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) .elementor-widget-icon { position: relative; z-index: 1; }
.elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading) { justify-content: flex-start !important; }

/* Gallery page: every photo the same 4:3 frame (portrait shots were narrower) */
.elementor-1362 > .e-con:not(:first-child) .elementor-widget-image a { display: block; overflow: hidden; border-radius: 12px; box-shadow: var(--rf-shadow); }
.elementor-1362 > .e-con:not(:first-child) .elementor-widget-image img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px !important;
  box-shadow: none !important;
  transition: transform .6s var(--rf-ease), filter .3s;
}
.elementor-1362 > .e-con:not(:first-child) .elementor-widget-image a:hover img { transform: scale(1.04); }

/* ---------- FAQ ---------- */
.elementor-kit-6 .elementor-toggle .elementor-tab-title {
  border-radius: 12px !important;
  transition: background-color .2s, border-color .2s;
}
.elementor-kit-6 .elementor-toggle .elementor-tab-title:hover { background-color: var(--rf-soft); }
.elementor-kit-6 .elementor-toggle .elementor-toggle-title { font-size: 1rem !important; font-weight: 600 !important; }

/* ---------- Footer ---------- */
.elementor-kit-6 [data-elementor-type="footer"] h2.elementor-heading-title {
  font-size: 1.125rem !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}
.elementor-kit-6 [data-elementor-type="footer"] :is(.elementor-widget-text-editor, .elementor-icon-list-text) {
  font-size: .95rem !important;
  line-height: 1.9 !important;
}
.elementor-kit-6 [data-elementor-type="footer"] a { transition: color .2s, opacity .2s; }
.elementor-kit-6 [data-elementor-type="footer"] .elementor-widget-text-editor a:hover { color: var(--rf-green) !important; }

/* ---------- Light motion ----------
 * Elementor's entrance effects slid elements in from a full screen away.
 * Same names, much shorter moves. */
.elementor-kit-6 .animated { animation-duration: .8s !important; animation-timing-function: var(--rf-ease) !important; }
@keyframes fadeInLeft  { from { opacity: 0; transform: translate3d(-24px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes fadeInRight { from { opacity: 0; transform: translate3d(24px, 0, 0); }  to { opacity: 1; transform: none; } }
@keyframes fadeInUp    { from { opacity: 0; transform: translate3d(0, 20px, 0); }  to { opacity: 1; transform: none; } }
@keyframes fadeInDown  { from { opacity: 0; transform: translate3d(0, -16px, 0); } to { opacity: 1; transform: none; } }

/* Scroll reveal for cards (refresh.js adds .rf-reveal / .rf-in) */
.rf-js .rf-reveal { opacity: 0; transform: translate3d(0, 18px, 0); }
.rf-js .rf-reveal.rf-in {
  opacity: 1; transform: none;
  transition: opacity .7s var(--rf-ease), transform .7s var(--rf-ease), box-shadow .35s var(--rf-ease);
  transition-delay: var(--rf-delay, 0ms);
}
.rf-js .rf-reveal.rf-in:hover { transition-delay: 0ms; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .elementor-kit-6 *, .elementor-kit-6 *::before, .elementor-kit-6 *::after {
    animation-duration: .01ms !important; transition-duration: .01ms !important;
  }
  .rf-js .rf-reveal { opacity: 1; transform: none; }
}

/* ---------- Tablet & phone ---------- */
@media (max-width: 1024px) {
  .elementor-kit-6 .elementor-button { font-size: .875rem !important; }
}
@media (max-width: 767px) {
  .elementor-kit-6 .elementor-widget-text-editor { font-size: 1rem !important; }
  .elementor-kit-6 .e-con:has(> .elementor-widget-image + .elementor-widget-icon + .elementor-widget-heading):hover,
.elementor-kit-6 .e-con:has(> .elementor-widget-icon + .elementor-widget-heading + .elementor-widget-text-editor):hover { transform: none; }
}
