/* Olive-green accents sampled from the Vita Cleaning logo. */
html body, html body.vc-reference-home {
  --vc-green: #658f22;
  --vc-pistachio: #e4efcf;
  --vc-brand-green: #7dbb29;
  --vc-brand-green-hover: #70aa25;
  --vc-brand-green-soft: #edf5df;
  --vc-reference-green: linear-gradient(180deg, #88bd23 0%, #6ab42d 100%);
  --vc-olive-gradient: linear-gradient(180deg, #88bd23 0%, #6ab42d 100%);
  --vc-olive-hover: linear-gradient(180deg, #7db52a 0%, #61a62a 100%);
  --vc-olive-soft: linear-gradient(160deg, #f3f8e9 0%, #e4efcf 100%);
  --vc-olive-text: #26321d;
  --vc-blue-gradient: linear-gradient(180deg, #0b7db4 0%, #0876a9 100%);
  --vc-blue-hover: linear-gradient(180deg, #0b79b0 0%, #076f9f 100%);
  --vc-bg: #f9faf6;
}
/* Give controls a restrained highlight without altering their dimensions. */
html body :is(button, .btn, .vc-btn, .seo-btn, .vc-mobilebar a, .vc-social, .mobile-menu__nav a) {
  background-image: linear-gradient(180deg, rgba(255,255,255,.12), rgba(0,0,0,.025)) !important;
}
html body :is(.vc-btn--primary, .btn--primary, .seo-btn--primary, .seo-price .seo-btn, .seo-cta .seo-btn),
html body .services .btn,
html body .hero-callback__form button[type="submit"],
html body :is(.vc-equipment-filters, .vc-review-filters) button:is(.is-active, :hover) {
  background: var(--vc-olive-gradient) !important;
  border-color: #78ad27 !important;
  color: var(--vc-olive-text) !important;
  text-shadow: none !important;
  box-shadow: 0 6px 16px rgba(118,132,77,.13) !important;
}
html body :is(.vc-btn--primary, .btn--primary, .seo-btn--primary, .seo-price .seo-btn, .seo-cta .seo-btn):hover,
html body .services .btn:hover,
html body .hero-callback__form button[type="submit"]:hover {
  background: var(--vc-olive-hover) !important;
  border-color: #6a9e24 !important;
}
/* Blue controls retain their colour with the same soft vertical transition. */
html body :is(.service-card, .vc-service, .vc-promo):nth-child(even) :is(.btn, .vc-btn--primary),
html body .vc-mobilebar a:first-child,
html body .vc-interactive-filters:not(.vc-equipment-filters) button:is(.is-active, :hover) {
  background: var(--vc-blue-gradient) !important;
  border-color: #0879ae !important;
  color: #fff !important;
  text-shadow: none !important;
  box-shadow: 0 6px 16px rgba(0,123,184,.12) !important;
}
html body :is(.service-card, .vc-service, .vc-promo):nth-child(even) :is(.btn, .vc-btn--primary):hover,
html body .vc-mobilebar a:first-child:hover {
  background: var(--vc-blue-hover) !important;
}
html body :is(.vc-btn--secondary, .btn--secondary, .seo-btn--secondary),
html body .vc-mobilebar a:not(:first-child) {
  background: var(--vc-olive-soft) !important;
  border-color: #c4d8a3 !important;
  color: var(--vc-olive-text) !important;
  text-shadow: none !important;
}
html body :is(.vc-page-hero__actions, .hero__buttons) :is(.vc-btn--secondary, .btn--secondary) {
  color: #00669e !important;
  background: linear-gradient(180deg, #f5fbfd, #e8f4f9) !important;
  border-color: #c9e1ec !important;
}
html body .vc-price-table th {
  background: var(--vc-olive-gradient) !important;
  color: var(--vc-olive-text) !important;
}
html body .vc-price-table tr:nth-child(even) td {
  background: linear-gradient(180deg, #f8f9f1, #eaf2da) !important;
}
html body .topbar, html body .vc-topbar {
  background: linear-gradient(180deg, #e7f1d5, #dceabf) !important;
}
html body main > :is(.vc-section, .vc-page-section, .seo-section):nth-of-type(4n+1) {
  background: linear-gradient(150deg, #f3f8e9, #eaf2da) !important;
}
html body main > .services,
html body :is(.vc-page-hero, .vc-quiz-section) {
  background: linear-gradient(115deg, #e7f1d5, #fafbf6 55%, #eef7fb) !important;
}
html body .hero-callback {
  background: linear-gradient(145deg, rgba(249,250,240,.9), rgba(235,240,217,.86)) !important;
  border-color: #bfd79c !important;
}
html body :is(.vc-form, .seo-price) {
  background: var(--vc-olive-soft) !important;
  border-color: #cbdcaf !important;
}
html body :is(.service-card, .vc-service, .vc-benefit, .vc-equipment, .vc-step, .vc-info-card, .vc-about__panel, .seo-card, .seo-step):nth-child(odd) {
  --vc-icon-color: #658f22;
  border-color: #d1e0b8 !important;
}
html body :is(.service-card, .vc-service, .vc-info-card, .vc-about__panel, .seo-card):nth-child(odd) {
  background-image: linear-gradient(145deg, #fff, #f6f8ed) !important;
}
html body .service-card:nth-child(odd) .service-card__icon { color: #658f22 !important; }
html body .service-card:nth-child(odd) .price,
html body :is(.vc-form__selection, .vc-about__logos span, .eyebrow, .vc-kicker, .vc-hero__badge) {
  color: #4d6824 !important;
  background: var(--vc-olive-soft) !important;
  border-color: #c4d8a3 !important;
}
html body .service-card:nth-child(odd) .price span { color: #4d6824 !important; }
html body .vc-quiz__summary,
html body .vc-about__strip,
html body :is(.note, .vc-note) {
  background: var(--vc-olive-soft) !important;
  border-color: #cbdcaf !important;
  color: var(--vc-olive-text) !important;
}
html body .vc-quiz__summary :is(h3,p,dt,dd),
html body .vc-quiz__summary > span,
html body.vc-reference-home .vc-quiz__summary h3[data-summary-type] { color: var(--vc-olive-text) !important; }
html body .vc-about__panel:nth-child(odd) h3,
html body .vc-about__strip strong:nth-child(odd) { color: #4d6824 !important; }
html body .vc-quiz__progress span { background: linear-gradient(90deg, #a9ce76, #1490c3) !important; }
html body :is(.vc-choice, .vc-range) { accent-color: #658f22; }
html body :is(.vc-choice:hover, .vc-choice.is-active) {
  background: var(--vc-olive-soft) !important;
  border-color: #9cc55e !important;
  box-shadow: inset 0 0 0 1px #9cc55e !important;
}
html body .hero-benefit__icon {
  color: #526f24 !important;
  background: var(--vc-olive-soft) !important;
}
html body :is(.vc-step, .seo-step):nth-child(odd) .vc-step__number,
html body .seo-step:nth-child(odd)::before,
html body .vc-step__toggle b,
html body .vc-faq:nth-child(odd) button::after,
html body .seo-related a:nth-child(odd) {
  color: #4d6824 !important;
  background: var(--vc-olive-soft) !important;
  border-color: #cbdcaf !important;
}
html body .vc-faq:nth-child(odd) button::before { background: #658f22 !important; }
html body .vc-review__stars { color: #658f22 !important; }
html body.vc-reference-home .vc-benefit:nth-child(odd) { border-top-color: #a9ce76 !important; }
html body .vc-faq.is-open { background: var(--vc-olive-soft) !important; border-color: #cbdcaf !important; }
html body :is(.vc-footer, .seo-cta) {
  background: linear-gradient(120deg, #e0edcb, #cfe3b0) !important;
  color: #344537 !important;
}
html body .vc-footer :is(h3,a,p,span),
html body .seo-cta :is(h2,h3,p,strong) { color: #344537 !important; }
html body .vc-footer__bottom { border-color: #c7d3b5 !important; }
html body .vc-footer .vc-social { color: #344537 !important; }
html body :is(.vc-btn,.btn,.seo-btn,button):focus-visible { outline-color: #658f22 !important; }

html body :is(.badge, .stat__icon, .vc-hero__benefit, .vc-benefit__icon) {
  color: #526f24 !important;
  background: var(--vc-olive-soft) !important;
  border-color: #cbdcaf !important;
}
html body .topbar__item:first-child .icon { color: #658f22 !important; }
html body .vc-page-hero__eyebrow { color: #526f24 !important; }
html body .hero-callback__consent a { color: #526f24 !important; }
html body .vc-btn--primary::before { --vc-icon-color: #26321d; }
html body :is(.vc-service,.vc-promo):nth-child(even) .vc-btn--primary::before { --vc-icon-color: #fff; }

/* Clearer headings and spacing on the two price catalogues. */
html body main:has(.vc-price-catalog) h2 {
  margin: 0;
  font-size: clamp(20px, 2.1vw, 26px) !important;
  font-weight: 650 !important;
  line-height: 1.3 !important;
  letter-spacing: -.02em !important;
}
html body main:has(.vc-price-catalog) h2 + .vc-table-wrap {
  margin-top: 18px;
}
html body main:has(.vc-price-catalog) .vc-price-note + h2 {
  margin-top: 40px;
}
@media (max-width: 768px) {
  html body main:has(.vc-price-catalog) h2 + .vc-table-wrap {
    margin-top: 14px;
  }
  html body main:has(.vc-price-catalog) .vc-price-note + h2 {
    margin-top: 32px;
  }
}


/* Green-to-blue transitions matched to the supplied gradient reference. */
html body, html body.vc-reference-home {
  --vc-brand-gradient: linear-gradient(100deg, #a2cc74 0%, #64b995 48%, #279ccd 100%);
  --vc-brand-gradient-hover: linear-gradient(100deg, #98c56a 0%, #57b18c 48%, #2498c7 100%);
  --vc-olive-gradient: var(--vc-brand-gradient);
  --vc-reference-green: var(--vc-brand-gradient);
  --vc-blue-gradient: var(--vc-brand-gradient);
  --vc-olive-hover: var(--vc-brand-gradient-hover);
  --vc-blue-hover: var(--vc-brand-gradient-hover);
  --vc-olive-soft: linear-gradient(110deg, #dcebc3 0%, #d0e9dc 48%, #c6e4f0 100%);
  --vc-olive-text: #082630;
}
html body :is(button, .btn, .vc-btn, .seo-btn, .vc-mobilebar a, .vc-social, .mobile-menu__nav a) {
  background-image: var(--vc-olive-soft) !important;
}
html body :is(.service-card, .vc-service, .vc-promo):nth-child(even) :is(.btn, .vc-btn--primary),
html body .vc-mobilebar a:first-child,
html body .vc-interactive-filters:not(.vc-equipment-filters) button:is(.is-active, :hover) {
  color: var(--vc-olive-text) !important;
  border-color: #80bdac !important;
}
html body :is(.vc-btn--primary, .btn--primary, .seo-btn--primary),
html body .services .btn,
html body .hero-callback__form button[type="submit"] {
  border-color: #80bdac !important;
  box-shadow: 0 7px 20px rgba(35,139,157,.18) !important;
}
html body :is(.vc-btn--primary, .btn--primary, .seo-btn--primary)::before,
html body :is(.vc-service, .vc-promo):nth-child(even) .vc-btn--primary::before {
  --vc-icon-color: #082630;
}
html body::before {
  background: linear-gradient(125deg, #edf4dc 0%, #d9ecdf 45%, #cde6f0 100%) !important;
}
html body main > :is(.vc-section, .vc-page-section, .seo-section):nth-of-type(odd) {
  background: linear-gradient(110deg, #d5eab5 0%, #c5e5d9 48%, #b9dfed 100%) !important;
}
html body main > :is(.vc-section, .vc-page-section, .seo-section):nth-of-type(even) {
  background: linear-gradient(110deg, #e6f1d5 0%, #deefea 50%, #d2eaf5 100%) !important;
}
html body main > .services,
html body :is(.vc-page-hero, .vc-quiz-section) {
  background: linear-gradient(110deg, #cfe6af 0%, #bfe1d4 48%, #acd7e9 100%) !important;
}
html body .topbar, html body .vc-topbar {
  background: linear-gradient(100deg, #d3e7ad, #badce9) !important;
}
html body .hero-callback {
  background: linear-gradient(110deg, rgba(220,235,187,.94), rgba(185,220,237,.92)) !important;
  border-color: #a8c99a !important;
}
html body :is(.vc-footer, .seo-cta) {
  background: linear-gradient(110deg, #c5dfa3, #a2d2e3) !important;
}
html body .vc-price-table tr:nth-child(even) td {
  background: linear-gradient(110deg, #edf5df, #dceef4) !important;
}
html body :is(.vc-page-hero__actions, .hero__buttons) :is(.vc-btn--secondary, .btn--secondary) {
  background: var(--vc-olive-soft) !important;
  color: #082630 !important;
  border-color: #b3d4ce !important;
}
html body .vc-page-hero__text,
html body .vc-lead,
html body .section-head > p:not(.eyebrow),
html body .vc-section-head > p,
html body .seo-text > p,
html body .vc-price-note {
  color: #405963 !important;
}
html body.vc-reference-home .hero__visual::before {
  background: linear-gradient(90deg, rgba(226,242,198,.97) 0%, rgba(219,239,222,.91) 32%, rgba(177,221,238,.4) 56%, transparent 76%) !important;
}
@media (max-width: 768px) {
  html body.vc-reference-home .hero__visual::before {
    background: linear-gradient(110deg, rgba(226,242,198,.96), rgba(197,229,241,.86)) !important;
  }
}

/* One continuous transition across each table row. */
html body .vc-price-table thead {
  background: var(--vc-brand-gradient) !important;
}
html body .vc-price-table thead th {
  background: transparent !important;
}
html body .vc-price-table tbody tr:nth-child(even) {
  background: linear-gradient(110deg, #edf5df, #dceef4) !important;
}
html body .vc-price-table tbody tr:nth-child(even) td {
  background: transparent !important;
}

/* Airy white-to-blue section backgrounds; brand controls keep their palette. */
html body::before {
  background: linear-gradient(110deg, #ffffff, #edf7fc) !important;
}
html body main > :is(.vc-section, .vc-page-section, .seo-section):nth-of-type(odd) {
  background: linear-gradient(110deg, #ffffff 0%, #e4f2fb 100%) !important;
}
html body main > :is(.vc-section, .vc-page-section, .seo-section):nth-of-type(even) {
  background: linear-gradient(110deg, #ffffff 0%, #edf7fc 100%) !important;
}
html body main > .services,
html body :is(.vc-page-hero, .vc-quiz-section),
html body :is(.vc-footer, .seo-cta) {
  background: linear-gradient(110deg, #ffffff 0%, #deeffa 100%) !important;
}
html body.vc-reference-home .hero,
html body:not(.vc-reference-home) .service-hero {
  background: linear-gradient(110deg, #ffffff, #e4f2fb) !important;
}
html body.vc-reference-home .hero__visual::before {
  background: linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(237,247,252,.92) 32%, rgba(211,233,247,.4) 56%, transparent 76%) !important;
}
html body:not(.vc-reference-home) .service-hero .hero__visual::before {
  background: linear-gradient(90deg, #ffffff, rgba(237,247,252,.85) 30%, rgba(211,233,247,.1) 65%) !important;
}
@media (max-width: 768px) {
  html body.vc-reference-home .hero__visual::before {
    background: linear-gradient(110deg, rgba(255,255,255,.97), rgba(226,241,251,.86)) !important;
  }
}

/* Buttons matched to the supplied green reference. Preserve every action and label. */
html:root body:is(body, .vc-reference-home) {
 --vc-button-gradient: linear-gradient(115deg,#6fc54a 0%,#35912c 100%);
 --vc-button-hover-gradient: linear-gradient(115deg,#65bb3e 0%,#2e8423 100%);
}
html:root body:is(body, .vc-reference-home) :is(.hero .hr-hero-actions .btn, .vc-promo:nth-child(even) .vc-btn, .btn, .vc-btn, .seo-btn, .vc-mobilebar a, button, input[type="submit"], input[type="button"]) {
 background: var(--vc-button-gradient) !important;
 color: #fff !important;
 border-color: #64b746 !important;
 border-radius: 13px !important;
 box-shadow: 0 5px 14px #459e3224 !important;
 text-shadow: 0 1px 1px #235e2220 !important;
 --vc-icon-color: #fff !important;
}
html:root body:is(body, .vc-reference-home) :is(.hero .hr-hero-actions .btn, .vc-promo:nth-child(even) .vc-btn, .btn, .vc-btn, .seo-btn, .vc-mobilebar a, button, input[type="submit"], input[type="button"]):hover {
 background: var(--vc-button-hover-gradient) !important;
 color: #fff !important;
}
html:root body:is(body, .vc-reference-home) :is(.hero .hr-hero-actions .btn, .vc-promo:nth-child(even) .vc-btn, .btn, .vc-btn, .seo-btn, .vc-mobilebar a, button, input[type="submit"], input[type="button"]):focus-visible {
 outline: 2px solid #246d26 !important;
 outline-offset: 3px;
}
html:root body:is(body, .vc-reference-home) :is(.hero .hr-hero-actions .btn, .vc-promo:nth-child(even) .vc-btn, .btn, .vc-btn, .seo-btn, .vc-mobilebar a, button, input[type="submit"], input[type="button"]):disabled {
 opacity: .5 !important;
 cursor: not-allowed !important;
}
/* Keep the selected filter distinguishable when every control has the same colour. */
html:root body:is(body, .vc-reference-home) :is(.vc-interactive-filters, .vc-review-filters, .vc-service-filters) button.is-active {
 outline: 2px solid #286d27 !important;
 outline-offset: -3px;
 box-shadow: inset 0 0 0 2px #ffffff70 !important;
}
html:root body:is(body, .vc-reference-home) :is(.btn, .vc-btn, .seo-btn)::before { --vc-icon-color: #fff !important; }
html:root body:is(body, .vc-reference-home) .burger span { background: #fff !important; }
html:root body:is(body, .vc-reference-home) .vc-step__toggle { padding-inline: 12px !important; }
html:root body:is(body, .vc-reference-home) .vc-step__toggle b { color: #fff !important; background: #ffffff26 !important; }
html:root body:is(body, .vc-reference-home) .vc-faq button::after { color: #fff !important; background: transparent !important; }
html:root body:is(body, .vc-reference-home) .vc-faq button::before { background: #fff !important; }
/* Circular utility controls retain their shape and tap target. */
html:root body:is(body, .vc-reference-home) :is(.cc-area-controls button, .vc-lightbox button, .hr-carousel-nav button) { border-radius: 50% !important; }
/* White icons and inner spacing keep the reference treatment readable. */
html:root body:is(body, .vc-reference-home) :is(.hero .hr-hero-actions .btn, .vc-promo:nth-child(even) .vc-btn, .btn, .vc-btn, .seo-btn, .vc-mobilebar a, button) :is(.icon, svg) { color: #fff !important; }
html:root body:is(body, .vc-reference-home) .vc-faq button { padding-inline: 14px !important; }
html:root body:is(body, .vc-reference-home) .vc-faq { margin-bottom: 8px !important; }
