/**
 * Loaded AFTER Elementor frontend CSS — final overrides for all pages.
 * Do not patch sections one-by-one; fix patterns here.
 */

/* Content always visible (fade-up is progressive enhancement only) */
.design-2 .fade-up {
  opacity: 1 !important;
  transform: none !important;
}

/* Homepage + inner: section spacing (Elementor zeroes padding vars) */
.design-2 .e-con.intro,
.design-2 .e-con.services,
.design-2 .e-con.why,
.design-2 .e-con.process,
.design-2 .e-con.benefits,
.design-2 .e-con.gallery,
.design-2 .e-con.area,
.design-2 .e-con.reviews,
.design-2 .e-con.fll-page-section,
.design-2 .e-con.fll-el-section {
  padding-top: 6rem !important;
  padding-bottom: 6rem !important;
}

.design-2 .e-con.problems,
.design-2 .e-con.problems.fll-page-section,
.design-2 .e-con.problems.fll-el-section {
  padding-top: 6rem !important;
  padding-bottom: 6rem !important;
  background-color: var(--green-dark) !important;
  color: var(--white) !important;
  position: relative;
  overflow: hidden;
}

.design-2 .e-con.problems::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -20%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(107, 158, 62, 0.15) 0%, transparent 70%);
  pointer-events: none;
}

.design-2 .e-con.why {
  background-color: var(--green-pale) !important;
}

.design-2 .e-con.process {
  background-color: var(--cream) !important;
}

.design-2 .e-con.contact {
  padding-top: 6rem !important;
  padding-bottom: 6rem !important;
  background-color: var(--green-pale) !important;
}

.fll-inner-page .e-con.contact {
  padding-top: 1.5rem !important;
  padding-bottom: 5rem !important;
}

/* Dark section typography (home + inner) */
.design-2 .e-con.problems .section-label,
.design-2 .e-con.problems .section-title .elementor-heading-title,
.design-2 .e-con.problems .problems-header .section-title .elementor-heading-title {
  color: var(--white) !important;
}

.design-2 .e-con.problems .section-label {
  color: var(--green-accent) !important;
}

.design-2 .e-con.problems .section-desc,
.design-2 .e-con.problems .problems-header .elementor-widget-text-editor,
.design-2 .e-con.problems .problems-header p {
  color: rgba(255, 255, 255, 0.88) !important;
}

.design-2 .e-con.contact-info .section-label {
  color: var(--green-accent) !important;
}

.design-2 .e-con.contact-info .section-title .elementor-heading-title {
  color: var(--white) !important;
}

.design-2 .e-con.area .section-label {
  color: var(--green-accent) !important;
}

/* Grid shells: target Elementor .e-con-inner children (not direct .e-con) */
.design-2 .e-con.intro-grid > .e-con-inner > .e-con,
.design-2 .e-con.why-grid > .e-con-inner > .e-con,
.design-2 .e-con.why-cards > .e-con-inner > .e-con,
.design-2 .e-con.footer-grid > .e-con-inner > .e-con,
.design-2 .e-con.footer-bar-inner > .e-con-inner > .e-con,
.design-2 .e-con.hero-v2-strip-card > .e-con-inner > .e-con,
.design-2 .e-con.fll-feature-grid > .e-con-inner > .e-con,
.design-2 .e-con.fll-service-row > .e-con-inner > .e-con,
.design-2 .e-con.hero-v2-layout > .e-con-inner > .e-con,
.design-2 .e-con.hero-v2-layout--inner > .e-con-inner > .e-con,
.design-2 .e-con[class*="-grid"] > .e-con-inner > .elementor-widget-html,
.design-2 .e-con[class*="-row"] > .e-con-inner > .elementor-widget-html,
.design-2 .e-con.fll-split-list > .e-con-inner > .elementor-widget-html,
.design-2 .e-con.intro-features > .e-con-inner > .e-con {
  width: auto !important;
  max-width: none !important;
  flex: unset !important;
  --width: initial !important;
  --flex-grow: initial !important;
  --flex-basis: initial !important;
}

/* Legacy styles-base grids target class names on Elementor .e-con — reset outer shell */
.design-2 .e-con.intro-grid,
.design-2 .e-con.why-grid,
.design-2 .e-con.why-cards,
.design-2 .e-con.benefits-layout,
.design-2 .e-con.benefits-list,
.design-2 .e-con.process-steps,
.design-2 .e-con.problems-grid,
.design-2 .e-con.fll-feature-grid,
.design-2 .e-con.fll-service-row,
.design-2 .e-con.fll-split-list,
.design-2 .e-con.gallery-grid,
.design-2 .e-con.footer-grid,
.design-2 .e-con.footer-bar-inner {
  display: block !important;
  grid-template-columns: unset !important;
}

/* Intro / split sections — 2-col grid lives on .e-con-inner */
.design-2 .e-con.intro-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 2rem !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
  --width: 100% !important;
}

.design-2 .e-con.intro-grid > .e-con-inner > .e-con.intro-image {
  align-self: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  display: flex !important;
}

.design-2 .e-con.intro-grid > .e-con-inner > .e-con.intro-content,
.design-2 .e-con.intro-grid > .e-con-inner > .e-con.intro-content-lead {
  align-self: start !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
}

.design-2 .e-con.intro-grid > .e-con-inner > .e-con.intro-content-full {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-top: 0 !important;
  padding-top: 0.5rem !important;
}

.design-2 .e-con.intro-image > .e-con-inner {
  padding: 0 !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
}

.design-2 .e-con.intro-image .elementor-widget-image,
.design-2 .e-con.intro-image .elementor-widget-image .elementor-widget-container {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
}

.design-2 .e-con.intro-image img,
.design-2 .e-con.intro-image .elementor-widget-image img {
  width: 100% !important;
  height: 100% !important;
  min-height: 280px !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  display: block !important;
}

.design-2 .e-con.intro-content-lead .fll-prose,
.design-2 .e-con.intro-content-lead .fll-prose-lead,
.fll-inner-page .e-con.intro-content-lead .fll-prose,
.fll-inner-page .e-con.intro-content-lead .elementor-widget-text-editor {
  max-width: none !important;
  width: 100% !important;
}

.design-2 .e-con.intro-grid--reverse > .e-con-inner > .e-con.intro-content,
.design-2 .e-con.intro-grid--reverse > .e-con-inner > .e-con.intro-content-lead {
  order: 1 !important;
}

.design-2 .e-con.intro-grid--reverse > .e-con-inner > .e-con.intro-image {
  order: 2 !important;
}

.design-2 .e-con.intro-grid--reverse > .e-con-inner > .e-con.intro-content-full {
  order: 3 !important;
  grid-column: 1 / -1 !important;
}

.design-2 .e-con.intro-content-full {
  width: 100% !important;
  max-width: 100% !important;
  margin-top: 0.5rem !important;
}

.design-2 .e-con.intro-content-lead > .e-con-inner,
.design-2 .e-con.intro-content-lead .fll-prose-lead {
  height: auto !important;
}

.design-2 .e-con.intro-content-full > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.intro-content-full .fll-prose,
.design-2 .e-con.intro-content-full .fll-prose-full,
.fll-inner-page .e-con.fll-el-section .e-con.intro-content-full .fll-prose,
.fll-inner-page .e-con.fll-el-section .e-con.intro-content-full .fll-prose-full {
  max-width: none !important;
  width: 100% !important;
}

.design-2 .e-con.intro-content-full .elementor-widget-text-editor,
.fll-inner-page .e-con.intro-content-full .elementor-widget-text-editor {
  max-width: none !important;
  width: 100% !important;
}

.design-2 .e-con.intro-content-full > .e-con-inner {
  gap: 1.25rem !important;
}

.design-2 .e-con.fll-check-list-grid,
.fll-inner-page .e-con.fll-check-list-grid {
  width: 100% !important;
  max-width: none !important;
}

.design-2 .e-con.fll-check-list-grid > .e-con-inner,
.fll-inner-page .e-con.fll-check-list-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1rem 3rem !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}

.design-2 .e-con.fll-check-list-col,
.design-2 .e-con.fll-check-list-col > .e-con-inner,
.fll-inner-page .e-con.fll-check-list-col,
.fll-inner-page .e-con.fll-check-list-col > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 0 !important;
}

.design-2 .e-con.fll-check-list-col .elementor-widget-icon-list,
.fll-inner-page .e-con.fll-check-list-col .elementor-widget-icon-list {
  width: 100% !important;
  max-width: none !important;
}

@media (max-width: 768px) {
  .design-2 .e-con.fll-check-list-grid > .e-con-inner,
  .fll-inner-page .e-con.fll-check-list-grid > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
}

.design-2 .e-con.intro-content > .e-con-inner,
.design-2 .e-con.intro-content-lead > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
  padding: 0 !important;
}

.design-2 .e-con.intro-image > .e-con-inner {
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
}

@media (max-width: 1024px) {
  .design-2 .e-con.intro-grid > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
  }

  .design-2 .e-con.intro-grid > .e-con-inner > .e-con.intro-image {
    align-self: start !important;
  }
}

/* Homepage problem cards (e-con children) */
.design-2 .e-con.problems-grid > .e-con-inner > .e-con.problem-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.875rem !important;
  padding: 1.125rem 1.25rem !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: var(--radius) !important;
  color: var(--white) !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
}

.design-2 .e-con.problems-grid {
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.problems-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1rem !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
  justify-items: stretch !important;
}

.design-2 .e-con.problems-grid > .e-con-inner > .elementor-widget-html {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: unset !important;
}

@media (max-width: 1024px) {
  .design-2 .e-con.problems-grid > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  .design-2 .e-con.problems-grid > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
}

/* Inner pages: checklist items are HTML widgets inside .e-con-inner */
.design-2 .e-con.problems-grid > .e-con-inner > .elementor-widget-html .problem-item {
  display: flex !important;
  align-items: center !important;
  gap: 0.875rem !important;
  padding: 1.125rem 1.25rem !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: var(--radius) !important;
  color: var(--white) !important;
  font-size: 0.9375rem !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  box-sizing: border-box !important;
}

.design-2 .e-con.problems-grid > .e-con-inner > .elementor-widget-html .problem-item svg {
  flex-shrink: 0 !important;
  width: 20px !important;
  height: 20px !important;
  color: var(--green-accent) !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
}

/* Inner page feature / service row grids (HTML widgets) */
.design-2 .e-con.fll-feature-grid > .e-con-inner,
.design-2 .e-con.fll-service-row > .e-con-inner {
  display: grid !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
  justify-items: stretch !important;
}

.design-2 .e-con.fll-feature-grid > .e-con-inner {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1rem !important;
}

.design-2 .e-con.fll-service-row > .e-con-inner {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0.75rem !important;
}

.design-2 .e-con.fll-feature-grid > .e-con-inner > .e-con,
.design-2 .e-con.fll-service-row > .e-con-inner > .e-con,
.design-2 .e-con.fll-feature-grid > .e-con-inner > .elementor-widget-html,
.design-2 .e-con.fll-service-row > .e-con-inner > .elementor-widget-html {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: unset !important;
}

.design-2 .e-con.fll-split-list > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 2.5rem !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
}

.design-2 .e-con.fll-split-list > .e-con-inner > .elementor-widget-icon-list,
.design-2 .e-con.fll-split-list > .e-con-inner > .e-con.fll-split-list__text,
.design-2 .e-con.fll-split-list > .e-con-inner > .elementor-widget-html {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: unset !important;
}

@media (max-width: 1024px) {
  .design-2 .e-con.fll-feature-grid > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .design-2 .e-con.fll-service-row > .e-con-inner {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .design-2 .e-con.fll-split-list > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 768px) {
  .design-2 .e-con.fll-feature-grid > .e-con-inner,
  .design-2 .e-con.fll-service-row > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
}

/* Process steps — 4-col timeline on .e-con-inner (auto-adjusts for 3 or 5 steps) */
.design-2 .e-con.process-steps::before {
  display: none !important;
  content: none !important;
}

.design-2 .e-con.process-steps > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  position: relative !important;
}

/* Exactly 3 steps */
.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(3):last-child) {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(3):last-child)::before {
  left: 16.67% !important;
  right: 16.67% !important;
}

/* Exactly 5 steps — one row, no orphaned fifth column */
.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(5):last-child) {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0.5rem !important;
}

.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(5):last-child)::before {
  left: 10% !important;
  right: 10% !important;
}

.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(5):last-child) > .e-con.process-step {
  padding: 0 0.5rem !important;
}

.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(5):last-child) .step-number {
  width: 64px !important;
  height: 64px !important;
  font-size: 1.25rem !important;
  margin-bottom: 1.25rem !important;
}

.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(5):last-child) .elementor-heading-title {
  font-size: 0.9375rem !important;
}

.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(5):last-child) .elementor-widget-text-editor p {
  font-size: 0.8125rem !important;
  line-height: 1.55 !important;
}

.design-2 .e-con.process-steps > .e-con-inner::before {
  content: "" !important;
  position: absolute;
  top: 36px;
  left: 12.5%;
  right: 12.5%;
  height: 2px;
  background: linear-gradient(90deg, var(--green-pale), var(--green-light), var(--green-pale));
  pointer-events: none;
  z-index: 0;
}

.design-2 .e-con.process-steps > .e-con-inner > .e-con.process-step {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  text-align: center !important;
  padding: 0 1rem !important;
  position: relative !important;
  z-index: 1 !important;
}

@media (max-width: 1024px) {
  .design-2 .e-con.process-steps > .e-con-inner {
    grid-template-columns: 1fr 1fr !important;
    gap: 2rem !important;
  }

  .design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(5):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.5rem !important;
  }

  .design-2 .e-con.process-steps > .e-con-inner::before {
    display: none !important;
    content: none !important;
  }
}

@media (max-width: 768px) {
  .design-2 .e-con.process-steps > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
}

/* Benefits — centered header + 2-col card grid */
.design-2 .e-con.benefits .services-header {
  margin-bottom: 2.5rem !important;
}

.design-2 .e-con.benefits .services-header > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  gap: 0.75rem !important;
  padding: 0 !important;
}

.design-2 .e-con.benefits .services-header .section-desc {
  margin-inline: auto !important;
  max-width: 42rem !important;
}

.design-2 .e-con.benefits-list {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* e-con-full: benefit cards are direct children (no .e-con-inner wrapper) */
.design-2 .e-con.benefits-list.e-con-full {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

.design-2 .e-con.benefits-list > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

.design-2 .e-con.benefit-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 1rem !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  padding: 1.25rem !important;
  background: var(--cream) !important;
  border-radius: var(--radius) !important;
  border: 1px solid var(--border) !important;
  transition: var(--transition, 0.2s ease) !important;
}

.design-2 .e-con.benefit-item:hover {
  box-shadow: var(--shadow-md) !important;
  border-color: rgba(107, 158, 62, 0.2) !important;
}

.design-2 .e-con.benefit-item > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 1.25rem !important;
  width: 100% !important;
  padding: 0 !important;
}

.design-2 .e-con.benefit-item > .e-con-inner > .elementor-widget:first-child {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: 3rem !important;
}

.design-2 .e-con.benefit-item > .e-con-inner > .e-con {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.design-2 .e-con.benefit-item .benefit-number {
  display: block !important;
  flex-shrink: 0 !important;
  font-family: var(--font-display) !important;
  font-size: 1.65rem !important;
  font-weight: 600 !important;
  color: var(--green-light) !important;
  line-height: 1 !important;
}

.design-2 .e-con.benefit-item .elementor-heading-title {
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: var(--green-dark) !important;
  margin-bottom: 0.3rem !important;
}

.design-2 .e-con.benefit-item .elementor-widget-text-editor p {
  font-size: 0.8125rem !important;
  color: var(--text-muted) !important;
  line-height: 1.55 !important;
  margin: 0 !important;
}

.design-2 .e-con.benefits .fll-section-cta,
.design-2 .e-con.benefits .fll-section-cta > .e-con-inner,
.design-2 .e-con.benefits .fll-home-cta,
.design-2 .e-con.benefits .fll-home-cta > .e-con-inner {
  justify-content: center !important;
  margin-top: 2rem !important;
  width: 100% !important;
}

@media (max-width: 719px) {
  .design-2 .e-con.benefits-list.e-con-full,
  .design-2 .e-con.benefits-list > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
}

/* Elementor buttons — wrapper has .btn class but only the link should look like a button */
.design-2 .elementor-widget.elementor-widget-button.btn,
.design-2 .elementor-widget.elementor-widget-button.btn-primary,
.design-2 .elementor-widget.elementor-widget-button.btn-secondary,
.design-2 .elementor-widget.elementor-widget-button.btn-outline,
.design-2 .elementor-widget.elementor-widget-button.btn-glow,
.design-2 .elementor-widget.elementor-widget-button.btn-glass,
.design-2 .elementor-widget.elementor-widget-button.hero-v2-strip-link {
  display: block !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  width: auto !important;
  min-height: 0 !important;
  gap: 0 !important;
  cursor: default !important;
  transform: none !important;
  letter-spacing: normal !important;
  font-weight: inherit !important;
}

.design-2 .elementor-widget.elementor-widget-button.btn .elementor-button,
.design-2 .elementor-widget.elementor-widget-button.btn-primary .elementor-button,
.design-2 .elementor-widget.elementor-widget-button.btn-secondary .elementor-button {
  cursor: pointer !important;
}

/* Service card — full-width Learn More pill */
.design-2 .e-con.service-card .elementor-widget-button.btn-secondary {
  margin-top: auto !important;
  padding-top: 1.25rem !important;
  width: 100% !important;
}

.design-2 .e-con.service-card .elementor-widget-button.btn-secondary .elementor-button {
  display: flex !important;
  width: 100% !important;
  justify-content: center !important;
  padding: 0.75rem 1.25rem !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  background: var(--white) !important;
  color: var(--green-dark) !important;
  border: 1px solid var(--border) !important;
  border-radius: 100px !important;
  box-shadow: var(--shadow-sm) !important;
  line-height: 1.3 !important;
}

.design-2 .e-con.service-card .elementor-widget-button.btn-secondary .elementor-button:hover {
  background: var(--green-pale) !important;
  border-color: rgba(107, 158, 62, 0.35) !important;
  transform: translateY(-2px) !important;
  box-shadow: var(--shadow-md) !important;
}

/* Why cards — inner-page h3_blocks (benefits, why choose, etc.) */
.design-2 .e-con.why-cards {
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.why-cards > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
  justify-items: stretch !important;
}

.design-2 .e-con.why-cards > .e-con-inner > .e-con.why-card {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  flex: unset !important;
  padding: 1.75rem !important;
  background: var(--white) !important;
  border-radius: var(--radius) !important;
  border: 1px solid var(--border) !important;
  box-sizing: border-box !important;
}

.design-2 .e-con.why-card > .e-con-inner {
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.75rem !important;
}

.design-2 .e-con.why-card > .e-con-inner > .elementor-widget-icon-box.why-card-icon {
  flex: 0 0 auto !important;
  width: auto !important;
  align-self: flex-start !important;
}

/* Why cards — icon-only chip; title/body are sibling widgets */
.design-2 .why-card .elementor-widget-icon-box.why-card-icon {
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  flex: 0 0 auto !important;
  align-self: flex-start !important;
  background: none !important;
}

.design-2 .why-card .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  width: auto !important;
  gap: 0 !important;
}

.design-2 .why-card .elementor-icon-box-icon {
  flex-shrink: 0 !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--green-mid) !important;
  border-radius: 12px !important;
  color: var(--white) !important;
  margin: 0 0 1rem !important;
  overflow: visible !important;
}

.design-2 .why-card .elementor-icon-box-icon .elementor-icon {
  width: 24px !important;
  height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--white) !important;
}

.design-2 .why-card .elementor-icon-box-icon svg,
.design-2 .why-card .elementor-icon-box-icon i {
  width: 24px !important;
  height: 24px !important;
  font-size: 22px !important;
  line-height: 1 !important;
  color: var(--white) !important;
  fill: currentColor !important;
}

.design-2 .e-con.why-card .elementor-icon-box-content {
  display: none !important;
}

.design-2 .e-con.why-card > .e-con-inner > .elementor-widget-heading {
  width: 100% !important;
  margin: 0 !important;
}

.design-2 .e-con.why-card .elementor-widget-heading .elementor-heading-title {
  font-size: 1.0625rem !important;
  font-weight: 600 !important;
  color: var(--green-dark) !important;
  margin: 0 0 0.5rem !important;
  line-height: 1.3 !important;
}

.design-2 .e-con.why-card .elementor-widget-text-editor p {
  font-size: 0.9375rem !important;
  color: var(--text-muted) !important;
  line-height: 1.65 !important;
  margin: 0 !important;
}

.design-2 .e-con.why-card .elementor-icon-box-icon svg path {
  fill: currentColor !important;
  stroke: none !important;
}

.design-2 .e-con.why-card > .e-con-inner > .elementor-widget-icon-box.why-card-icon {
  flex: 0 0 auto !important;
  width: auto !important;
  align-self: flex-start !important;
}

@media (max-width: 768px) {
  .design-2 .e-con.why-cards > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
}

/* Gallery — Elementor Basic Gallery widget + masonry grid */
.design-2 .e-con.gallery-grid {
  display: block !important;
  --padding-top: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  --padding-right: 0 !important;
  padding: 0 !important;
}

.design-2 .e-con.gallery-grid > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  gap: 0 !important;
}

.design-2 .e-con.gallery-grid .elementor-widget-image-gallery {
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.gallery-grid .elementor-image-gallery {
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.gallery-grid .elementor-image-gallery .gallery {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  grid-auto-rows: 220px !important;
  gap: 1rem !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.design-2 .e-con.gallery-grid .elementor-image-gallery .gallery-item {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: var(--radius) !important;
  overflow: hidden !important;
  position: relative !important;
  box-shadow: var(--shadow-sm) !important;
}

.design-2 .e-con.gallery-grid .elementor-image-gallery .gallery-item:nth-child(1) {
  grid-column: span 2 !important;
  grid-row: span 2 !important;
}

.design-2 .e-con.gallery-grid .elementor-image-gallery .gallery-item:nth-child(4) {
  grid-column: span 2 !important;
}

.design-2 .e-con.gallery-grid .elementor-image-gallery .gallery-icon,
.design-2 .e-con.gallery-grid .elementor-image-gallery .gallery-icon a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  line-height: 0 !important;
}

.design-2 .e-con.gallery-grid .elementor-image-gallery .gallery-item img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.5s ease !important;
}

.design-2 .e-con.gallery-grid .elementor-image-gallery .gallery-item:hover img {
  transform: scale(1.05) !important;
}

/* Legacy per-item containers (older builds) */
.design-2 .e-con.gallery-grid > .e-con-inner > .e-con.gallery-item {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border-radius: var(--radius) !important;
}

.design-2 .e-con.gallery-grid > .e-con-inner > .e-con.gallery-item:nth-child(1) {
  grid-column: span 2 !important;
  grid-row: span 2 !important;
}

.design-2 .e-con.gallery-grid > .e-con-inner > .e-con.gallery-item:nth-child(4) {
  grid-column: span 2 !important;
}

.design-2 .e-con.gallery-item .elementor-widget-image,
.design-2 .e-con.gallery-item .elementor-widget-image img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

@media (max-width: 1024px) {
  .design-2 .e-con.gallery-grid .elementor-image-gallery .gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: 200px !important;
  }

  .design-2 .e-con.gallery-grid .elementor-image-gallery .gallery-item:nth-child(1),
  .design-2 .e-con.gallery-grid .elementor-image-gallery .gallery-item:nth-child(4) {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
  }
}

@media (max-width: 640px) {
  .design-2 .e-con.gallery-grid .elementor-image-gallery .gallery {
    grid-template-columns: 1fr !important;
  }
}

/* Service area band */
.design-2 .e-con.area {
  background: linear-gradient(135deg, var(--green-mid) 0%, var(--green-dark) 100%) !important;
  color: var(--white) !important;
  text-align: center !important;
}

.design-2 .e-con.area > .e-con-inner,
.design-2 .e-con.area .fade-up > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.area .elementor-widget-heading:not(.area-tag),
.design-2 .e-con.area .elementor-widget-text-editor,
.design-2 .e-con.area .elementor-widget-html {
  width: 100% !important;
  text-align: center !important;
}

.design-2 .e-con.area .elementor-widget-heading.area-tag {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
}

.design-2 .e-con.area .section-label,
.design-2 .e-con.area .section-label .elementor-heading-title {
  text-align: center !important;
  color: var(--green-accent) !important;
}

.design-2 .e-con.area .section-title .elementor-heading-title {
  color: var(--white) !important;
  text-align: center !important;
}

.design-2 .e-con.area .elementor-widget-text-editor p,
.design-2 .e-con.area .elementor-widget-text-editor.section-desc,
.design-2 .e-con.area .elementor-widget-text-editor.section-desc .elementor-widget-container {
  font-size: 1.125rem !important;
  color: rgba(255, 255, 255, 0.88) !important;
  max-width: 700px !important;
  margin-inline: auto !important;
  text-align: center !important;
  line-height: 1.75 !important;
}

.design-2 .e-con.area .area-tags,
.design-2 .e-con.area .e-con.area-tags,
.design-2 .e-con.area .e-con.area-tags > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.75rem !important;
  margin-top: 2rem !important;
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.area .area-tag,
.design-2 .e-con.area .elementor-widget-heading.area-tag .elementor-heading-title {
  display: inline-block !important;
  padding: 0.5rem 1.25rem !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 100px !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  color: var(--white) !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

.design-2 .e-con.area .elementor-widget-heading.area-tag .elementor-heading-title a {
  color: inherit !important;
  text-decoration: none !important;
}

.design-2 .e-con.area .elementor-widget-heading.area-tag .elementor-heading-title a:hover {
  color: inherit !important;
}

.design-2 .e-con.area .elementor-widget-heading.area-tag:hover .elementor-heading-title {
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
}

.design-2 .e-con.area .fll-section-cta,
.design-2 .e-con.area .fll-section-cta > .e-con-inner {
  justify-content: center !important;
  width: 100% !important;
}

/* Contact — 2-col split (info left, form right) */
.design-2 .e-con.contact-wrapper {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  background: var(--white) !important;
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  box-shadow: var(--shadow-lg) !important;
  border: 1px solid var(--border) !important;
  --padding-top: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  --padding-right: 0 !important;
  padding: 0 !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
}

.design-2 .e-con.contact-wrapper > .e-con.contact-info,
.design-2 .e-con.contact-wrapper > .e-con.contact-form-wrap,
.design-2 .e-con.contact-wrapper > .e-con-inner > .e-con.contact-info,
.design-2 .e-con.contact-wrapper > .e-con-inner > .e-con.contact-form-wrap {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  align-self: stretch !important;
  flex: 1 1 auto !important;
  min-height: 100% !important;
  height: auto !important;
}

.design-2 .e-con.contact-info {
  padding: 3.5rem !important;
  background: var(--green-dark) !important;
  color: var(--white) !important;
}

.design-2 .e-con.contact-info > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 0 !important;
  width: 100% !important;
  min-height: 100% !important;
  height: 100% !important;
  padding: 0 !important;
}

.design-2 .e-con.contact-info .section-label {
  display: block !important;
  margin: 0 0 0.75rem !important;
}

.design-2 .e-con.contact-form-wrap {
  padding: 3.5rem !important;
  background: var(--white) !important;
}

.design-2 .e-con.contact-form-wrap > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 100% !important;
  height: 100% !important;
  padding: 0 !important;
}

.design-2 .e-con.contact-form-wrap .fll-ghl-form-embed {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

.design-2 .e-con.contact-info .elementor-widget-text-editor p {
  color: rgba(255, 255, 255, 0.75) !important;
}

.design-2 .e-con.contact-info .fll-contact-details-grid,
.design-2 .e-con.contact-info .fll-contact-details-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1rem !important;
  width: 100% !important;
}

/* Contact Us page — full-width 3-card row */
.fll-inner-page .e-con.fll-page-section--contact-details .fll-contact-details-grid,
.fll-inner-page .e-con.fll-page-section--contact-details .fll-contact-details-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
  width: 100% !important;
}

.design-2 .e-con.contact-info .e-con.fll-contact-detail-card,
.fll-inner-page .e-con.fll-page-section--contact-details .e-con.fll-contact-detail-card {
  width: 100% !important;
  min-width: 0 !important;
}

@media (max-width: 900px) {
  .design-2 .e-con.contact-info .fll-contact-details-grid,
  .design-2 .e-con.contact-info .fll-contact-details-grid > .e-con-inner,
  .fll-inner-page .e-con.fll-page-section--contact-details .fll-contact-details-grid,
  .fll-inner-page .e-con.fll-page-section--contact-details .fll-contact-details-grid > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .design-2 .e-con.contact-info .fll-contact-details-grid > .e-con.fll-contact-detail-card,
  .fll-inner-page .e-con.fll-page-section--contact-details .fll-contact-details-grid > .e-con.fll-contact-detail-card,
  .fll-inner-page .e-con.fll-page-section--contact-details .e-con.fll-contact-detail-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: 1 1 100% !important;
    --width: 100% !important;
  }

  .fll-inner-page .e-con.fll-page-section--contact-details,
  .fll-inner-page .e-con.fll-page-section--contact-details > .e-con-inner,
  .fll-inner-page .e-con.fll-page-section--contact-details .container {
    overflow-x: hidden !important;
    max-width: 100% !important;
  }
}

.design-2 .e-con.contact-info .e-con.fll-contact-detail-card > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 1rem !important;
  width: 100% !important;
  padding: 0 !important;
}

.design-2 .e-con.contact-info .elementor-widget-icon-box.fll-contact-detail-icon {
  flex: 0 0 auto !important;
  width: auto !important;
  background: none !important;
}

.design-2 .e-con.contact-info .fll-contact-detail-icon .elementor-icon-box-wrapper {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
}

.design-2 .e-con.contact-info .fll-contact-detail-icon .elementor-icon-box-icon {
  flex-shrink: 0 !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border-radius: 10px !important;
  color: var(--green-accent) !important;
  margin: 0 !important;
}

.design-2 .e-con.contact-info .fll-contact-detail-icon .elementor-icon-box-icon .elementor-icon,
.design-2 .e-con.contact-info .fll-contact-detail-icon .elementor-icon-box-icon i,
.design-2 .e-con.contact-info .fll-contact-detail-icon .elementor-icon-box-icon svg {
  width: 20px !important;
  height: 20px !important;
  font-size: 20px !important;
  color: var(--green-accent) !important;
  fill: currentColor !important;
}

.design-2 .e-con.contact-info .fll-contact-detail-icon .elementor-icon-box-content {
  display: none !important;
}

.design-2 .e-con.contact-info .fll-contact-detail-copy {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.design-2 .e-con.contact-info .fll-contact-detail-label .elementor-heading-title {
  display: block !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.55) !important;
  margin: 0 0 0.2rem !important;
}

.design-2 .e-con.contact-info .fll-contact-detail-value .elementor-heading-title {
  display: block !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--white) !important;
  line-height: 1.45 !important;
  margin: 0 !important;
}

.design-2 .e-con.contact-info .fll-contact-detail-value .elementor-heading-title,
.design-2 .e-con.contact-info .fll-contact-detail-value .elementor-heading-title a {
  color: inherit !important;
  text-decoration: none !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}

.design-2 .e-con.contact-info .fll-contact-detail-value .elementor-heading-title a:hover {
  color: var(--green-accent) !important;
}

.design-2 .e-con.contact-form-wrap .elementor-widget-shortcode {
  width: 100% !important;
  flex: 1 1 auto !important;
}

.design-2 .e-con.contact-form-wrap .elementor-widget-shortcode .elementor-widget-container {
  width: 100% !important;
}

.design-2 .e-con.contact-form-wrap .fll-ghl-form-embed {
  width: 100% !important;
  min-height: 432px !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

.design-2 .e-con.contact-form-wrap .fll-ghl-form-embed iframe {
  width: 100% !important;
  min-height: 432px !important;
  height: 432px !important;
  display: block !important;
  border: none !important;
  border-radius: 12px !important;
}

@media (max-width: 768px) {
  .fll-inner-page .e-con.contact,
  .fll-inner-page .e-con.contact > .e-con.container,
  .fll-inner-page .e-con.contact > .e-con.container > .e-con-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  .fll-inner-page .e-con.contact .e-con.container > .e-con-inner {
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: 1rem !important;
  }

  .design-2 .e-con.contact-wrapper,
  .design-2 .e-con.contact-wrapper > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .design-2 .e-con.contact-wrapper > .e-con.contact-info,
  .design-2 .e-con.contact-wrapper > .e-con.contact-form-wrap {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    --width: 100% !important;
    flex-grow: 0 !important;
    --flex-grow: 0 !important;
  }

  .design-2 .e-con.contact-info,
  .design-2 .e-con.contact-form-wrap {
    padding: 1.5rem 1.25rem !important;
    box-sizing: border-box !important;
  }

  .design-2 .e-con.contact-info > .e-con-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .design-2 .e-con.contact-info .fll-contact-details-grid {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 1rem !important;
    --flex-direction: column !important;
  }

  .design-2 .e-con.contact-info .e-con.fll-contact-detail-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
    flex-grow: 0 !important;
    --flex-grow: 0 !important;
    --width: 100% !important;
  }

  .design-2 .e-con.contact-info .e-con.fll-contact-detail-card > .e-con-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-inline: 0 !important;
  }

  .design-2 .e-con.contact-info .fll-contact-detail-copy,
  .design-2 .e-con.contact-info .fll-contact-detail-copy > .e-con-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* Intro features — full-width row below intro grid */
.design-2 .e-con.intro-features {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 1.5rem 2rem !important;
  margin-top: 2rem !important;
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.intro-features > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 1.5rem 2rem !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

.design-2 .e-con.intro-features > .e-con-inner > .e-con.intro-feature,
.design-2 .e-con.intro-features > .e-con.intro-feature {
  flex: 1 1 0 !important;
  min-width: min(100%, 280px) !important;
  width: auto !important;
  max-width: none !important;
}

.design-2 .e-con.intro-feature {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 1rem !important;
  height: auto !important;
  width: 100% !important;
}

.design-2 .e-con.intro-feature > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 1rem !important;
  width: 100% !important;
  height: auto !important;
}

.design-2 .e-con.intro-feature > .e-con-inner > .elementor-widget-icon-box.intro-feature-icon {
  flex: 0 0 auto !important;
  width: auto !important;
}

.design-2 .e-con.intro-feature > .e-con-inner > .e-con.intro-feature-copy {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* Legacy HTML icon chips only — not Elementor icon-box widgets */
.design-2 .service-card .elementor-widget-html .service-card-icon {
  width: 44px !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--green-pale) !important;
  border-radius: 12px !important;
  color: var(--green-mid) !important;
  margin: 0 0 1rem !important;
  flex-shrink: 0 !important;
}

.design-2 .service-card .elementor-widget-html .service-card-icon svg {
  width: 22px !important;
  height: 22px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
}

.design-2 .intro-feature-icon,
.design-2 .intro-feature .elementor-widget-html .intro-feature-icon {
  flex-shrink: 0 !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  display: block !important;
  background: none !important;
  border-radius: 0 !important;
  color: inherit !important;
}

.design-2 .intro-feature .elementor-widget-html .intro-feature-icon svg {
  width: 20px !important;
  height: 20px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
}

.design-2 .intro-feature-copy .elementor-heading-title {
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: var(--green-dark) !important;
  margin-bottom: 0.15rem !important;
}

.design-2 .intro-feature-copy .elementor-widget-text-editor p {
  font-size: 0.875rem !important;
  color: var(--text-muted) !important;
  margin: 0 !important;
}

/* HTML icon chip only (homepage why cards) — not the Elementor icon-box widget wrapper */
.design-2 .why-card .elementor-widget-html .why-card-icon {
  width: 48px !important;
  height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--green-mid) !important;
  border-radius: 12px !important;
  color: var(--white) !important;
  margin: 0 0 1rem !important;
  flex-shrink: 0 !important;
}

.design-2 .why-card .elementor-widget-html .why-card-icon svg {
  width: 24px !important;
  height: 24px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
}

/* Inner-page icon-box widget — wrapper transparent; green bg only on icon chip */
.design-2 .elementor-widget-icon-box.why-card-icon {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  color: inherit !important;
}

.design-2 .hero-v2-strip-icon,
.design-2 .hero-v2-strip-content .elementor-widget-html .hero-v2-strip-icon {
  flex-shrink: 0 !important;
  width: 48px !important;
  height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--green-pale) !important;
  border-radius: 14px !important;
  color: var(--green-dark) !important;
}

.design-2 .hero-v2-strip-icon svg {
  width: 22px !important;
  height: 22px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
}

/* Icon boxes — load after Elementor widget CSS (homepage + inner) */
.design-2 .elementor-widget-icon-box.intro-feature-icon,
.design-2 .elementor-widget-icon-box.service-card-icon,
.design-2 .elementor-widget-icon-box.why-card-icon,
.design-2 .elementor-widget-icon-box.problem-item-icon,
.design-2 .elementor-widget-icon-box.hero-v2-strip-icon {
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  flex: unset !important;
}

/* Hero strip shield */
.design-2 .hero-v2-strip-icon .elementor-icon-box-wrapper {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.design-2 .hero-v2-strip-icon .elementor-icon-box-icon {
  margin: 0 !important;
}

.design-2 .hero-v2-strip-icon .elementor-icon {
  width: 48px !important;
  height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--green-pale) !important;
  border-radius: 14px !important;
  color: var(--green-dark) !important;
}

.design-2 .hero-v2-strip-icon .elementor-icon svg,
.design-2 .hero-v2-strip-icon .elementor-icon svg path {
  width: 22px !important;
  height: 22px !important;
  fill: currentColor !important;
  stroke: none !important;
}

.design-2 .hero-v2-strip-icon .elementor-icon-box-title,
.design-2 .hero-v2-strip-icon .elementor-icon-box-description {
  display: none !important;
}

/* Intro features — icon-box is icon-only; copy lives in sibling widgets */
.design-2 .intro-feature .elementor-widget-icon-box.intro-feature-icon {
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  flex: 0 0 auto !important;
  align-self: flex-start !important;
}

.design-2 .intro-feature .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  width: auto !important;
}

.design-2 .intro-feature .elementor-icon-box-icon {
  flex-shrink: 0 !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--green-pale) !important;
  border-radius: 12px !important;
  color: var(--green-dark) !important;
  margin: 0 !important;
  overflow: visible !important;
}

.design-2 .intro-feature .elementor-icon-box-icon .elementor-icon {
  width: 22px !important;
  height: 22px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--green-dark) !important;
}

.design-2 .intro-feature .elementor-icon-box-icon svg,
.design-2 .intro-feature .elementor-icon-box-icon svg path,
.design-2 .intro-feature .elementor-icon-box-icon i {
  width: 22px !important;
  height: 22px !important;
  font-size: 22px !important;
  line-height: 1 !important;
  color: var(--green-dark) !important;
  fill: currentColor !important;
  stroke: none !important;
}

.design-2 .intro-feature .elementor-icon-box-content {
  display: none !important;
}

/* Service cards — icon-only box above title */
.design-2 .service-card-icon .elementor-icon-box-title,
.design-2 .service-card-icon .elementor-icon-box-description {
  display: none !important;
}

.design-2 .service-card .elementor-widget-icon-box.service-card-icon {
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  flex: 0 0 auto !important;
  align-self: flex-start !important;
  background: none !important;
}

.design-2 .e-con.service-card-body > .e-con-inner > .elementor-widget-icon-box.service-card-icon {
  flex: 0 0 auto !important;
  width: auto !important;
  align-self: flex-start !important;
}

.design-2 .service-card .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  width: auto !important;
}

.design-2 .service-card .elementor-icon-box-icon {
  flex-shrink: 0 !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--green-pale) !important;
  border-radius: 12px !important;
  color: var(--green-mid) !important;
  margin: 0 0 1rem !important;
  overflow: visible !important;
}

.design-2 .service-card .elementor-icon-box-icon .elementor-icon {
  width: 22px !important;
  height: 22px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.design-2 .service-card .elementor-icon-box-icon svg,
.design-2 .service-card .elementor-icon-box-icon i {
  width: 22px !important;
  height: 22px !important;
  font-size: 22px !important;
  line-height: 1 !important;
  fill: currentColor !important;
}

.design-2 .service-card .elementor-icon-box-content {
  display: none !important;
}

/* Problems checklist — icon + description text inside icon-box */
.design-2 .e-con.problems-grid > .e-con-inner > .e-con.problem-item > .e-con-inner {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  padding: 0 !important;
}

.design-2 .problem-item .elementor-widget-icon-box.problem-item-icon {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  flex: 1 1 auto !important;
  background: none !important;
}

.design-2 .problem-item .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.875rem !important;
  width: 100% !important;
}

.design-2 .problem-item .elementor-icon-box-icon {
  flex: 0 0 22px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  margin: 0 !important;
  color: var(--green-accent) !important;
  background: transparent !important;
  line-height: 0 !important;
  overflow: hidden !important;
}

.design-2 .problem-item .elementor-icon-box-icon .elementor-icon {
  width: 22px !important;
  height: 22px !important;
  color: var(--green-accent) !important;
}

.design-2 .problem-item .elementor-icon-box-icon svg,
.design-2 .problem-item .elementor-icon-box-icon i,
.design-2 .problem-item .elementor-icon-box-icon svg path {
  width: 22px !important;
  height: 22px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  color: var(--green-accent) !important;
  fill: currentColor !important;
  stroke: none !important;
}

.design-2 .problem-item .elementor-icon-box-title {
  display: none !important;
}

.design-2 .problem-item .elementor-icon-box-description {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  color: var(--white) !important;
  margin: 0 !important;
  line-height: 1.45 !important;
}

.design-2 .problem-item .elementor-icon-box-description p {
  margin: 0 !important;
  color: inherit !important;
}

/* Inner page dark grid items — feature grid + service row (icon-box checklist) */
.design-2 .e-con.fll-feature-grid > .e-con-inner > .e-con.fll-feature-grid-item,
.design-2 .e-con.fll-service-row > .e-con-inner > .e-con.fll-service-row-item,
.design-2 .e-con.fll-feature-grid-item,
.design-2 .e-con.fll-service-row-item {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: unset !important;
  height: auto !important;
  padding: 1rem 0.875rem !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: var(--radius) !important;
  box-sizing: border-box !important;
}

.design-2 .e-con.fll-feature-grid-item > .e-con-inner,
.design-2 .e-con.fll-service-row-item > .e-con-inner {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  height: auto !important;
}

.design-2 .fll-feature-grid-item .elementor-widget-icon-box,
.design-2 .fll-service-row-item .elementor-widget-icon-box {
  width: 100% !important;
  height: auto !important;
  background: none !important;
}

.design-2 .fll-feature-grid-item .elementor-icon-box-wrapper,
.design-2 .fll-service-row-item .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.75rem !important;
  width: 100% !important;
  height: auto !important;
}

.design-2 .fll-feature-grid-item .elementor-icon-box-icon,
.design-2 .fll-service-row-item .elementor-icon-box-icon {
  flex: 0 0 22px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  margin: 0 !important;
  color: var(--green-accent) !important;
  background: transparent !important;
  line-height: 0 !important;
  overflow: hidden !important;
}

.design-2 .fll-feature-grid-item .elementor-icon-box-icon .elementor-icon,
.design-2 .fll-service-row-item .elementor-icon-box-icon .elementor-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 22px !important;
  height: 22px !important;
  line-height: 0 !important;
}

.design-2 .fll-feature-grid-item .elementor-icon-box-icon svg,
.design-2 .fll-feature-grid-item .elementor-icon-box-icon svg path,
.design-2 .fll-feature-grid-item .elementor-icon-box-icon i,
.design-2 .fll-service-row-item .elementor-icon-box-icon svg,
.design-2 .fll-service-row-item .elementor-icon-box-icon svg path,
.design-2 .fll-service-row-item .elementor-icon-box-icon i {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  font-size: 16px !important;
  line-height: 1 !important;
  color: var(--green-accent) !important;
  fill: currentColor !important;
  stroke: none !important;
}

.design-2 .fll-feature-grid-item .elementor-icon-box-title,
.design-2 .fll-service-row-item .elementor-icon-box-title {
  display: none !important;
}

.design-2 .fll-feature-grid-item .elementor-icon-box-description,
.design-2 .fll-service-row-item .elementor-icon-box-description {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  color: var(--white) !important;
  line-height: 1.45 !important;
  margin: 0 !important;
}

.design-2 .fll-feature-grid-item .elementor-icon-box-description p,
.design-2 .fll-service-row-item .elementor-icon-box-description p {
  margin: 0 !important;
  color: inherit !important;
}

/* Feature / service row checklist — icon left of text at all breakpoints (override Elementor block-start) */
.design-2 .fll-feature-grid-item .elementor-widget-icon-box.fll-feature-grid-item-icon .elementor-icon-box-wrapper,
.design-2 .fll-service-row-item .elementor-widget-icon-box.fll-service-row-item-icon .elementor-icon-box-wrapper,
.design-2 .elementor-widget-icon-box.fll-feature-grid-item-icon .elementor-icon-box-wrapper,
.design-2 .elementor-widget-icon-box.fll-service-row-item-icon .elementor-icon-box-wrapper,
.design-2 .fll-feature-grid-item-icon[class*="elementor-"][class*="-position-block-start"] .elementor-icon-box-wrapper,
.design-2 .fll-service-row-item-icon[class*="elementor-"][class*="-position-block-start"] .elementor-icon-box-wrapper,
.design-2 .fll-feature-grid-item-icon[class*="elementor-"][class*="-position-block-end"] .elementor-icon-box-wrapper,
.design-2 .fll-service-row-item-icon[class*="elementor-"][class*="-position-block-end"] .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.75rem !important;
  width: 100% !important;
  height: auto !important;
  text-align: start !important;
}

.design-2 .fll-feature-grid-item .elementor-icon-box-icon,
.design-2 .fll-service-row-item .elementor-icon-box-icon,
.design-2 .fll-feature-grid-item-icon .elementor-icon-box-icon,
.design-2 .fll-service-row-item-icon .elementor-icon-box-icon {
  flex: 0 0 22px !important;
  order: 0 !important;
  align-self: center !important;
  margin: 0 !important;
}

.design-2 .fll-feature-grid-item .elementor-icon-box-content,
.design-2 .fll-service-row-item .elementor-icon-box-content,
.design-2 .fll-feature-grid-item-icon .elementor-icon-box-content,
.design-2 .fll-service-row-item-icon .elementor-icon-box-content {
  flex: 1 1 auto !important;
  order: 1 !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  text-align: left !important;
}

.design-2 .e-con.fll-feature-grid-item,
.design-2 .e-con.fll-service-row-item {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
}

.design-2 .e-con.fll-feature-grid-item > .e-con-inner,
.design-2 .e-con.fll-service-row-item > .e-con-inner {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
}

/* Inner page intro/content CTAs — center below prose */
.design-2 .fll-inner-page .intro-content .fll-section-cta,
.design-2 .fll-inner-page .intro-content .fll-section-cta > .e-con-inner {
  justify-content: center !important;
  width: 100% !important;
}

/* Split list — icon-list widget (replaces legacy ul markup) */
.design-2 .elementor-widget-icon-list.fll-split-list__bullets .elementor-icon-list-items {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  gap: 0.75rem !important;
}

.design-2 .elementor-widget-icon-list.fll-split-list__bullets .elementor-icon-list-item,
.design-2 .elementor-widget-icon-list.fll-split-list__bullets .elementor-icon-list-text {
  align-items: center !important;
  color: rgba(255, 255, 255, 0.92) !important;
  line-height: 1.65 !important;
}

.design-2 .elementor-widget-icon-list.fll-split-list__bullets .elementor-icon-list-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 !important;
  color: var(--green-accent) !important;
  line-height: 0 !important;
  overflow: hidden !important;
}

.design-2 .elementor-widget-icon-list.fll-split-list__bullets .elementor-icon-list-icon .elementor-icon,
.design-2 .elementor-widget-icon-list.fll-split-list__bullets .elementor-icon-list-icon svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  line-height: 1 !important;
}

.design-2 .elementor-widget-icon-list.fll-split-list__bullets .elementor-icon-list-icon svg,
.design-2 .elementor-widget-icon-list.fll-split-list__bullets .elementor-icon-list-icon svg path {
  fill: currentColor !important;
  stroke: none !important;
}

.design-2 .e-con.fll-split-list__text p,
.design-2 .fll-split-list__text .elementor-widget-text-editor p {
  color: rgba(255, 255, 255, 0.88) !important;
  line-height: 1.75 !important;
  margin: 0 0 1rem !important;
}

/* Section desc spacing */
.design-2 .section-desc {
  color: var(--text-muted);
  line-height: 1.75;
  max-width: 52rem;
}

.design-2 .e-con.services-header .section-desc,
.design-2 .e-con.process-header .section-desc,
.design-2 .e-con.reviews-header .section-desc {
  margin-inline: auto;
}

/* Inner page alt sections */
.fll-inner-page .e-con.fll-page-section--alt,
.fll-inner-page .e-con.fll-el-section.fll-page-section--alt,
.fll-inner-page .e-con.fll-page-section--faq {
  background-color: var(--green-pale) !important;
}

/* Contact section at bottom of inner pages */
.fll-inner-page .e-con.contact,
.fll-inner-page .contact.e-con {
  background-color: var(--green-pale) !important;
}

/* FAQ on inner pages */
.design-2 .e-con.fll-faq-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
  margin-top: 2rem;
}

/* CTA bands — flex on container AND .e-con-inner (Elementor wraps buttons) */
.design-2 .e-con.fll-section-cta,
.design-2 .e-con.fll-home-cta {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.875rem !important;
  margin-top: 2rem !important;
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.fll-section-cta > .e-con-inner,
.design-2 .e-con.fll-home-cta > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.875rem !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

.design-2 .e-con.fll-section-cta--center,
.design-2 .e-con.fll-section-cta--center > .e-con-inner {
  justify-content: center !important;
}

.design-2 .e-con.fll-section-cta--start,
.design-2 .e-con.fll-section-cta--start > .e-con-inner {
  justify-content: flex-start !important;
}

.design-2 .e-con.fll-intro-cta,
.design-2 .e-con.fll-intro-cta > .e-con-inner,
.design-2 .e-con.fll-services-cta,
.design-2 .e-con.fll-services-cta > .e-con-inner {
  justify-content: center !important;
  margin-top: 1.5rem !important;
}

@media (max-width: 768px) {
  .design-2 .e-con.intro-features,
  .design-2 .e-con.intro-features > .e-con-inner {
    flex-direction: column !important;
  }

  .design-2 .e-con.intro-features > .e-con-inner > .e-con.intro-feature,
  .design-2 .e-con.intro-features > .e-con.intro-feature {
    flex: 1 1 auto !important;
    min-width: 100% !important;
  }
}

.design-2 .fll-section-cta {
  margin-top: 2rem;
}

.design-2 .fll-section-cta--center {
  text-align: center;
}

/* ============================================================
   HERO — full green overlay on background image
   ============================================================ */
.design-2 .e-con.hero.hero-v2::before,
.design-2 .e-con.hero.hero-v2--inner::before {
  display: block !important;
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background: linear-gradient(
    180deg,
    rgba(12, 32, 18, 0.74) 0%,
    rgba(14, 38, 22, 0.68) 45%,
    rgba(12, 32, 18, 0.76) 100%
  ) !important;
}

.design-2 .e-con.hero.hero-v2--home::before,
.design-2 .e-con.hero.fll-landing-hero::before {
  display: block !important;
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background: linear-gradient(
    160deg,
    rgba(15, 35, 18, 0.9) 0%,
    rgba(22, 55, 26, 0.85) 45%,
    rgba(18, 42, 20, 0.92) 100%
  ) !important;
}

.design-2 .e-con.hero.hero-v2--home > .elementor-background-overlay,
.design-2 .e-con.hero.fll-landing-hero > .elementor-background-overlay {
  opacity: 1 !important;
  z-index: 1 !important;
  background: linear-gradient(
    160deg,
    rgba(15, 35, 18, 0.9) 0%,
    rgba(22, 55, 26, 0.85) 45%,
    rgba(18, 42, 20, 0.92) 100%
  ) !important;
  mix-blend-mode: normal !important;
}

.design-2 .e-con.hero.hero-v2:not(.hero-v2--home):not(.fll-landing-hero) .elementor-background-overlay,
.design-2 .e-con.hero.hero-v2--inner .elementor-background-overlay {
  opacity: 0 !important;
}

.design-2 .e-con.hero.hero-v2--home .elementor-background-overlay,
.design-2 .e-con.hero.fll-landing-hero .elementor-background-overlay {
  opacity: 1 !important;
}

/* Hero copy — white on green overlay */
.design-2 .e-con.hero-v2-main .hero-v2-h1 .elementor-heading-title,
.design-2 .e-con.hero-v2-main .hero-v2-h1.elementor-heading-title,
.design-2 .e-con.hero-v2-main h1.elementor-heading-title {
  color: #ffffff !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35) !important;
}

.design-2 .e-con.hero-v2-main .hero-v2-h1 .elementor-heading-title span,
.design-2 .e-con.hero-v2-main h1.hero-v2-h1 .elementor-heading-title span {
  color: rgba(255, 255, 255, 0.92) !important;
}

.design-2 .e-con.hero-v2-main .hero-v2-eyebrow,
.design-2 .e-con.hero-v2-main p.hero-v2-eyebrow,
.design-2 .e-con.hero-v2-main .hero-v2-eyebrow .elementor-heading-title {
  color: var(--green-accent) !important;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.4) !important;
}

.design-2 .e-con.hero-v2-tags .elementor-heading-title,
.design-2 .hero-v2-tags span {
  color: rgba(255, 255, 255, 0.92) !important;
  background: rgba(0, 0, 0, 0.28) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
}

/* ============================================================
   HEADER — frosted white, semi-transparent (uniform, not solid)
   ============================================================ */
.design-2 {
  --header-h: 108px;
}

.design-2 .e-con.header.header-v2,
.design-2 .e-con.header.header-v2:not(.scrolled) {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  width: 100% !important;
  max-width: none !important;
  padding: 0.25rem 0 !important;
  background-color: rgba(255, 255, 255, 0.72) !important;
  background-image: none !important;
  backdrop-filter: blur(16px) saturate(1.15) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.15) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.45) !important;
  box-shadow: 0 2px 20px rgba(15, 35, 18, 0.06) !important;
  transition: background 0.25s ease, padding 0.25s ease, box-shadow 0.25s ease;
}

.design-2 .e-con.header.header-v2.scrolled {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  width: 100% !important;
  max-width: none !important;
  padding: 0.25rem 0 !important;
  background-color: rgba(255, 255, 255, 0.9) !important;
  background-image: none !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border-bottom: 1px solid rgba(30, 70, 32, 0.08) !important;
  box-shadow: 0 4px 24px rgba(15, 35, 18, 0.08) !important;
}

.design-2 .e-con.header.header-v2 > .e-con-inner,
.design-2 .e-con.header-v2-inner,
.design-2 .e-con.header-v2-inner > .e-con-inner,
.design-2 .e-con.fll-header-logo-col,
.design-2 .e-con.fll-header-logo-col > .e-con-inner,
.design-2 .e-con.fll-header-nav-col,
.design-2 .e-con.fll-header-nav-col > .e-con-inner,
.design-2 .e-con.header-v2-actions,
.design-2 .e-con.header-v2-actions > .e-con-inner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  --padding-top: 0 !important;
  --padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.design-2 .e-con.header-v2 .elementor-widget-image.logo-v2,
.design-2 .e-con.header-v2 .elementor-widget-image.logo-v2 .elementor-widget-container {
  margin-block: 0 !important;
  padding-block: 0 !important;
}

/* Logo — height-led sizing; override Elementor inline width (was 76px, caused blur) */
.design-2 .e-con.header-v2 .logo-v2 a,
.design-2 .e-con.header-v2 .elementor-widget-theme-site-logo a,
.design-2 .e-con.header-v2 .elementor-widget-image.logo-v2 a {
  display: inline-block !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  line-height: 0;
  width: auto !important;
  max-width: none !important;
}

.design-2 .e-con.header-v2 .elementor-widget-image.logo-v2,
.design-2 .e-con.header-v2 .elementor-widget-image.logo-v2 .elementor-widget-container {
  width: auto !important;
  max-width: none !important;
  --width: auto !important;
}

.design-2 .e-con.header-v2 .logo-v2 img,
.design-2 .e-con.header-v2 .elementor-widget-theme-site-logo img,
.design-2 .e-con.header-v2 .elementor-widget-image.logo-v2 img {
  height: 100px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
  filter: contrast(1.06) saturate(1.08) !important;
  transform: translateZ(0);
  -webkit-font-smoothing: antialiased;
  image-rendering: auto;
  transition: height 0.25s ease, filter 0.25s ease;
}

.design-2 .e-con.header-v2.scrolled .logo-v2 img,
.design-2 .e-con.header-v2.scrolled .elementor-widget-theme-site-logo img,
.design-2 .e-con.header-v2.scrolled .elementor-widget-image.logo-v2 img {
  height: 92px !important;
}

/* Phone + CTA in header actions */
.design-2 .e-con.header-v2 .header-v2-phone {
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  white-space: nowrap;
}

.design-2 .e-con.header-v2:not(.scrolled) .header-v2-phone {
  color: var(--green-dark) !important;
}

.design-2 .e-con.header-v2.scrolled .header-v2-phone {
  color: var(--green-dark) !important;
}

.design-2 .e-con.header-v2 .header-v2-actions .btn-primary {
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  padding: 0.75rem 1.35rem !important;
  border-radius: 100px !important;
  box-shadow: 0 4px 20px rgba(45, 106, 48, 0.45);
}

/* Royal Elementor nav — frosted pill (matches design-2 .nav-links-v2) */
.design-2 .nav-v2 .wpr-nav-menu-container,
.design-2 .fll-header-nav-menu .wpr-nav-menu-container {
  display: flex !important;
  justify-content: center !important;
  width: 100%;
}

.design-2 .e-con.header-v2 ul.wpr-nav-menu {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.25rem !important;
  margin: 0 !important;
  padding: 0.375rem !important;
  list-style: none !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  border-radius: 100px !important;
  transition: background 0.25s ease, border-color 0.25s ease;
}

.design-2 .nav-v2 .wpr-nav-menu-container,
.design-2 .fll-header-nav-menu .wpr-nav-menu-container,
.design-2 .e-con.fll-header-nav-col .wpr-nav-menu-container {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.design-2 .e-con.header-v2:not(.scrolled) ul.wpr-nav-menu,
.design-2 .e-con.header-v2.scrolled ul.wpr-nav-menu {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}

.design-2 .e-con.header-v2:not(.scrolled) ul.wpr-nav-menu .wpr-menu-item,
.design-2 .e-con.header-v2.scrolled ul.wpr-nav-menu .wpr-menu-item {
  color: var(--text-muted) !important;
}

.design-2 .e-con.header-v2:not(.scrolled) ul.wpr-nav-menu .wpr-menu-item:hover,
.design-2 .e-con.header-v2:not(.scrolled) ul.wpr-nav-menu .wpr-menu-item.wpr-active-menu-item,
.design-2 .e-con.header-v2:not(.scrolled) ul.wpr-nav-menu .menu-item-has-children:hover > .wpr-menu-item,
.design-2 .e-con.header-v2.scrolled ul.wpr-nav-menu .wpr-menu-item:hover,
.design-2 .e-con.header-v2.scrolled ul.wpr-nav-menu .wpr-menu-item.wpr-active-menu-item,
.design-2 .e-con.header-v2.scrolled ul.wpr-nav-menu .menu-item-has-children:hover > .wpr-menu-item {
  color: var(--green-dark) !important;
  background: rgba(45, 106, 48, 0.1) !important;
}

.design-2 .e-con.header-v2 ul.wpr-nav-menu > .menu-item {
  margin: 0 !important;
  position: relative;
}

.design-2 .e-con.header-v2 ul.wpr-nav-menu .wpr-menu-item {
  font-family: var(--font-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  padding: 0.5rem 1rem !important;
  border-radius: 100px !important;
  text-decoration: none !important;
  transition: background 0.2s ease, color 0.2s ease;
}

/* Kill Royal underline / line pointer */
.design-2 .nav-v2 .wpr-pointer-item::before,
.design-2 .nav-v2 .wpr-pointer-item::after,
.design-2 .fll-header-nav-menu .wpr-pointer-item::before,
.design-2 .fll-header-nav-menu .wpr-pointer-item::after {
  display: none !important;
  content: none !important;
}

.design-2 .nav-v2 .wpr-sub-icon,
.design-2 .fll-header-nav-menu .wpr-sub-icon {
  margin-left: 0.35rem !important;
  font-size: 0.65rem !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900 !important;
  font-style: normal !important;
  line-height: 1 !important;
}

.design-2 .fll-header-nav-menu .wpr-sub-icon::before {
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900 !important;
}

.design-2 .e-con.header-v2:not(.scrolled) ul.wpr-nav-menu .wpr-sub-icon,
.design-2 .e-con.header-v2.scrolled ul.wpr-nav-menu .wpr-sub-icon {
  color: var(--text-muted) !important;
}

/* Services dropdown */
.design-2 ul.wpr-nav-menu .menu-item-has-children {
  position: relative;
}

.design-2 ul.wpr-nav-menu .wpr-sub-menu,
.design-2 ul.wpr-nav-menu .sub-menu.wpr-sub-menu {
  position: absolute !important;
  top: calc(100% + 0.35rem) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  min-width: 260px !important;
  margin: 0 !important;
  padding: 0.5rem !important;
  padding-top: 0.625rem !important;
  background: rgba(255, 255, 255, 0.98) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-lg) !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  z-index: 200;
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.125rem !important;
}

.design-2 ul.wpr-nav-menu .wpr-sub-menu::before {
  content: "";
  position: absolute;
  top: -0.625rem;
  left: 0;
  right: 0;
  height: 0.625rem;
}

.design-2 ul.wpr-nav-menu .menu-item-has-children:hover > .wpr-sub-menu,
.design-2 ul.wpr-nav-menu .menu-item-has-children:focus-within > .wpr-sub-menu,
.design-2 ul.wpr-nav-menu .menu-item-has-children.fll-submenu-open > .wpr-sub-menu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: all !important;
}

.design-2 ul.wpr-nav-menu .wpr-sub-menu-item {
  display: block !important;
  padding: 0.625rem 1rem !important;
  font-family: var(--font-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  color: var(--text-muted) !important;
  border-radius: 8px !important;
  white-space: nowrap;
  text-decoration: none !important;
}

.design-2 ul.wpr-nav-menu .wpr-sub-menu-item:hover,
.design-2 ul.wpr-nav-menu .wpr-sub-menu-item.wpr-active-menu-item {
  background: var(--green-pale) !important;
  color: var(--green-dark) !important;
}

/* Mobile toggle */
.design-2 .e-con.header-v2:not(.scrolled) .wpr-mobile-toggle-line,
.design-2 .e-con.header-v2.scrolled .wpr-mobile-toggle-line {
  background-color: var(--green-dark) !important;
  box-shadow: none;
}

.design-2 .e-con.header-v2 .wpr-mobile-toggle {
  width: 44px !important;
  padding: 8px !important;
  border: none !important;
  background: transparent !important;
}

.design-2 .e-con.header-v2 .wpr-mobile-toggle:hover {
  border-color: transparent !important;
}

.design-2 .e-con.header-v2:not(.scrolled) .wpr-mobile-toggle:hover .wpr-mobile-toggle-line,
.design-2 .e-con.header-v2.scrolled .wpr-mobile-toggle:hover .wpr-mobile-toggle-line {
  background-color: var(--green-accent) !important;
}

/* ============================================================
   MOBILE / TABLET HEADER — WPR hamburger + dropdown panel
   ============================================================ */
@media (max-width: 1024px) {
  .design-2 .fll-header-nav-menu.nav-v2 {
    display: block !important;
  }

  .design-2 .e-con.header-v2-inner,
  .design-2 .e-con.header-v2-inner > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    align-items: center !important;
    gap: 0.35rem !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: 0.75rem !important;
    box-sizing: border-box !important;
    flex-direction: unset !important;
    flex-wrap: nowrap !important;
  }

  .design-2 .e-con.fll-header-logo-col {
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    align-self: center;
    min-width: 0 !important;
    max-width: 100% !important;
    flex-grow: 0 !important;
    --flex-grow: 0 !important;
  }

  .design-2 .e-con.fll-header-nav-col {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    width: auto !important;
    max-width: none !important;
    flex-grow: 0 !important;
    --flex-grow: 0 !important;
    margin: 0 !important;
  }

  .design-2 .e-con.fll-header-nav-col > .e-con-inner {
    justify-content: flex-end !important;
  }

  .design-2 .e-con.header-v2-actions {
    display: flex !important;
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    width: auto !important;
    max-width: none !important;
    flex-grow: 0 !important;
    --flex-grow: 0 !important;
    min-width: 0 !important;
  }

  .design-2 .e-con.header-v2-actions > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0.35rem !important;
    width: auto !important;
  }

  .design-2 .e-con.header-v2-actions > .e-con-inner::before {
    display: none !important;
  }

  .design-2 .e-con.header-v2-actions .elementor-widget-button.fll-open-estimate,
  .design-2 .e-con.header-v2-actions .btn-primary.fll-open-estimate {
    display: none !important;
  }

  .design-2 .e-con.header-v2-actions .elementor-widget-button.header-v2-phone {
    display: block !important;
    width: auto !important;
  }

  .design-2 .e-con.header-v2-actions .elementor-widget-button.header-v2-phone .elementor-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.35rem !important;
    background: var(--green-dark) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 0.45rem 0.65rem !important;
    font-family: var(--font-body) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    text-shadow: none !important;
    max-width: 100% !important;
  }

  .design-2 .e-con.header-v2-actions .elementor-widget-button.header-v2-phone .elementor-button,
  .design-2 .e-con.header-v2-actions .elementor-widget-button.header-v2-phone .elementor-button-text {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }

  .design-2 .e-con.header-v2-actions .elementor-widget-button.header-v2-phone .elementor-button:hover,
  .design-2 .e-con.header-v2-actions .elementor-widget-button.header-v2-phone .elementor-button:hover .elementor-button-text {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }

  .design-2 .e-con.header-v2-actions .elementor-widget-button.header-v2-phone .elementor-button:hover {
    background: var(--green-mid) !important;
    color: #ffffff !important;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-nav-menu-container {
    position: relative;
    display: block !important;
    pointer-events: auto !important;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-toggle-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    text-align: center !important;
  }

  /* Dropdown panel — fixed below header, full width inset */
  .design-2 .fll-header-nav-menu .wpr-mobile-nav-menu {
    position: fixed !important;
    top: var(--header-h, 80px) !important;
    left: 1rem !important;
    right: 1rem !important;
    width: auto !important;
    margin-top: 0.5rem !important;
    padding: 0.75rem !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    box-shadow: var(--shadow-lg) !important;
    max-height: calc(100vh - var(--header-h, 80px) - 2rem);
    overflow-y: auto;
    z-index: 9999 !important;
    transform: none !important;
    text-align: center !important;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-nav-menu li {
    background: transparent !important;
    margin: 0 !important;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-nav-menu a,
  .design-2 .fll-header-nav-menu .wpr-mobile-nav-menu .menu-item-has-children > a:after {
    color: var(--text-muted) !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-menu-item {
    display: block !important;
    padding: 0.75rem 1rem !important;
    font-family: var(--font-body) !important;
    font-size: 0.9375rem !important;
    font-weight: 500 !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    transition: background 0.2s ease, color 0.2s ease;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-nav-menu a:hover,
  .design-2 .fll-header-nav-menu .wpr-mobile-nav-menu a.wpr-active-menu-item,
  .design-2 .fll-header-nav-menu .wpr-mobile-nav-menu .menu-item-has-children > a:hover:after {
    color: var(--green-dark) !important;
    background-color: var(--green-pale) !important;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-divider-yes .wpr-mobile-menu-item {
    border-bottom-color: var(--border) !important;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-sub-menu {
    padding: 0.25rem 0 0 !important;
    margin: 0 !important;
    list-style: none !important;
    background: transparent !important;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-sub-menu-item {
    display: block !important;
    padding: 0.625rem 1rem !important;
    font-family: var(--font-body) !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    color: var(--text-muted) !important;
    border-radius: 8px !important;
    text-decoration: none !important;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-sub-menu-item:hover,
  .design-2 .fll-header-nav-menu .wpr-mobile-sub-menu-item.wpr-active-menu-item {
    color: var(--green-dark) !important;
    background: var(--green-pale) !important;
  }

  /* Hide duplicate Astra submenu toggle injected into WPR links */
  .design-2 .fll-header-nav-menu .wpr-mobile-nav-menu .dropdown-menu-toggle.ast-header-navigation-arrow {
    display: none !important;
  }

  /* Hamburger → X when open */
  .design-2 .fll-header-nav-menu .wpr-mobile-toggle.wpr-mobile-toggle-open .wpr-mobile-toggle-line:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-toggle.wpr-mobile-toggle-open .wpr-mobile-toggle-line:nth-child(2) {
    opacity: 0;
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-toggle.wpr-mobile-toggle-open .wpr-mobile-toggle-line:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
  }

  .design-2 .fll-header-nav-menu .wpr-mobile-toggle-line {
    transition: transform 0.2s ease, opacity 0.2s ease, background-color 0.2s ease;
  }

  body.fll-mobile-nav-open {
    overflow: hidden;
  }
}

@media (max-width: 768px) {
  .design-2 .e-con.header-v2 ul.wpr-nav-menu {
    display: none !important;
  }
}

/* ============================================================
   HERO BANNER — typography (Cormorant + Outfit)
   ============================================================ */
.design-2 .e-con.hero-v2-main .hero-v2-eyebrow,
.design-2 .e-con.hero-v2-main p.hero-v2-eyebrow {
  display: inline-block !important;
  font-family: var(--font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--green-accent) !important;
  margin: 0 0 1rem !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

.design-2 .e-con.hero-v2-main .hero-v2-h1 .elementor-heading-title,
.design-2 .e-con.hero-v2-main .hero-v2-h1.elementor-heading-title,
.design-2 .e-con.hero-v2-main h1.elementor-heading-title {
  font-family: "Cormorant Garamond", var(--font-display) !important;
  font-size: clamp(2.75rem, 5.5vw, 4.5rem) !important;
  font-weight: 600 !important;
  line-height: 1.02 !important;
  color: #ffffff !important;
  margin: 0 0 1.25rem !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35) !important;
}

.design-2 .e-con.hero-v2-main .hero-v2-h1 .elementor-heading-title span,
.design-2 .e-con.hero-v2-main h1.hero-v2-h1 .elementor-heading-title span {
  display: block;
  font-size: 0.72em;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.92) !important;
  margin-top: 0.15em;
  line-height: 1.15;
}

.design-2 .e-con.hero-v2-main .hero-v2-h1-sub .elementor-heading-title,
.design-2 .e-con.hero-v2-main .hero-v2-h1-sub.elementor-heading-title,
.design-2 .e-con.hero-v2-main h2.hero-v2-h1-sub .elementor-heading-title {
  font-family: "Cormorant Garamond", var(--font-display) !important;
  font-size: clamp(1.75rem, 3.5vw, 2.8rem) !important;
  font-weight: 500 !important;
  line-height: 1.12 !important;
  color: rgba(255, 255, 255, 0.92) !important;
  margin: 0 0 1.25rem !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.25) !important;
}

.design-2 .e-con.hero-v2-panel p,
.design-2 .e-con.hero-v2-panel--inner p,
.design-2 .hero-v2-panel .elementor-widget-text-editor p,
.design-2 .e-con.hero-v2-panel--inner .elementor-widget-text-editor,
.design-2 .e-con.hero-v2-panel--inner .elementor-widget-text-editor .elementor-widget-container,
.design-2 .e-con.hero-v2-panel--inner .hero-v2-panel-copy,
.design-2 .e-con.hero-v2-panel--inner .hero-v2-panel-copy .elementor-widget-container {
  font-family: var(--font-body) !important;
  font-size: 1.0625rem !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  color: rgba(255, 255, 255, 0.88) !important;
  margin-bottom: 1.5rem !important;
}

.design-2 .hero-v2-panel .hero-v2-actions .btn,
.design-2 .hero-v2-panel--inner .hero-v2-actions .btn {
  font-family: var(--font-body) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  border-radius: 100px !important;
}

/* Homepage hero panel — shortcode/HTML buttons side by side */
.design-2 .e-con.hero-v2-panel .hero-v2-actions,
.design-2 .elementor-widget-shortcode .hero-v2-actions,
.design-2 .elementor-widget-html .hero-v2-actions {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 0.75rem !important;
  width: 100% !important;
  margin-bottom: 1.75rem !important;
}

.design-2 .e-con.hero-v2-panel .hero-v2-actions > .btn,
.design-2 .e-con.hero-v2-panel .hero-v2-actions > button,
.design-2 .e-con.hero-v2-panel .hero-v2-actions > a,
.design-2 .elementor-widget-shortcode .hero-v2-actions > .btn,
.design-2 .elementor-widget-shortcode .hero-v2-actions > button,
.design-2 .elementor-widget-shortcode .hero-v2-actions > a,
.design-2 .elementor-widget-html .hero-v2-actions > .btn,
.design-2 .elementor-widget-html .hero-v2-actions > button,
.design-2 .elementor-widget-html .hero-v2-actions > a {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.875rem 1rem !important;
  font-size: 0.8125rem !important;
  white-space: nowrap !important;
  text-align: center !important;
}

.design-2 .e-con.hero-v2-panel--inner .hero-v2-actions > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 0.75rem !important;
  width: 100% !important;
  max-width: 100% !important;
}

.design-2 .e-con.hero-v2-panel--inner .hero-v2-actions .elementor-widget-button {
  flex: 0 0 auto !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

@media (min-width: 769px) {
  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions > .e-con-inner {
    flex-direction: row !important;
    flex-wrap: wrap !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions .elementor-widget-button {
    flex: 1 1 calc(50% - 0.375rem) !important;
    width: auto !important;
    max-width: none !important;
  }
}

.design-2 .e-con.hero-v2-panel--inner .hero-v2-actions .elementor-widget-button .elementor-button {
  width: 100% !important;
  justify-content: center !important;
  padding: 0.875rem 1.25rem !important;
  white-space: nowrap !important;
}

.design-2 .elementor-widget-button.btn-glass .elementor-button {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  box-shadow: none !important;
}

.design-2 .elementor-widget-button.btn-glass .elementor-button:hover {
  background: rgba(255, 255, 255, 0.18) !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
  transform: translateY(-2px) !important;
}

@media (max-width: 640px) {
  .design-2 .e-con.hero-v2-panel .hero-v2-actions,
  .design-2 .elementor-widget-shortcode .hero-v2-actions,
  .design-2 .elementor-widget-html .hero-v2-actions {
    flex-direction: column !important;
  }

  .design-2 .e-con.hero-v2-panel .hero-v2-actions > .btn,
  .design-2 .e-con.hero-v2-panel .hero-v2-actions > button,
  .design-2 .e-con.hero-v2-panel .hero-v2-actions > a,
  .design-2 .elementor-widget-shortcode .hero-v2-actions > .btn,
  .design-2 .elementor-widget-shortcode .hero-v2-actions > button,
  .design-2 .elementor-widget-shortcode .hero-v2-actions > a {
    flex: 1 1 100% !important;
    width: 100% !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions > .e-con-inner {
    flex-direction: column !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions .elementor-widget-button {
    flex: 1 1 100% !important;
    width: 100% !important;
  }
}

/* Homepage hero — main + panel are direct children (no .e-con-inner wrapper) */
.design-2 .e-con.hero.hero-v2--home {
  min-height: max(100vh, 780px) !important;
  height: auto !important;
  padding-bottom: 0 !important;
  background-position: center 38% !important;
}

.design-2 .e-con.hero.hero-v2--home .elementor-background,
.design-2 .e-con.hero.hero-v2--home > .elementor-background-slideshow,
.design-2 .e-con.hero.hero-v2--home > .elementor-background-video-container,
.design-2 .e-con.hero.hero-v2--home > .elementor-background-overlay {
  height: 100% !important;
  min-height: 100% !important;
}

.design-2 .e-con.hero-v2-layout:not(.hero-v2-layout--inner) {
  display: grid !important;
  grid-template-columns: 1.2fr 0.8fr !important;
  gap: 3rem !important;
  align-items: end !important;
  width: min(1200px, 92vw) !important;
  max-width: min(1200px, 92vw) !important;
  margin-inline: auto !important;
  padding: calc(var(--header-h) + 2rem) min(4vw, 1.25rem) 3.5rem !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
  position: relative !important;
  z-index: 3 !important;
  box-sizing: border-box !important;
}

.design-2 .e-con.hero-v2-layout:not(.hero-v2-layout--inner) > .e-con.hero-v2-main,
.design-2 .e-con.hero-v2-layout:not(.hero-v2-layout--inner) > .e-con.hero-v2-panel {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: unset !important;
}

/* Inner page hero — same layout as homepage */
.design-2 .e-con.hero-v2-layout.hero-v2-layout--inner {
  display: grid !important;
  grid-template-columns: 1.2fr 0.8fr !important;
  gap: 3rem !important;
  align-items: end !important;
  width: min(1200px, 92vw) !important;
  max-width: min(1200px, 92vw) !important;
  margin-inline: auto !important;
  padding: calc(var(--header-h) + 1.25rem) min(4vw, 1.25rem) 1.5rem !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
  position: relative !important;
  z-index: 3 !important;
  box-sizing: border-box !important;
}

.design-2 .e-con.hero-v2-layout.hero-v2-layout--inner > .e-con.hero-v2-main,
.design-2 .e-con.hero-v2-layout.hero-v2-layout--inner > .e-con.hero-v2-panel,
.design-2 .e-con.hero-v2-layout.hero-v2-layout--inner > .e-con.hero-v2-panel--inner {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: unset !important;
}

.design-2 .e-con.hero-v2-main,
.design-2 .e-con.hero-v2-main .elementor-widget-heading,
.design-2 .e-con.hero-v2-main .elementor-heading-title {
  min-width: 0 !important;
  max-width: 100% !important;
}

.design-2 .e-con.hero-v2-main .hero-v2-h1 .elementor-heading-title,
.design-2 .e-con.hero-v2-main .hero-v2-h1-sub .elementor-heading-title {
  overflow-wrap: break-word !important;
  word-wrap: break-word !important;
  hyphens: auto !important;
}

.design-2 .e-con.hero-v2-layout--inner > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1.2fr 0.8fr !important;
  gap: 3rem !important;
  align-items: end !important;
  width: min(1200px, 92vw) !important;
  max-width: min(1200px, 92vw) !important;
  margin-inline: auto !important;
  padding: calc(var(--header-h) + 1.25rem) 0 1.5rem !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
  position: relative !important;
  z-index: 3 !important;
}

.design-2 .e-con.hero.hero-v2--inner {
  min-height: 55vh !important;
}

@media (max-width: 1024px) {
  .design-2 .e-con.hero-v2-layout:not(.hero-v2-layout--inner),
  .design-2 .e-con.hero-v2-layout.hero-v2-layout--inner,
  .design-2 .e-con.hero-v2-layout--inner > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    align-items: start !important;
    justify-items: stretch !important;
    width: 100% !important;
    max-width: min(1200px, 92vw) !important;
    margin-inline: auto !important;
    padding-inline: min(4vw, 1.25rem) !important;
    box-sizing: border-box !important;
  }

  .design-2 .e-con.hero-v2-layout--inner > .e-con-inner > .e-con.hero-v2-main,
  .design-2 .e-con.hero-v2-layout--inner > .e-con-inner > .e-con.hero-v2-panel,
  .design-2 .e-con.hero-v2-layout--inner > .e-con-inner > .e-con.hero-v2-panel--inner,
  .design-2 .e-con.hero-v2-layout.hero-v2-layout--inner > .e-con.hero-v2-main,
  .design-2 .e-con.hero-v2-layout.hero-v2-layout--inner > .e-con.hero-v2-panel,
  .design-2 .e-con.hero-v2-layout.hero-v2-layout--inner > .e-con.hero-v2-panel--inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    --width: 100% !important;
    justify-self: stretch !important;
    align-self: stretch !important;
    margin-inline: 0 !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions > .e-con-inner {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions .elementor-widget-button {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Hero metrics — grid on .e-con-inner (not outer .e-con shell) */
.design-2 .e-con.hero-v2-metrics {
  display: block !important;
  grid-template-columns: unset !important;
  width: 100% !important;
}

.design-2 .e-con.hero-v2-metrics > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0.75rem !important;
  padding-top: 1.5rem !important;
  border-top: 1px solid rgba(255, 255, 255, 0.15) !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
}

.design-2 .e-con.hero-v2-metrics > .e-con-inner > .e-con.hero-v2-metric {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

.design-2 .e-con.hero-v2-metric > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.15rem !important;
  padding: 0 !important;
  width: 100% !important;
}

.design-2 .hero-v2-metric-value .elementor-heading-title {
  font-family: "Cormorant Garamond", var(--font-display) !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  color: var(--green-accent) !important;
  line-height: 1.1 !important;
}

.design-2 .hero-v2-metric strong,
.design-2 .hero-v2-panel .hero-v2-metric strong {
  display: block !important;
  font-family: "Cormorant Garamond", var(--font-display) !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  color: var(--green-accent) !important;
  line-height: 1.1 !important;
}

.design-2 .hero-v2-metric span,
.design-2 .hero-v2-panel .hero-v2-metric span {
  display: block !important;
  font-family: var(--font-body) !important;
  font-size: 0.625rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.55) !important;
  margin-top: 0.25rem !important;
}

.design-2 .hero-v2-tags span {
  font-family: var(--font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
}

@media (max-width: 768px) {
  .design-2 {
    --header-h: 84px;
  }

  .design-2 .e-con.header.header-v2,
  .design-2 .e-con.header.header-v2.scrolled {
    padding: 0.2rem 0 !important;
  }

  .design-2 .e-con.header-v2-inner,
  .design-2 .e-con.header-v2-inner > .e-con-inner {
    padding-inline: 0.65rem !important;
    gap: 0.25rem !important;
  }

  .design-2 .e-con.header-v2 .logo-v2 img,
  .design-2 .e-con.header-v2 .elementor-widget-theme-site-logo img,
  .design-2 .e-con.header-v2 .elementor-widget-image.logo-v2 img {
    height: 76px !important;
  }

  .design-2 .e-con.header-v2-actions .elementor-widget-button.header-v2-phone .elementor-button {
    font-size: 0.6875rem !important;
    padding: 0.38rem 0.5rem !important;
  }

  .design-2 .e-con.header-v2 .header-v2-phone {
    display: block !important;
  }

  .design-2 .e-con.hero.hero-v2--inner {
    overflow: hidden !important;
  }

  .design-2 .e-con.hero-v2-layout.hero-v2-layout--inner,
  .design-2 .e-con.hero-v2-layout--inner > .e-con-inner {
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: min(4vw, 1rem) !important;
    box-sizing: border-box !important;
  }

  .design-2 .e-con.hero-v2-panel--inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    padding: 1.5rem 1.25rem !important;
    margin-inline: 0 !important;
    box-sizing: border-box !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-panel-copy,
  .design-2 .e-con.hero-v2-panel--inner .hero-v2-panel-copy .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1.25rem !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions > .e-con-inner {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions .elementor-widget-button {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .design-2 .e-con.hero-v2-panel--inner .hero-v2-actions .elementor-widget-button .elementor-button {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
  }

  .design-2 .e-con.hero-v2-main .hero-v2-h1 .elementor-heading-title {
    font-size: clamp(2.1rem, 8vw, 2.75rem) !important;
  }

  .design-2 .e-con.hero-v2-main .hero-v2-h1-sub .elementor-heading-title {
    font-size: clamp(1.35rem, 5.5vw, 1.85rem) !important;
  }
}

/* Footer services — proper WordPress menu list (ul/li), not stacked text widgets */
.design-2 .e-con.footer-services ul.footer-links-list,
.design-2 .footer-services ul.footer-links-list,
.design-2 .fll-footer-nav-menu.footer-links-list .wpr-nav-menu,
.design-2 .fll-footer-nav-menu.footer-links-list .wpr-nav-menu-container {
  display: grid !important;
  gap: 0.75rem !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.design-2 .footer-services ul.footer-links-list li,
.design-2 .fll-footer-nav-menu.footer-links-list .menu-item {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.design-2 .footer-services ul.footer-links-list a,
.design-2 .fll-footer-nav-menu.footer-links-list .wpr-menu-item {
  display: inline-block !important;
  font-size: 0.9375rem !important;
  line-height: 1.5 !important;
  color: rgba(255, 255, 255, 0.82) !important;
  text-decoration: none !important;
  transition: color var(--transition) !important;
  padding: 0 !important;
  background: none !important;
}

.design-2 .footer-services ul.footer-links-list a:hover,
.design-2 .footer-services ul.footer-links-list a:focus-visible,
.design-2 .fll-footer-nav-menu.footer-links-list .wpr-menu-item:hover,
.design-2 .fll-footer-nav-menu.footer-links-list .wpr-menu-item:focus-visible {
  color: var(--green-accent) !important;
}

/* Footer contact — native Heading widgets, not HTML text blocks */
.design-2 .e-con.footer-contact-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
  width: 100% !important;
  padding: 0 !important;
}

.design-2 .e-con.footer-contact-item {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.2rem !important;
  width: 100% !important;
  padding: 0 !important;
}

.design-2 .footer-contact-label .elementor-heading-title {
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.48) !important;
  margin: 0 !important;
}

.design-2 .footer-contact-value .elementor-heading-title {
  font-size: 0.9375rem !important;
  font-weight: 400 !important;
  margin: 0 !important;
}

.design-2 .footer-contact-value .elementor-heading-title a {
  color: rgba(255, 255, 255, 0.82) !important;
  text-decoration: none !important;
  transition: color var(--transition) !important;
}

.design-2 .footer-contact-value .elementor-heading-title a:hover,
.design-2 .footer-contact-value .elementor-heading-title a:focus-visible {
  color: var(--green-accent) !important;
}

.design-2 .e-con.footer-legal {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.5rem !important;
  flex-wrap: wrap !important;
}

.design-2 .footer-legal-link .elementor-heading-title a {
  color: rgba(255, 255, 255, 0.82) !important;
  text-decoration: none !important;
}

.design-2 .footer-legal-link .elementor-heading-title a:hover {
  color: var(--green-accent) !important;
}

.design-2 .footer-legal-sep .elementor-heading-title {
  color: rgba(255, 255, 255, 0.55) !important;
  margin: 0 !important;
}

.design-2 .footer-tagline .elementor-widget-container,
.design-2 .footer-tagline p {
  font-size: 0.9375rem !important;
  line-height: 1.75 !important;
  color: rgba(255, 255, 255, 0.72) !important;
  margin: 0 !important;
}

.design-2 .footer-logo img,
.design-2 .footer-brand .elementor-widget-image img {
  height: 120px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
}

.design-2 .footer-copy .elementor-heading-title,
.design-2 .footer-meta .elementor-heading-title {
  margin: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.75rem !important;
  line-height: 1.5 !important;
  color: rgba(255, 255, 255, 0.55) !important;
}

/* Footer legal bar — compact, vertically centered, no extra empty space */
.design-2 .e-con.footer-bar,
.design-2 .e-con.footer-bar > .e-con-inner {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.design-2 .e-con.footer-bar-inner {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.design-2 .e-con.footer-bar-inner > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 1rem !important;
  width: 100% !important;
  max-width: min(1200px, 92vw) !important;
  margin-inline: auto !important;
  padding: 1rem 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.design-2 .e-con.footer-bar-inner > .e-con-inner > .footer-copy,
.design-2 .e-con.footer-bar-inner > .e-con-inner > .elementor-widget-heading.footer-copy {
  justify-self: start !important;
}

.design-2 .e-con.footer-bar-inner > .e-con-inner > .e-con.footer-legal {
  justify-self: center !important;
}

.design-2 .e-con.footer-bar-inner > .e-con-inner > .footer-meta,
.design-2 .e-con.footer-bar-inner > .e-con-inner > .elementor-widget-heading.footer-meta {
  justify-self: end !important;
}

.design-2 .footer-meta .elementor-heading-title {
  text-align: right !important;
}

.design-2 .e-con.footer-legal {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.design-2 .e-con.footer-legal > .e-con-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.65rem !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

.design-2 .e-con.footer-powered-by-bar {
  width: 100% !important;
  max-width: none !important;
  background: #000000 !important;
  text-align: center !important;
  padding: 0.75rem 1rem !important;
  min-height: 0 !important;
  height: auto !important;
}

.design-2 .footer-powered-by,
.design-2 .footer-powered-by .elementor-heading-title,
.design-2 .elementor-widget-heading.footer-powered-by .elementor-heading-title,
.design-2 .e-con.footer-powered-by-bar .elementor-heading-title,
.design-2 .e-con.footer-powered-by-bar a {
  margin: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.8125rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: rgba(255, 255, 255, 0.88) !important;
}

.design-2 .footer-powered-by .elementor-heading-title a,
.design-2 .elementor-widget-heading.footer-powered-by .elementor-heading-title a,
.design-2 .e-con.footer-powered-by-bar .elementor-heading-title a,
.design-2 .e-con.footer-powered-by-bar a {
  color: rgba(255, 255, 255, 0.88) !important;
  text-decoration: none !important;
  transition: color 0.2s ease;
}

.design-2 .footer-powered-by .elementor-heading-title a:hover,
.design-2 .footer-powered-by .elementor-heading-title a:focus-visible,
.design-2 .elementor-widget-heading.footer-powered-by .elementor-heading-title a:hover,
.design-2 .elementor-widget-heading.footer-powered-by .elementor-heading-title a:focus-visible,
.design-2 .e-con.footer-powered-by-bar a:hover,
.design-2 .e-con.footer-powered-by-bar a:focus-visible {
  color: #ffffff !important;
}

/* Astra scroll-to-top: markup may load without theme CSS (dequeued) — never show the broken chevron bar */
#ast-scroll-top {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Footer services menu — desktop list only; WPR still injects a mobile toggle container */
.design-2 .fll-footer-nav-menu .wpr-mobile-nav-menu-container {
  display: none !important;
}

@media (max-width: 768px) {
  .design-2 .e-con.intro,
  .design-2 .e-con.services,
  .design-2 .e-con.why,
  .design-2 .e-con.problems,
  .design-2 .e-con.process,
  .design-2 .e-con.benefits,
  .design-2 .e-con.gallery,
  .design-2 .e-con.area,
  .design-2 .e-con.reviews,
  .design-2 .e-con.contact,
  .design-2 .e-con.fll-page-section,
  .design-2 .e-con.fll-el-section {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
  }
}

/* ============================================================
   Widget Advanced CSS classes (no classes in HTML content)
   ============================================================ */

/* Process step numbers — class on Heading widget Advanced tab */
.design-2 .e-con.process-step .elementor-widget-heading.step-number,
.design-2 .process-step .elementor-widget-heading.step-number {
  width: 72px !important;
  height: 72px !important;
  margin: 0 auto 1.5rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.design-2 .e-con.process-step .elementor-widget-heading.step-number .elementor-heading-title,
.design-2 .process-step .elementor-widget-heading.step-number .elementor-heading-title {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--white) !important;
  border: 2px solid var(--green-light) !important;
  border-radius: 50% !important;
  font-family: var(--font-display) !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  color: var(--green-mid) !important;
  box-shadow: var(--shadow-sm) !important;
  margin: 0 !important;
}

.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(5):last-child) .elementor-widget-heading.step-number {
  width: 64px !important;
  height: 64px !important;
  margin-bottom: 1.25rem !important;
}

.design-2 .e-con.process-steps > .e-con-inner:has(> .e-con.process-step:nth-child(5):last-child) .elementor-widget-heading.step-number .elementor-heading-title {
  font-size: 1.25rem !important;
}

/* Benefit numbers — class on Heading widget Advanced tab */
.design-2 .e-con.benefit-item .elementor-widget-heading.benefit-number .elementor-heading-title {
  display: block !important;
  flex-shrink: 0 !important;
  font-family: var(--font-display) !important;
  font-size: 1.65rem !important;
  font-weight: 600 !important;
  color: var(--green-light) !important;
  line-height: 1 !important;
  margin: 0 !important;
}

/* Section descriptions — class on Text Editor widget Advanced tab */
.design-2 .elementor-widget-text-editor.section-desc p,
.design-2 .elementor-widget-text-editor.section-desc .elementor-widget-container {
  color: var(--text-muted) !important;
  line-height: 1.75 !important;
}

.design-2 .e-con.area .elementor-widget-text-editor.section-desc,
.design-2 .e-con.area .elementor-widget-text-editor.section-desc p,
.design-2 .e-con.area .elementor-widget-text-editor.section-desc .elementor-widget-container {
  color: rgba(255, 255, 255, 0.88) !important;
}

.design-2 .e-con.services-header .elementor-widget-text-editor.section-desc,
.design-2 .e-con.process-header .elementor-widget-text-editor.section-desc,
.design-2 .e-con.reviews-header .elementor-widget-text-editor.section-desc {
  max-width: 52rem !important;
  margin-inline: auto !important;
}

/* Hero eyebrow — class on Heading widget Advanced tab */
.design-2 .e-con.hero-v2-main .elementor-widget-heading.hero-v2-eyebrow .elementor-heading-title {
  display: inline-block !important;
  font-family: var(--font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--green-accent) !important;
  margin: 0 0 1rem !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}

/* Area tags — compact inline chips (not full-width bars) */

/* Reviews link — class on Heading widget Advanced tab */
.design-2 .elementor-widget-heading.reviews-link {
  text-align: center !important;
  margin-top: 1.5rem !important;
}

.design-2 .elementor-widget-heading.reviews-link .elementor-heading-title {
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
}

.design-2 .elementor-widget-heading.reviews-link .elementor-heading-title a {
  color: var(--green-mid) !important;
  text-decoration: none !important;
}

.design-2 .elementor-widget-heading.reviews-link .elementor-heading-title a:hover {
  color: var(--green-dark) !important;
  text-decoration: underline !important;
}

/* Check lists — class on Icon List widget Advanced tab */
.design-2 .elementor-widget-icon-list.fll-check-list .elementor-icon-list-items,
.fll-inner-main .elementor-widget-icon-list.fll-check-list .elementor-icon-list-items,
.fll-inner-page .elementor-widget-icon-list.fll-check-list .elementor-icon-list-items {
  list-style: none !important;
  margin: 1rem 0 0 !important;
  padding: 0 !important;
  display: grid !important;
  gap: 0.65rem !important;
}

.design-2 .elementor-widget-icon-list.fll-check-list .elementor-icon-list-item,
.fll-inner-main .elementor-widget-icon-list.fll-check-list .elementor-icon-list-item,
.fll-inner-page .elementor-widget-icon-list.fll-check-list .elementor-icon-list-item {
  align-items: center !important;
  line-height: 1.65 !important;
  padding-left: 0 !important;
}

.design-2 .elementor-widget-icon-list.fll-check-list .elementor-icon-list-item::before,
.fll-inner-main .elementor-widget-icon-list.fll-check-list .elementor-icon-list-item::before,
.fll-inner-page .elementor-widget-icon-list.fll-check-list .elementor-icon-list-item::before {
  content: none !important;
  display: none !important;
}

.design-2 .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon,
.fll-inner-main .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon,
.fll-inner-page .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 !important;
  color: var(--green-mid) !important;
  line-height: 0 !important;
  overflow: hidden !important;
}

.design-2 .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon i,
.fll-inner-main .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon i,
.fll-inner-page .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon i {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  font-size: 14px !important;
  line-height: 1 !important;
  overflow: hidden !important;
}

.design-2 .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon svg,
.design-2 .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon svg path,
.fll-inner-main .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon svg,
.fll-inner-page .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon svg {
  fill: currentColor !important;
  stroke: none !important;
}

/* Header phone link styled as text button — desktop only */
@media (min-width: 1025px) {
  .design-2 .elementor-widget-button.header-v2-phone {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
  }

  .design-2 .elementor-widget-button.header-v2-phone .elementor-button {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    font-family: var(--font-body) !important;
    font-size: 0.9375rem !important;
    font-weight: 600 !important;
  }

  .design-2 .e-con.header-v2:not(.scrolled) .elementor-widget-button.header-v2-phone .elementor-button,
  .design-2 .e-con.header-v2.scrolled .elementor-widget-button.header-v2-phone .elementor-button {
    color: var(--green-dark) !important;
    text-shadow: none;
  }

  .design-2 .e-con.header-v2:not(.scrolled) .elementor-widget-button.header-v2-phone .elementor-button:hover,
  .design-2 .e-con.header-v2.scrolled .elementor-widget-button.header-v2-phone .elementor-button:hover {
    color: var(--green-mid) !important;
  }
}

/* Map embed shortcode container */
.design-2 .e-con.fll-map-embed iframe,
.design-2 .fll-map-embed iframe {
  width: 100% !important;
  height: 450px !important;
  border: 0 !important;
  border-radius: var(--radius-lg) !important;
  display: block !important;
}

/* Hero strip card — keep above angle fold; don't clip button/shadow */
.design-2 .e-con.hero-v2-strip {
  z-index: 6 !important;
  padding: 0 min(4vw, 1.25rem) 3rem !important;
  margin-top: -0.5rem !important;
  box-sizing: border-box !important;
}

.design-2 .e-con.hero-v2-strip--section {
  z-index: 1 !important;
  margin-top: 2.5rem !important;
  padding: 0 !important;
}

.design-2 .e-con.hero-v2-strip > .e-con.container {
  width: min(1200px, 92vw) !important;
  max-width: min(1200px, 92vw) !important;
  margin-inline: auto !important;
}

.design-2 .e-con.hero-v2-strip-card {
  overflow: visible !important;
  position: relative !important;
  z-index: 6 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}

.design-2 .e-con.hero-v2-strip-card > .e-con-inner {
  display: grid !important;
  grid-template-columns: auto 1px minmax(0, 1fr) auto !important;
  gap: 2rem !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 1.375rem 1.75rem !important;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.94) 0%, rgba(248, 252, 246, 0.92) 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.85) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 4px 6px rgba(30, 70, 32, 0.04), 0 16px 40px rgba(30, 70, 32, 0.1) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  overflow: visible !important;
  flex-direction: unset !important;
  flex-wrap: unset !important;
  box-sizing: border-box !important;
}

.design-2 .e-con.hero-v2-gallery {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
}

.design-2 .e-con.hero-v2-strip-divider {
  width: 1px !important;
  min-width: 1px !important;
  align-self: stretch !important;
  background: var(--border) !important;
}

.design-2 .e-con.hero-v2-strip-content,
.design-2 .e-con.hero-v2-strip-text {
  min-width: 0 !important;
}

.design-2 .elementor-widget-button.hero-v2-strip-link {
  flex-shrink: 0 !important;
  align-self: center !important;
  box-shadow: none !important;
}

.design-2 .elementor-widget-button.hero-v2-strip-link .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.625rem !important;
  padding: 0.875rem 1.5rem !important;
  font-family: var(--font-body) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  color: var(--white) !important;
  background: linear-gradient(135deg, var(--green-mid) 0%, var(--green-dark) 100%) !important;
  border: none !important;
  border-radius: 100px !important;
  box-shadow: 0 2px 10px rgba(30, 70, 32, 0.2) !important;
  transition: var(--transition) !important;
  white-space: nowrap !important;
  transform: none !important;
}

.design-2 .elementor-widget-button.hero-v2-strip-link .elementor-button:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 14px rgba(30, 70, 32, 0.28) !important;
}

.design-2 .e-con.hero.hero-v2--inner {
  overflow: hidden !important;
  margin-bottom: 0 !important;
}

.design-2 .e-con.hero.hero-v2,
.design-2 .e-con.hero.hero-v2--inner {
  overflow-x: clip !important;
}

.design-2 .e-con.hero-v2-angle,
.design-2 .e-con.hero-v2-angle--inner {
  display: none !important;
  clip-path: none !important;
  height: 0 !important;
}

.design-2 .e-con.hero-v2-tags > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 0.5rem !important;
  width: 100% !important;
}

.design-2 .e-con.hero-v2-tags .elementor-widget-heading {
  margin: 0 !important;
  width: auto !important;
  flex: 0 0 auto !important;
}

/* Inner pages — tighter vertical rhythm */
.fll-inner-page .e-con.fll-el-section,
.fll-inner-page .e-con.fll-page-section {
  padding-top: 3.5rem !important;
  padding-bottom: 3.5rem !important;
}

.fll-inner-page .e-con.hero.hero-v2--inner + .e-con.fll-el-section {
  padding-top: 2.5rem !important;
}

.fll-inner-page .e-con.fll-el-section .fll-section-cta,
.fll-inner-page .e-con.fll-el-section .fll-section-cta > .e-con-inner {
  margin-top: 1.25rem !important;
  padding-top: 0 !important;
}

.fll-inner-page .e-con.intro-content-full > .e-con-inner {
  gap: 0.75rem !important;
}

.fll-inner-page .e-con.fll-el-section .section-title .elementor-heading-title {
  margin-bottom: 0.75rem !important;
}

.fll-inner-page .e-con.fll-el-section .elementor-widget-text-editor p {
  margin-bottom: 0.875rem !important;
}

.fll-inner-page .e-con.fll-el-section .elementor-widget-text-editor p:last-child {
  margin-bottom: 0 !important;
}

/* Inner pages — global full-width content & spacing */
.fll-inner-page .e-con.fll-el-section > .e-con.container,
.fll-inner-page .e-con.fll-el-section > .e-con.container > .e-con-inner {
  width: 100% !important;
  max-width: min(1200px, 92vw) !important;
}

.fll-inner-page .e-con.intro-content-full,
.fll-inner-page .e-con.intro-content-full > .e-con-inner,
.fll-inner-page .e-con.fll-check-list-grid,
.fll-inner-page .e-con.fll-check-list-grid > .e-con-inner,
.fll-inner-page .e-con.fll-check-list-band,
.fll-inner-page .e-con.fll-check-list-band > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
}

.fll-inner-page .e-con.intro-content-full .section-desc,
.fll-inner-page .e-con.intro-content-full .elementor-widget-text-editor,
.fll-inner-page .e-con.intro-content-full .fll-prose,
.fll-inner-page .e-con.intro-content-full .fll-prose-full {
  max-width: none !important;
  width: 100% !important;
}

.fll-inner-page .e-con.problems-header,
.fll-inner-page .e-con.process-header {
  text-align: left !important;
  width: 100% !important;
  max-width: none !important;
}

.fll-inner-page .e-con.problems-header .section-desc,
.fll-inner-page .e-con.problems-header .elementor-widget-text-editor,
.fll-inner-page .e-con.process-header .section-desc,
.fll-inner-page .e-con.process-header .elementor-widget-text-editor {
  max-width: none !important;
  width: 100% !important;
  margin-inline: 0 !important;
}

.fll-inner-page .e-con.problems .fll-check-list-grid .elementor-widget-icon-list.fll-check-list .elementor-icon-list-item,
.fll-inner-page .e-con.problems .fll-check-list-grid .elementor-widget-icon-list.fll-check-list .elementor-icon-list-text,
.fll-inner-page .e-con.problems .fll-check-list-band .elementor-widget-icon-list.fll-check-list .elementor-icon-list-item,
.fll-inner-page .e-con.problems .fll-check-list-band .elementor-widget-icon-list.fll-check-list .elementor-icon-list-text,
.design-2 .e-con.problems .elementor-widget-icon-list.fll-check-list--on-dark .elementor-icon-list-item,
.design-2 .e-con.problems .elementor-widget-icon-list.fll-check-list--on-dark .elementor-icon-list-text,
.design-2 .e-con.problems .elementor-widget-icon-list.fll-check-list .elementor-icon-list-text {
  color: rgba(255, 255, 255, 0.92) !important;
}

.fll-inner-page .e-con.problems .fll-check-list-grid .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon,
.fll-inner-page .e-con.problems .fll-check-list-band .elementor-widget-icon-list.fll-check-list .elementor-icon-list-icon,
.design-2 .e-con.problems .elementor-widget-icon-list.fll-check-list--on-dark .elementor-icon-list-icon {
  color: var(--green-accent) !important;
}

.fll-inner-page .e-con.fll-section-cta,
.fll-inner-page .e-con.fll-section-cta > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
}

.fll-inner-page .e-con.fll-el-section .section-desc {
  max-width: none !important;
}

@media (max-width: 768px) {
  .design-2 .e-con.hero-v2-strip-card,
  .design-2 .e-con.hero-v2-strip-card > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
    text-align: center !important;
  }

  .design-2 .e-con.hero-v2-strip-divider {
    display: none !important;
  }

  .design-2 .elementor-widget-button.hero-v2-strip-link,
  .design-2 .elementor-widget-button.hero-v2-strip-link .elementor-button {
    width: 100% !important;
    justify-content: center !important;
  }

  /* Footer — mobile stack & center */
  .design-2 .e-con.footer-grid > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    padding: 2.5rem 1.25rem 2rem !important;
    text-align: center !important;
  }

  .design-2 .e-con.footer-brand > .e-con-inner,
  .design-2 .e-con.footer-services > .e-con-inner,
  .design-2 .e-con.footer-contact > .e-con-inner {
    align-items: center !important;
    text-align: center !important;
  }

  .design-2 .footer-brand .elementor-widget-image {
    margin-inline: auto !important;
  }

  .design-2 .footer-heading .elementor-heading-title,
  .design-2 .footer-contact-label .elementor-heading-title,
  .design-2 .footer-contact-value .elementor-heading-title {
    text-align: center !important;
  }

  .design-2 .e-con.footer-contact-list,
  .design-2 .e-con.footer-contact-item,
  .design-2 .e-con.footer-contact-item > .e-con-inner {
    align-items: center !important;
    text-align: center !important;
  }

  .design-2 .footer-contact-value .elementor-heading-title a {
    word-break: break-word !important;
  }

  .design-2 .fll-footer-nav-menu.footer-links-list .wpr-nav-menu-container {
    justify-content: center !important;
  }

  .design-2 .e-con.footer-bar-inner > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.65rem !important;
    padding: 1.25rem 1rem !important;
    text-align: center !important;
  }

  .design-2 .e-con.footer-bar-inner > .e-con-inner > .elementor-widget-heading,
  .design-2 .e-con.footer-bar-inner > .e-con-inner > .e-con.footer-legal {
    width: 100% !important;
    max-width: 100% !important;
  }

  .design-2 .footer-copy .elementor-heading-title,
  .design-2 .footer-meta .elementor-heading-title {
    text-align: center !important;
    width: 100% !important;
    white-space: normal !important;
  }

  .design-2 .e-con.footer-legal {
    justify-content: center !important;
    width: 100% !important;
  }

  .design-2 .e-con.footer-legal > .e-con-inner {
    justify-content: center !important;
    width: 100% !important;
  }
}

/* ============================================================
   Landing page (/free-estimate) — reuse homepage section CSS
   ============================================================ */
body.fll-landing-page.design-2 .e-con.intro .fll-section-cta,
body.fll-landing-page.design-2 .e-con.services .fll-section-cta,
body.fll-landing-page.design-2 .e-con.fll-landing-final-cta .fll-section-cta {
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
}

body.fll-landing-page.design-2 .e-con.fll-landing-final-cta.benefits {
  text-align: center !important;
}

body.fll-landing-page.design-2 .e-con.fll-landing-final-cta.benefits .section-title .elementor-heading-title,
body.fll-landing-page.design-2 .e-con.fll-landing-final-cta.benefits .section-desc,
body.fll-landing-page.design-2 .e-con.fll-landing-final-cta.benefits .section-desc p {
  color: #ffffff !important;
}

body.fll-landing-page.design-2 .e-con.fll-landing-final-cta.benefits .section-desc {
  max-width: 42rem !important;
  margin-inline: auto !important;
}

body.fll-landing-page.design-2 .e-con.fll-landing-contact .contact-wrapper {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 640px !important;
  margin-inline: auto !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  text-align: center !important;
}

body.fll-landing-page.design-2 .e-con.fll-landing-contact .contact-form-wrap {
  width: 100% !important;
  max-width: 100% !important;
}

body.fll-landing-page.design-2 .e-con.services-grid > .e-con-inner,
body.fll-landing-page.design-2 .e-con.why-cards > .e-con-inner,
body.fll-landing-page.design-2 .e-con.intro-grid > .e-con-inner {
  width: 100% !important;
  max-width: 100% !important;
}

body.fll-landing-page.design-2 .e-con.services-grid > .e-con-inner > .e-con.service-card,
body.fll-landing-page.design-2 .e-con.why-cards > .e-con-inner > .e-con.why-card,
body.fll-landing-page.design-2 .e-con.intro-grid > .e-con-inner > .e-con {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  --width: 100% !important;
}

body.fll-landing-page.design-2 .e-con.reviews .fll-trustindex-wrap {
  width: 100% !important;
  max-width: min(960px, 92vw) !important;
  margin-inline: auto !important;
}

body.fll-landing-page.design-2 .e-con.fll-landing-header-inner > .e-con-inner > .e-con,
body.fll-landing-page.design-2 .e-con.fll-landing-header-inner > .e-con-inner > .elementor-widget {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  --width: auto !important;
}

body.fll-landing-page.design-2 .fll-landing-header .elementor-widget-image.logo-v2 {
  --width: auto !important;
  width: auto !important;
  max-width: none !important;
}

body.fll-landing-page.design-2 .fll-landing-header .elementor-widget-image.logo-v2 img,
body.fll-landing-page.design-2 .fll-landing-header .fll-landing-header-logo img {
  width: auto !important;
  height: 120px !important;
  max-width: none !important;
}

@media (max-width: 768px) {
  body.fll-landing-page.design-2 .fll-landing-header .elementor-widget-image.logo-v2 img,
  body.fll-landing-page.design-2 .fll-landing-header .fll-landing-header-logo img {
    height: 96px !important;
  }
}

body.fll-landing-page.design-2 .e-con.fll-landing-header-inner,
body.fll-landing-page.design-2 .e-con.fll-landing-header-inner > .e-con-inner {
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}

body.fll-landing-page.design-2 .e-con.fll-landing-hero-panel.hero-v2-panel {
  background: transparent !important;
  border: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

body.fll-landing-page.design-2 .e-con.hero-v2-main .fll-landing-hero-services-line,
body.fll-landing-page.design-2 .e-con.hero-v2-main .fll-landing-hero-services-line p {
  color: rgba(255, 255, 255, 0.88) !important;
}

@media (max-width: 768px) {
  body.fll-landing-page.design-2 .e-con.hero-v2-layout > .e-con-inner {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  body.fll-landing-page.design-2 .e-con.hero-v2-main,
  body.fll-landing-page.design-2 .e-con.hero-v2-panel.fll-landing-hero-panel {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
  }
}

/* ============================================================
   Mobile sticky footer — estimate + phone
   ============================================================ */
.fll-mobile-sticky-bar {
  display: none;
}

@media (max-width: 768px) {
  body.fll-site {
    padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.fll-site.fll-modal-open,
  body.fll-site.fll-mobile-nav-open {
    padding-bottom: 0 !important;
  }

  .fll-mobile-sticky-bar {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10050;
    width: 100%;
    margin: 0;
    padding: 0;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: var(--green-dark);
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.18);
  }

  .fll-mobile-sticky-bar__btn {
    flex: 1 1 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    min-height: 3.25rem;
    padding: 0.65rem 0.75rem;
    border: none;
    border-radius: 0;
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .fll-mobile-sticky-bar__estimate {
    background: #c8dbb0;
    color: var(--green-dark);
  }

  .fll-mobile-sticky-bar__estimate:hover,
  .fll-mobile-sticky-bar__estimate:focus-visible {
    background: #b8cf9c;
    color: var(--green-dark);
  }

  .fll-mobile-sticky-bar__phone {
    background: var(--green-dark);
    color: #ffffff;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    gap: 0.65rem !important;
  }

  .fll-mobile-sticky-bar__phone:hover,
  .fll-mobile-sticky-bar__phone:focus-visible {
    background: var(--green-mid);
    color: #ffffff;
  }

  .fll-mobile-sticky-bar__phone-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    color: #ffffff;
  }

  body.fll-modal-open .fll-mobile-sticky-bar,
  body.fll-mobile-nav-open .fll-mobile-sticky-bar {
    display: none;
  }

  #ast-scroll-top {
    bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* Phone icon — green SVG instead of red emoji */
.fll-phone-icon {
  display: inline-block;
  vertical-align: -0.125em;
  flex-shrink: 0;
  color: var(--green-mid);
}

.fll-btn-with-phone {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
}

.fll-btn-with-phone .fll-phone-icon {
  color: var(--green-dark);
}

.design-2 .fll-btn-phone .elementor-button-content-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
}

.design-2 .fll-btn-phone .elementor-button-text::before {
  content: "" !important;
  display: inline-block !important;
  width: 0.95em !important;
  height: 0.95em !important;
  flex-shrink: 0 !important;
  background-color: currentColor !important;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") !important;
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;
}

.design-2 .fll-landing-header-call .fll-btn-phone .elementor-button-text::before,
.design-2 .fll-landing-hero-call.fll-btn-phone .elementor-button-text::before,
.design-2 .fll-mobile-sticky-bar__phone .fll-phone-icon {
  color: #ffffff;
}

.design-2 .fll-landing-header-call .fll-btn-phone .elementor-button,
.design-2 .fll-landing-hero-call.fll-btn-phone .elementor-button,
.design-2 .fll-landing-hero-call.fll-btn-phone .elementor-button-text {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.design-2 .fll-landing-header-call .fll-btn-phone .elementor-button-content-wrapper,
.design-2 .fll-landing-hero-call.fll-btn-phone .elementor-button-content-wrapper {
  gap: 0.65rem !important;
}

.design-2 .fll-landing-header-call .fll-btn-phone .elementor-button-text::before,
.design-2 .fll-landing-hero-call.fll-btn-phone .elementor-button-text::before {
  margin-right: 0.2rem !important;
}
