/* --- Global Styles --- */

/* FAQ toggle content - normal weight (aggressive override for Avada) */
:root {
    --awb-content-font-weight: 400 !important;
}
body .fusion-accordian,
body .fusion-accordion,
body .fusion-toggle {
    --awb-content-font-weight: 400 !important;
}
body .fusion-accordian .toggle-content,
body .fusion-accordian .toggle-content *,
body .fusion-accordion .toggle-content,
body .fusion-accordion .toggle-content *,
body .fusion-toggle .toggle-content,
body .fusion-toggle .toggle-content *,
body .panel-body,
body .panel-body *,
body .toggle-content,
body .toggle-content * {
    font-weight: 400 !important;
}

/* Hide empty paragraphs in post content */
.post-content > p:first-child:empty,
.post-content > p:empty {
  display: none !important;
  margin: 0;
  padding: 0;
  line-height: 0;
  height: 0;
}

.get-est-btn {
  margin-left: 20px !important;
}

/* Header estimate button - tablet responsive */
@media (max-width: 1024px) {
  li.get-est-btn {
    margin-left: 0 !important;
  }
  li.get-est-btn .fusion-button {
    padding: 6px 12px !important;
    line-height: 1 !important;
    height: auto !important;
    min-height: 0 !important;
  }
}

.awb-menu__sub-li {
  border: none;
}

.awb-menu__sub-li,
.awb-menu__sub-a,
.awb-menu__sub-a span {
  transition-duration: 0.15s !important;
}

.awb-menu__sub-ul,
.awb-menu__main-a,
.awb-menu__sub-a {
  transition-duration: 0.23s !important;
}


/* --- Areas We Serve: City Cards --- */

.area-card {
  position: relative;
  overflow: hidden;
  pointer-events: none;
}

.area-card .fusion-column-inner-bg,
.area-card .fusion-column-wrapper {
  pointer-events: auto;
}

.area-card .fusion-column-inner-bg-image {
  transition: background-color 0.2s ease !important;
}

.area-card .fusion-column-inner-bg:hover .fusion-column-inner-bg-image {
  background-color: #f5f9f6 !important;
}

.area-card .fusion-column-wrapper {
  position: static !important;
}

.area-card .tree-svg {
  position: absolute !important;
  bottom: -6px !important;
  right: 0 !important;
  width: 50%;
  height: 85%;
  opacity: 0.2;
  z-index: 0;
  pointer-events: none;
}

.area-card .tree-svg path {
  fill: none;
  stroke: #0e2b0c;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 500;
  stroke-dashoffset: 500;
  transition: stroke-dashoffset 0.4s linear 0s !important;
}

.area-card .fusion-column-inner-bg:hover + .fusion-column-wrapper .tree-svg path {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1.6s linear 0s !important;
}

.area-card .fusion-title,
.area-card .fusion-text {
  position: relative;
  z-index: 1;
}

/* Hide tree animations on mobile/tablet */
@media (max-width: 1024px) {
  .area-card .tree-svg,
  .city-service-card .tree-svg {
    display: none !important;
  }
}

/* --- Services Page: Service Cards --- */
/* Add class="service-cards" to the container */

.service-cards .fusion-layout-column {
  position: relative;
  overflow: hidden;
  pointer-events: none;
}

.service-cards .fusion-column-inner-bg,
.service-cards .fusion-column-wrapper {
  pointer-events: auto;
}

.service-cards .fusion-column-wrapper {
  border: 1px solid #e0e0e0 !important;
}

.service-cards .fusion-column-inner-bg-image {
  background-color: #f5f9f6 !important;
  transition: background-color 0.2s ease !important;
}

.service-cards .fusion-column-inner-bg:hover .fusion-column-inner-bg-image {
  background-color: #ffffff !important;
}

.service-cards .service-icon-wrap {
  margin-bottom: 15px;
}

.service-cards .service-svg {
  width: 80px;
  height: 80px;
  display: block;
  margin: 0 auto;
}

.service-cards .service-svg path {
  fill: none;
  stroke: #0e2b0c;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 300;
  stroke-dashoffset: 0;
}

/* Traveling trace effect on hover */
.service-cards .service-svg .trace-path {
  stroke: #8ead93;
  stroke-width: 3;
  stroke-dasharray: 20 280;
  stroke-dashoffset: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.service-cards .fusion-column-inner-bg:hover + .fusion-column-wrapper .service-svg .trace-path,
.service-cards .fusion-column-inner-bg:hover + .fusion-column-wrapper .trace-path {
  opacity: 1;
  animation: trace-travel 1.5s linear infinite;
}

@keyframes trace-travel {
  0% {
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dashoffset: -300;
  }
}

/* --- Homepage Service Cards (CPT-driven) --- */
.service-homepage-cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    padding-top: 0;
    margin-top: 0;
}
.service-homepage-cards .service-homepage-card {
    flex: 0 0 calc(33.333% - 14px);
}
.service-homepage-cards[data-columns="2"] .service-homepage-card {
    flex: 0 0 calc(50% - 10px);
}
.service-homepage-cards[data-columns="4"] .service-homepage-card {
    flex: 0 0 calc(25% - 15px);
}
@media (max-width: 1024px) {
    .service-homepage-cards .service-homepage-card {
        flex: 0 0 calc(50% - 10px);
    }
}
@media (max-width: 640px) {
    .service-homepage-cards .service-homepage-card,
    .service-homepage-cards[data-columns="2"] .service-homepage-card,
    .service-homepage-cards[data-columns="4"] .service-homepage-card {
        flex: 0 0 100%;
    }
}

.service-homepage-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: #f5f9f6;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 50px 20px;
    text-align: center;
    text-decoration: none;
    overflow: hidden;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}
.service-homepage-card:hover {
    background: #ffffff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

/* Background image and overlay */
.service-homepage-card .card-bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}
.service-homepage-card .card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    transition: opacity 0.2s ease;
}
.service-homepage-card:hover .card-overlay {
    opacity: 0.7 !important;
}

/* Card content */
.service-homepage-card .card-content {
    position: relative;
    z-index: 2;
}

.service-homepage-card .service-icon-wrap {
    margin-bottom: 15px;
}
.service-homepage-card .service-svg {
    width: 80px;
    height: 80px;
    display: block;
    margin: 0 auto;
}
.service-homepage-card .service-svg path {
    fill: none;
    stroke: #0e2b0c;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 300;
    stroke-dashoffset: 0;
}

/* Text with background - make readable */
.service-homepage-card:has(.card-bg) .service-title,
.service-homepage-card:has(.card-bg) .service-subtitle {
    color: #ffffff;
}
.service-homepage-card:has(.card-bg) .service-svg path {
    stroke: #ffffff;
}

.service-homepage-card .service-title {
    font-size: 28.8px;
    font-weight: 400;
    color: #0e2b0c;
    margin: 0;
    line-height: 1;
}
.service-homepage-card .service-subtitle {
    font-size: 18px;
    color: #333;
    margin: 8px 0 0;
    line-height: 1.6;
}

/* Traveling trace effect on hover */
.service-homepage-card .service-svg .trace-path {
    stroke: #8ead93;
    stroke-width: 3;
    stroke-dasharray: 20 280;
    stroke-dashoffset: 0;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.service-homepage-card:hover .service-svg .trace-path {
    opacity: 1;
    animation: trace-travel 1.5s linear infinite;
}

/* --- Service Icon Shimmer Effect --- */
.service-icon-wrap {
  position: relative;
  display: block;
  width: 92px;
  height: 92px;
  margin: 0 auto;
  overflow: hidden;
}

.service-icon-wrap .service-icon {
  width: 100%;
  height: 100%;
  display: block;
}

.service-icon-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 80%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.7),
    transparent
  );
  transform: skewX(-25deg);
  z-index: 10;
  pointer-events: none;
  opacity: 0;
}

a:hover .service-icon-wrap::after,
.service-cards .fusion-column-inner-bg:hover + .fusion-column-wrapper .service-icon-wrap::after {
  opacity: 1;
  animation: shimmer 0.8s ease-out;
}

@keyframes shimmer {
  0% {
    left: -80%;
  }
  100% {
    left: 150%;
  }
}







/* --- Emergency Button Pulse --- */
.fusion-button.emerg-btn {
  animation: emergency-pulse 2.5s ease-in-out infinite;
}

@keyframes emergency-pulse {
  0%, 100% {
    filter: drop-shadow(0 0 0 rgba(255, 0, 0, 0));
  }
  50% {
    filter: drop-shadow(0 0 12px rgba(255, 0, 0, 0.7));
  }
}

/* --- CTA Button Glow --- */
.fusion-button.cta-glow-btn {
  animation: cta-glow-pulse 2.5s ease-in-out infinite;
}

@keyframes cta-glow-pulse {
  0%, 100% {
    filter: drop-shadow(0 0 0 rgba(14, 43, 12, 0));
  }
  50% {
    filter: drop-shadow(0 0 12px rgba(14, 43, 12, 0.7));
  }
}

/* --- Testimonials --- */
.russ-testimonial-card {
  background: #fff;
  border-left: 4px solid #0e2b0c;
  padding: 24px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.russ-testimonial-quote {
  font-style: italic;
  margin-bottom: 12px;
  font-size: 0.85em;
  line-height: 1.4;
}

.russ-testimonial-quote p {
  margin: 0;
}

.russ-testimonial-author {
  font-size: 14px;
  color: #555;
}

@media (max-width: 768px) {
  .russ-testimonials {
    grid-template-columns: 1fr !important;
  }
}

/* --- Testimonial Animation --- */
.russ-testimonial-card {
  position: relative;
  overflow: hidden;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.russ-testimonial-card.visible {
  opacity: 1;
  transform: translateY(0);
}

.russ-testimonial-card .tree-bg {
  position: absolute;
  bottom: -10px;
  right: 10px;
  width: 80px;
  height: 100px;
  opacity: 0;
  z-index: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.russ-testimonial-card .tree-bg path {
  fill: none;
  stroke: #0e2b0c;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
}

.russ-testimonial-card.visible .tree-bg {
  opacity: 0.1;
}

.russ-testimonial-card.visible .tree-bg path {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1.2s ease-out 0.2s;
}

.russ-testimonial-card > *:not(.tree-bg) {
  position: relative;
  z-index: 1;
}


.awb-menu.awb-menu_column .awb-menu__main-a {
  display: inline;
}




/* --- Vertical Menu: Link only on text --- */
.awb-menu.awb-menu_column .awb-menu__main-li {
  display: block;
  pointer-events: none;
}

.awb-menu.awb-menu_column .awb-menu__main-a {
  display: inline-block;
  width: auto;
  cursor: pointer;
  pointer-events: auto;
}

.awb-menu.awb-menu_column .awb-menu__main-background-default,
.awb-menu.awb-menu_column .awb-menu__main-background-active {
  display: none;
}




/* ===========================================
   CPT TEMPLATES - Shared Styles
   For russ_city and russ_service single pages
   =========================================== */

/* 100% width page - backgrounds edge-to-edge, content at site width */
.single-russ_city #main,
.single-russ_service #main {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.single-russ_city #main > .fusion-row,
.single-russ_service #main > .fusion-row {
    max-width: 100% !important;
    width: 100% !important;
}
.single-russ_city .fusion-fullwidth,
.single-russ_service .fusion-fullwidth {
    width: 100% !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.single-russ_city .fusion-fullwidth > .fusion-row,
.single-russ_service .fusion-fullwidth > .fusion-row {
    max-width: var(--site_width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.single-russ_city .fusion-flex-container,
.single-russ_service .fusion-flex-container {
    display: block !important;
}

/* Mobile padding for CPT templates - set Avada CSS variables */
@media (max-width: 640px) {
    .single-russ_city .fusion-column-wrapper,
    .single-russ_service .fusion-column-wrapper,
    .post-type-archive-russ_city .fusion-column-wrapper {
        --awb-padding-left-small: 20px;
        --awb-padding-right-small: 20px;
    }
}

/* Animated Tree - Base Styles */
.russ-tree-container {
    width: 100%;
    max-width: 605px;
    margin: 0 auto;
    overflow: visible;
    z-index: 10;
}

/* CTA Section Tree Positioning */
.russ-cta-section .fusion-fullwidth { overflow: visible !important; }
.russ-cta-section .russ-tree-container {
    position: absolute;
    bottom: -54px;
    left: 50%;
    transform: translateX(-50%);
    width: 605px;
    max-width: none;
}
.russ-cta-tree-col { position: relative; min-height: 400px; }
@media (max-width: 1024px) {
    .russ-cta-section .russ-tree-container { width: 450px; bottom: -44px; }
}
@media (max-width: 768px) {
    .russ-cta-section .russ-tree-container { position: relative; bottom: 0; width: 100%; margin: 20px auto 0; }
    .russ-cta-tree-col { min-height: 250px; }
}

/* Trust Badge Section (Cities) */
.trust-section-wrap {
    position: relative;
    background-color: #0e2b0c;
}
.trust-section-inner {
    max-width: 1248px;
    margin: 0 auto;
    padding: 52px 30px 78px;
}
.trust-section-title {
    text-align: center;
    color: #ffffff !important;
    font-size: 43.2px;
    line-height: 1.1;
    margin: 0 0 40px;
}
@media (max-width: 768px) {
    .trust-section-title { font-size: 32px; }
}

/* Trust Badge Cards */
.trust-badges-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
@media (max-width: 991px) {
    .trust-badges-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .trust-badges-grid { grid-template-columns: 1fr; }
}
.trust-card {
    position: relative;
    background: linear-gradient(145deg, rgba(142, 173, 147, 0.08) 0%, rgba(255, 255, 255, 0.03) 100%);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(142, 173, 147, 0.2);
    border-radius: 16px;
    padding: 32px 24px;
    text-align: center;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.trust-card::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 16px;
    padding: 1px;
    background: linear-gradient(135deg, rgba(142, 173, 147, 0.4), transparent 50%, rgba(142, 173, 147, 0.2));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity 0.4s ease;
}
.trust-card:hover {
    transform: translateY(-4px);
    border-color: rgba(142, 173, 147, 0.4);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 30px rgba(142, 173, 147, 0.1);
}
.trust-card:hover::after { opacity: 1; }
.trust-card-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(142, 173, 147, 0.2) 0%, rgba(142, 173, 147, 0.05) 100%);
    border-radius: 12px;
    position: relative;
    z-index: 1;
}
.trust-card-icon svg {
    width: 28px;
    height: 28px;
    fill: #8ead93;
}
.trust-card-title,
.trust-card h3.trust-card-title {
    font-size: 22px;
    font-weight: 700;
    color: #ffffff !important;
    margin: 0 0 8px 0;
    position: relative;
    z-index: 1;
}
.trust-card-desc {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.75);
    margin: 0;
    line-height: 1.5;
    position: relative;
    z-index: 1;
}

/* Basic List Spacing */
.fusion-text ul li,
.post-content ul li {
    margin-bottom: 10px;
}

/* Hero Intro Text Shadow (Services) */
.hero-intro p {
    text-shadow: 0 1px 3px rgba(142, 173, 147, 0.5);
}

/* Hero Trust Badges (Services) */
.russ-hero-badges {
    display: flex;
    gap: 30px;
    margin-top: 10px;
    margin-bottom: 15px;
    flex-wrap: wrap;
}
.russ-hero-badge {
    display: flex;
    align-items: center;
    gap: 10px;
}
.russ-hero-badge-icon {
    width: 40px;
    height: 40px;
    background: #8ead93;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.russ-hero-badge-icon svg {
    width: 20px;
    height: 20px;
    fill: #0e2b0c;
}
.russ-hero-badge-text strong {
    display: block;
    font-size: 16px;
    color: #0e2b0c;
    margin-bottom: -10px;
}
.russ-hero-badge-text span {
    font-size: 13px;
    color: #555;
    line-height: 1.2;
}

/* Hero Buttons (Services) */
.hero-buttons {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    margin-top: 20px;
}
.hero-btn {
    display: inline-block;
    padding: 14px 28px;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    border-radius: 4px;
    transition: all 0.2s ease;
}
.hero-btn-primary {
    background: #a02120;
    color: #fff;
}
.hero-btn-primary:hover {
    background: #8a1c1b;
    color: #fff;
}
.hero-btn-secondary {
    background: #0e2b0c;
    color: #fff;
}
.hero-btn-secondary:hover {
    background: #1a4518;
    color: #fff;
}

/* Process Steps - 3 Column Grid */
.russ-process-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}
@media (max-width: 991px) {
    .russ-process-steps {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 640px) {
    .russ-process-steps {
        grid-template-columns: 1fr;
    }
}
.russ-process-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: #fff;
    padding: 25px 20px;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.russ-step-number {
    width: 50px;
    height: 50px;
    background: #0e2b0c;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: bold;
    flex-shrink: 0;
    margin-bottom: 15px;
}
.russ-step-content h4 {
    margin: 0 0 8px;
    font-size: 20px;
    color: #0e2b0c;
}
.russ-step-content p {
    margin: 0;
    color: #444;
    line-height: 1.5;
}

/* Pricing Table */
.russ-pricing-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
}
.russ-pricing-table th,
.russ-pricing-table td {
    padding: 15px 20px;
    text-align: left;
    border-bottom: 1px solid #ddd;
}
.russ-pricing-table th {
    background: #0e2b0c;
    color: #fff;
    font-weight: 600;
}
.russ-pricing-table tr:hover td { background: #f5f9f6; }
.russ-pricing-table td:last-child {
    font-weight: 600;
    color: #0e2b0c;
}

/* Pricing Factors Card */
.fusion-text:has(.russ-pricing-factors),
.fusion-text:has(.russ-estimate-card) {
    height: 100%;
}
.russ-pricing-factors {
    background: #fff;
    padding: 30px 35px;
    border-radius: 12px;
    margin: 0;
    height: 100%;
    box-sizing: border-box;
}
.russ-pricing-factors h4 {
    margin: 0 0 20px;
    color: #0e2b0c;
    font-size: 22px;
}
.russ-pricing-factors ul {
    margin: 0;
    padding-left: 0;
    list-style: none;
}
.russ-pricing-factors li {
    margin-bottom: 12px;
    color: #333;
    padding-left: 28px;
    position: relative;
    line-height: 1.5;
}
.russ-pricing-factors li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 6px;
    width: 16px;
    height: 16px;
    background: #8ead93;
    border-radius: 50%;
}
.russ-pricing-factors li::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 10px;
    width: 6px;
    height: 6px;
    background: #0e2b0c;
    border-radius: 50%;
}

/* Price Disclaimer */
.russ-price-disclaimer {
    background: #fff;
    border-left: 4px solid #8ead93;
    padding: 18px 24px;
    margin-top: 20px;
    margin-bottom: 50px;
    border-radius: 0 8px 8px 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
@media (min-width: 1025px) {
    .russ-price-disclaimer {
        margin-left: 10%;
        margin-right: 10%;
    }
}
.russ-price-disclaimer p {
    margin: 0 !important;
    font-size: 15px;
    line-height: 1.6;
    color: #333;
    text-align: center;
}
.russ-price-disclaimer strong {
    color: #0e2b0c;
}
.russ-price-disclaimer a {
    color: #0e2b0c;
    font-weight: 600;
    text-decoration: underline;
}
.russ-price-disclaimer a:hover {
    color: #8ead93;
}

/* Estimate Card */
.russ-estimate-card {
    background: #0e2b0c;
    color: #fff;
    padding: 35px 40px;
    border-radius: 12px;
    text-align: center;
    height: 100%;
    box-sizing: border-box;
}
.russ-estimate-card h4 {
    margin: 0 0 25px;
    color: #ffffff !important;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 2px;
}
.russ-estimate-card .russ-estimate-price {
    font-size: 48px;
    font-weight: 700;
    color: #fff;
    line-height: 1;
    margin-bottom: 8px;
}
.russ-estimate-card .russ-estimate-range {
    color: #8ead93;
    font-size: 16px;
    margin-bottom: 25px;
}
.russ-estimate-card .russ-estimate-note {
    font-size: 14px;
    color: rgba(255,255,255,0.7);
    font-style: italic;
    margin-bottom: 25px;
    line-height: 1.5;
}
.russ-estimate-card .fusion-button { margin-top: 10px; }
.russ-estimate-btn {
    display: inline-block;
    background: #a02120;
    color: #fff;
    padding: 15px 35px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 18px;
    text-decoration: none;
    transition: background 0.2s ease;
}
.russ-estimate-btn:hover {
    background: #8a1c1b;
    color: #fff;
}

/* Gallery Grid */
.russ-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin: 30px 0;
}
@media (max-width: 768px) {
    .russ-gallery-grid { grid-template-columns: 1fr; }
}
.russ-gallery-item {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}
.russ-gallery-images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3px;
}
.russ-gallery-images img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}
.russ-gallery-label {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: rgba(14, 43, 12, 0.9);
    color: #fff;
    padding: 4px 10px;
    font-size: 12px;
    text-transform: uppercase;
}
.russ-gallery-before,
.russ-gallery-after { position: relative; }
.russ-gallery-before a,
.russ-gallery-after a {
    display: block;
    cursor: pointer;
}
.russ-gallery-before a img,
.russ-gallery-after a img {
    transition: opacity 0.2s ease;
}
.russ-gallery-before a:hover img,
.russ-gallery-after a:hover img {
    opacity: 0.85;
}
.russ-gallery-caption {
    padding: 15px;
    text-align: center;
    font-style: italic;
    color: #555;
}

/* iLightbox toolbar buttons - 50% bigger */
.ilightbox-toolbar.light {
    transform: scale(1.5) !important;
    transform-origin: left center !important;
}
@media (max-width: 768px) {
    .ilightbox-toolbar.light {
        transform: scale(1.25) !important;
        transform-origin: center bottom !important;
    }
}

/* --- Photo Gallery Grid (Balanced Masonry) --- */
.russ-masonry-gallery {
    margin: 30px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}
/* Basic grid fallback before JS runs */
.russ-masonry-gallery > .russ-masonry-item {
    width: calc(33.333% - 10px);
}
@media (max-width: 1024px) {
    .russ-masonry-gallery > .russ-masonry-item {
        width: calc(50% - 7.5px);
    }
}
@media (max-width: 640px) {
    .russ-masonry-gallery > .russ-masonry-item {
        width: 100%;
    }
}
/* Once JS creates columns, switch to column layout */
.russ-masonry-gallery.is-initialized {
    flex-wrap: nowrap;
}
.russ-masonry-gallery.is-initialized > .russ-masonry-item {
    display: none; /* Hide orphaned items not in columns */
}
.russ-masonry-column {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 15px;
    min-width: 0; /* Allow columns to shrink */
}
.russ-masonry-column .russ-masonry-item {
    width: 100%;
}
@media (max-width: 991px) {
    .russ-masonry-gallery.is-initialized {
        gap: 10px;
    }
    .russ-masonry-column {
        gap: 10px;
    }
}
@media (max-width: 640px) {
    .russ-masonry-gallery.is-initialized {
        flex-direction: column;
    }
}
.russ-masonry-item a {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 8px;
}
.russ-masonry-item img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s ease, opacity 0.2s ease;
}
.russ-masonry-item a:hover img {
    transform: scale(1.03);
    opacity: 0.9;
}
.russ-masonry-item a::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(14, 43, 12, 0.4) 0%, transparent 40%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}
.russ-masonry-item a:hover::after {
    opacity: 1;
}

/* Related Services Cards */
.russ-related-section {
    width: 100%;
    background: #f5f9f6;
    padding-bottom: 100px;
}
.russ-related-inner {
    max-width: var(--site_width, 1200px);
    margin: 0 auto;
    padding: 0 20px;
}
.russ-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}
@media (max-width: 991px) {
    .russ-related-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .russ-related-grid { grid-template-columns: 1fr; }
}
.russ-related-card {
    background: #fff;
    border-radius: 12px;
    padding: 30px 20px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.russ-related-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.12);
}
.russ-related-icon {
    width: 80px;
    height: 80px;
    border: 2px solid #0e2b0c;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    transition: all 0.3s ease;
}
.russ-related-icon img {
    width: 45px;
    height: 45px;
    object-fit: contain;
}
.russ-related-card:hover .russ-related-icon {
    border-color: #8ead93;
    background: #f5f9f6;
}
.russ-related-card h4 {
    margin: 0;
    color: #0e2b0c;
    font-size: 18px;
    font-weight: 600;
}
.russ-related-subtitle {
    color: #8ead93;
    font-size: 14px;
    font-weight: 500;
    margin-top: 5px;
}

/* Service Card Description - Desktop padding */
@media (min-width: 1024px) {
    .service-card-desc {
        padding-left: 15px;
        padding-right: 15px;
    }
}

/* --- City Service Cards (on city pages) --- */
.city-service-card {
    position: relative;
    overflow: hidden;
    pointer-events: none;
}

.city-service-card .fusion-column-inner-bg {
    pointer-events: auto;
    border: 2px solid transparent;
    transition: border-color 0.3s ease;
}

.city-service-card .fusion-column-wrapper {
    pointer-events: auto;
    position: static !important;
}

.city-service-card .fusion-column-inner-bg:hover {
    border-color: #8ead93;
}

.city-service-card .tree-svg {
    position: absolute !important;
    bottom: -21px !important;
    right: 0 !important;
    width: 50%;
    height: 85%;
    opacity: 0.2;
    z-index: 0;
    pointer-events: none;
}

.city-service-card .tree-svg path {
    fill: none;
    stroke: #0e2b0c;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 500;
    stroke-dashoffset: 500;
    transition: stroke-dashoffset 0.4s linear 0s !important;
}

.city-service-card .fusion-column-inner-bg:hover + .fusion-column-wrapper .tree-svg path {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 1.6s linear 0s !important;
}

.city-service-card .fusion-title,
.city-service-card .fusion-text {
    position: relative;
    z-index: 1;
}

/* --- Other Areas Checklist Hover --- */
.fusion-checklist .fusion-li-item a {
    transition: color 0.2s ease;
}

.fusion-checklist .fusion-li-item:hover a {
    color: #8ead93;
}

.fusion-checklist .fusion-li-item:hover .icon-wrapper {
    transform: scale(1.1);
    transition: transform 0.2s ease;
}

/* ===========================================
   SERVICES HUB PAGE
   =========================================== */

/* --- Service Hub Cards --- */
.service-hub-card {
    position: relative;
    overflow: hidden;
    pointer-events: none;
}

.service-hub-card .fusion-column-inner-bg,
.service-hub-card .fusion-column-wrapper {
    pointer-events: auto;
}

.service-hub-card .fusion-column-wrapper {
    position: static !important;
}

.service-hub-card .fusion-column-inner-bg-image {
    background-color: #f5f9f6 !important;
    transition: background-color 0.2s ease !important;
}

.service-hub-card .fusion-column-inner-bg:hover .fusion-column-inner-bg-image {
    background-color: #ffffff !important;
}

/* Shimmer on hover - uses existing .service-icon-wrap styles */
.service-hub-card .fusion-column-inner-bg:hover + .fusion-column-wrapper .service-icon-wrap::after {
    opacity: 1;
    animation: shimmer 0.8s ease-out;
}

/* View services link styling */
.service-hub-card .view-services-link span {
    transition: color 0.2s ease;
}
.service-hub-card .fusion-column-inner-bg:hover + .fusion-column-wrapper .view-services-link span {
    color: #0e2b0c;
}

/* Keep text above any effects */
.service-hub-card .fusion-title,
.service-hub-card .fusion-text {
    position: relative;
    z-index: 1;
}

/* ===========================================
   BLOG ARCHIVE CARDS
   =========================================== */

.blog-archive-card {
    position: relative;
    overflow: hidden;
    pointer-events: none;
}

.blog-archive-card .fusion-column-inner-bg,
.blog-archive-card .fusion-column-wrapper {
    pointer-events: auto;
}

.blog-archive-card .fusion-column-wrapper {
    position: static !important;
}

.blog-archive-card .fusion-column-inner-bg-image {
    transition: background-color 0.2s ease !important;
}

.blog-archive-card .fusion-column-inner-bg:hover .fusion-column-inner-bg-image {
    background-color: #f5f9f6 !important;
}

/* Read more link styling */
.blog-archive-card .blog-read-more span {
    transition: color 0.2s ease;
}
.blog-archive-card .fusion-column-inner-bg:hover + .fusion-column-wrapper .blog-read-more span {
    color: #0e2b0c;
}

/* Keep text above any effects */
.blog-archive-card .fusion-title,
.blog-archive-card .fusion-text {
    position: relative;
    z-index: 1;
}

/* ===========================================
   SINGLE BLOG POST
   =========================================== */

.single-post #main {
    padding-top: 50px;
    padding-bottom: 50px;
    position: relative;
}

.single-post #main::after {
    content: '';
    display: block;
    width: 50%;
    height: 2px;
    background: linear-gradient(90deg, transparent, #8ead93, transparent);
    margin: 40px auto 0;
}

.single-post .single-related-posts::before,
.single-post .related-posts::before {
    content: '';
    display: block;
    width: 50%;
    height: 2px;
    background: linear-gradient(90deg, transparent, #8ead93, transparent);
    margin: 0 auto 40px;
}

.single-post .single-related-posts .fusion-date,
.single-post .related-posts .fusion-date,
.single-post .single-related-posts .updated,
.single-post .related-posts .updated {
    display: none;
}

.single-post .single-related-posts h4,
.single-post .related-posts h4,
.single-post .fusion-related-posts-title-link {
    line-height: 1.1;
}

/* Animated underline for paragraph links in single posts */
.single-post #main .post-content p a,
.single-post #main .fusion-text p a {
    position: relative;
    text-decoration: none;
    color: #0e2b0c;
    background-image:
        linear-gradient(#0e2b0c, #0e2b0c),
        linear-gradient(#c7d6c9, #c7d6c9);
    background-position: 0 100%, 0 100%;
    background-repeat: no-repeat;
    background-size: 100% 2px, 100% 2px;
    padding-bottom: 2px;
    transition: background-size 0.25s ease-out;
}

.single-post #main .post-content p a:hover,
.single-post #main .post-content p a:focus,
.single-post #main .fusion-text p a:hover,
.single-post #main .fusion-text p a:focus {
    background-size: 0% 2px, 100% 2px;
}

/* Wave animation for link letters */
.single-post #main .post-content p a .wave-letter,
.single-post #main .fusion-text p a .wave-letter {
    display: inline-block;
    color: #0e2b0c;
    transition: color 0.3s ease;
    transition-delay: calc(var(--i) * 0.03s);
}

.single-post #main .post-content p a:hover .wave-letter,
.single-post #main .fusion-text p a:hover .wave-letter {
    color: #8ead93;
    animation: letterWave 0.4s ease forwards;
    animation-delay: calc(var(--i) * 0.03s);
}

@keyframes letterWave {
    0% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
    100% { transform: translateY(0); }
}

/* ===========================================
   HOMEPAGE HERO - Ambient shimmer
   =========================================== */
.home #main .fusion-fullwidth:first-child {
    position: relative;
    overflow: hidden;
}

.home #main .fusion-fullwidth:first-child::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(
        115deg,
        transparent 20%,
        rgba(255, 255, 255, 0.12) 50%,
        transparent 80%
    );
    transform: skewX(-20deg);
    animation: hero-shimmer 8s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
}

@keyframes hero-shimmer {
    0% {
        left: -100%;
    }
    40%, 100% {
        left: 150%;
    }
}

/* ===========================================
   AREAS LIST COLUMNS - Remove stacking gap
   =========================================== */
@media (max-width: 1024px) {
    .areas-list-col {
        --awb-margin-bottom-large: 0px !important;
        --awb-margin-bottom-medium: 0px !important;
        --awb-margin-bottom-small: 0px !important;
        --awb-padding-top: 0px !important;
        --awb-padding-bottom: 0px !important;
        margin: 0 !important;
        padding: 0 !important;
        align-self: flex-start !important;
        height: auto !important;
    }
    .areas-list-col .fusion-column-wrapper {
        padding: 0 !important;
        margin: 0 !important;
        height: auto !important;
        min-height: 0 !important;
    }
    .areas-list-col .fusion-checklist {
        margin: 0 !important;
        padding: 0 !important;
    }
    /* Kill row gap on parent */
    .fusion-builder-row:has(.areas-list-col) {
        row-gap: 0 !important;
        gap: 0 !important;
    }
}

/* ===========================================
   CUT & GO SECTION - Inverted Colors
   =========================================== */
.cut-go-section {
    background: #0e2b0c;
}
.cut-go-section .fusion-fullwidth {
    background: transparent !important;
}
.cut-go-section .fusion-title h2,
.cut-go-section .fusion-title h3 {
    color: #ffffff !important;
}
.cut-go-section .fusion-text p {
    color: rgba(255, 255, 255, 0.9);
}
.cut-go-section .fusion-text strong {
    color: #ffffff;
}
.cut-go-section .fusion-checklist,
.cut-go-section .fusion-checklist .fusion-li-item,
.cut-go-section .fusion-checklist .fusion-li-item *,
.cut-go-section .fusion-checklist li,
.cut-go-section .fusion-checklist li * {
    color: rgba(255, 255, 255, 0.9) !important;
}
.cut-go-section .fusion-checklist strong {
    color: #ffffff !important;
}
.cut-go-section .fusion-checklist .icon-wrapper {
    background-color: #8ead93 !important;
}
.cut-go-section .fusion-checklist .icon-wrapper i {
    color: #0e2b0c !important;
}

