/*
 Theme Name:   Greenaura Child
 Theme URI:    https://themewant.com/products/wordpress/greenaura/
 Description:  Greenaura Child
 Author:       ReacThemes
 Author URI:   http://reactheme.com
 Template:     greenaura
 Version:      1.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
 */

/* Suppress default parent theme header breadcrumb banner exclusively on single post pages */
.single-post .reactheme-breadcrumbs,
.single-post .reactheme-breadcrumbs-inner,
.single-post .porfolio-details.reactheme-breadcrumbs {
    display: none !important;
}

.spx-managed-editorial.single-post .main-contain > .container > div:not([class]) {
    padding-block: 0 !important;
}

.single-post .main-contain {
    padding-top: 0 !important;
    background: #f8fafa !important;
}

.single-post .main-contain #content,
.single-post .reactheme-blog-details {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.spx-managed-editorial.single-post .news-details-inner {
    margin-right: 0;
}

/* ==========================================================================
   Header Mobile Clean Up & Floating Action Button (FAB)
   ========================================================================== */
#reactheme-header .menu-area .row-table {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
}

#reactheme-header .header-logo {
    display: flex !important;
    align-items: center !important;
    flex: 0 1 auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

#reactheme-header .header-logo img,
#reactheme-header .logo-area img {
    max-height: 44px !important;
    height: auto !important;
    width: auto !important;
}

#reactheme-header .header-quote {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    padding: 0 !important;
}

/* Hide header Call buttons on mobile (<991px) */
@media (max-width: 991px) {
    #reactheme-header .elementor-widget-react-button,
    #reactheme-header .react-button,
    .ehf-header .elementor-widget-react-button,
    .ehf-header .react-button,
    .header-style1 .elementor-widget-react-button,
    .header-style1 .react-button,
    header .react-button,
    header .elementor-widget-react-button,
    .spx-mobile-call-li,
    .spx-mobile-header-call-btn,
    .header-quote .quote-btn,
    .header-quote .call-btn {
        display: none !important;
    }
}

/* Primary floating phone conversion on the left side */
.spx-floating-call-btn {
    position: fixed !important;
    left: 24px !important;
    bottom: 24px !important;
    right: auto !important;
    z-index: 99999 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 54px !important;
    height: 54px !important;
    background: #ed6e29 !important;
    color: #ffffff !important;
    border-radius: 50% !important;
    text-decoration: none !important;
    box-shadow: 0 8px 24px rgba(237, 110, 41, 0.38), 0 3px 10px rgba(0, 0, 0, 0.2) !important;
    transition: transform 200ms ease, background 200ms ease, box-shadow 200ms ease !important;
}

.spx-floating-call-btn:hover,
.spx-floating-call-btn:active {
    background: #083d59 !important;
    color: #ffffff !important;
    transform: scale(1.12) !important;
    box-shadow: 0 10px 28px rgba(8, 61, 89, 0.42) !important;
}

.spx-floating-call-btn svg {
    fill: none !important;
    stroke: currentColor !important;
}

@media (max-width: 576px) {
    .spx-floating-call-btn {
        left: 16px !important;
        bottom: 20px !important;
        width: 50px !important;
        height: 50px !important;
    }
}


/* ==========================================================================
   SPX Single Post Editorial Design System (v2)
   ========================================================================== */

/* Reading Scroll Progress Bar */
.spx-scroll-progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    height: 4px;
    background: #ed6e29;
    z-index: 999999;
    width: 0%;
    transition: width 100ms ease-out;
    box-shadow: 0 0 10px rgba(237, 110, 41, 0.6);
}

.spx-single-page-wrapper {
    background-color: #f8fafa;
    color: #172119;
    font-family: "Rubik", sans-serif;
    padding-bottom: clamp(36px, 5vw, 60px);
}

.spx-hero-v2 {
    background: linear-gradient(135deg, #f3f7f2 0%, #ffffff 60%, #eaf3e8 100%);
    padding-top: clamp(28px, 4.5vw, 52px);
    padding-bottom: clamp(36px, 5.5vw, 64px);
    margin-bottom: clamp(32px, 5vw, 56px);
    border-bottom: 1px solid #dce8db;
    position: relative;
}

.spx-hero-v2-container {
    max-width: 1200px;
    margin: 0 auto;
}

.spx-hero-top-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}

.spx-breadcrumbs-v2 {
    font-size: 0.85rem;
    color: #4a6349;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-weight: 500;
}

.spx-breadcrumbs-v2 a {
    color: #173319 !important;
    text-decoration: none !important;
    font-weight: 600;
    transition: color 150ms ease;
}

.spx-breadcrumbs-v2 a:hover {
    color: #ed6e29 !important;
}

.spx-breadcrumb-sep {
    color: #88a386;
}

.spx-breadcrumb-current {
    color: #173319;
    font-weight: 700;
}

.spx-hero-cat-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 14px;
    background: #ffffff;
    border: 1px solid #cce0c9;
    color: #173319 !important;
    border-radius: 20px;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.03);
    transition: all 160ms ease;
}

.spx-hero-cat-badge:hover {
    background: #ed6e29;
    color: #ffffff !important;
    border-color: #ed6e29;
    transform: translateY(-1px);
}

.spx-cat-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ed6e29;
    display: inline-block;
}

.spx-hero-cat-badge:hover .spx-cat-dot {
    background: #ffffff;
}

.spx-hero-title-v2 {
    color: #173319 !important;
    font-size: clamp(2.1rem, 3.8vw, 3.1rem) !important;
    font-weight: 800 !important;
    line-height: 1.16 !important;
    letter-spacing: -0.035em !important;
    margin-bottom: 16px !important;
    text-wrap: balance;
}

.spx-hero-lead-text {
    font-size: clamp(1.05rem, 1.3vw, 1.18rem);
    color: #3b523a;
    line-height: 1.62;
    margin-bottom: 24px;
    max-width: 58ch;
    font-weight: 500;
}

.spx-hero-meta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    padding-top: 20px;
    border-top: 1px solid #dce8db;
}

.spx-hero-author {
    display: flex;
    align-items: center;
    gap: 12px;
}

.spx-hero-avatar {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #ed6e29;
    flex-shrink: 0;
}

.spx-hero-author-name-wrap {
    display: flex;
    align-items: center;
    gap: 5px;
}

.spx-hero-author-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: #173319;
    line-height: 1.2;
}

.spx-verified-badge {
    display: inline-flex;
    align-items: center;
}

.spx-hero-post-date {
    display: block;
    font-size: 0.82rem;
    color: #5c735a;
    margin-top: 2px;
}

.spx-hero-share {
    display: flex;
    align-items: center;
    gap: 8px;
    position: relative;
}

.spx-share-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: #5c735a;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-right: 2px;
}

.spx-copy-link-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.spx-hero-share-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    color: #173319 !important;
    border: 1px solid #d4e2d2 !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04) !important;
    transition: all 180ms ease !important;
}

.spx-hero-share-btn svg {
    width: 15px !important;
    height: 15px !important;
    fill: #173319 !important;
    stroke: none !important;
    display: block !important;
    margin: 0 auto !important;
    pointer-events: none !important;
}

.spx-hero-share-btn:hover {
    background: #ed6e29 !important;
    border-color: #ed6e29 !important;
    transform: translateY(-2px) !important;
}

.spx-hero-share-btn:hover svg {
    fill: #ffffff !important;
}

.spx-copy-tooltip {
    position: absolute;
    bottom: 125%;
    left: 50%;
    transform: translateX(-50%);
    background: #173319;
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 6px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 160ms ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    z-index: 10;
}

.spx-copy-tooltip.visible {
    opacity: 1;
}

.spx-hero-media-card {
    position: relative;
    margin: 0;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 16px 44px rgba(23, 51, 25, 0.14), 0 4px 12px rgba(0, 0, 0, 0.04);
    border: 4px solid #ffffff;
    background: #ffffff;
    width: 100%;
}

.spx-hero-img-overlay-badge {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    padding: 4px 12px;
    background: rgba(23, 51, 25, 0.85);
    backdrop-filter: blur(8px);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.spx-hero-img-v2 {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    display: block !important;
    border-radius: 16px;
    transition: transform 300ms ease;
}

.spx-hero-media-card:hover .spx-hero-img-v2 {
    transform: scale(1.02);
}

.spx-hero-media-caption {
    padding: 10px 16px;
    font-size: 0.82rem;
    color: #557053;
    background: #ffffff;
    text-align: center;
    font-style: italic;
    border-top: 1px solid #eef4ed;
}

.spx-single-container {
    max-width: 1200px;
    margin: 0 auto;
}

.single-post .spx-single-article {
    background: #ffffff !important;
    padding: clamp(24px, 4vw, 44px) !important;
    border-radius: 16px !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04) !important;
    border: 1px solid #e5ece3 !important;
}

.spx-featured-media {
    margin: calc(-1 * clamp(24px, 4vw, 44px)) calc(-1 * clamp(24px, 4vw, 44px)) 28px calc(-1 * clamp(24px, 4vw, 44px)) !important;
    border-radius: 16px 16px 0 0 !important;
    overflow: hidden !important;
    background: #edf3ea !important;
}

.spx-featured-img {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    object-fit: cover !important;
    display: block !important;
}

.spx-media-caption {
    padding: 10px 20px !important;
    font-size: 0.88rem !important;
    color: #536057 !important;
    background: #f3f7f2 !important;
    border-bottom: 1px solid #e1e9df !important;
    font-style: italic !important;
}

/* Table of Contents (ToC) Component */
.spx-toc-card {
    background: #f4f8f4 !important;
    border: 1px solid #d4e2d2 !important;
    border-left: 4px solid #203b20 !important;
    border-radius: 12px !important;
    padding: 20px 24px !important;
    margin-bottom: 32px !important;
    box-shadow: 0 4px 16px rgba(32, 59, 32, 0.03) !important;
}

.spx-toc-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 10px !important;
}

.spx-toc-title-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #203b20 !important;
    font-weight: 700 !important;
    font-size: 1.1rem !important;
}

.spx-toc-toggle {
    background: transparent !important;
    border: none !important;
    color: #ed6e29 !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 4px 8px !important;
    border-radius: 6px !important;
    transition: background 150ms ease !important;
}

.spx-toc-toggle:hover {
    background: rgba(237, 110, 41, 0.1) !important;
}

.spx-toc-toggle .spx-toc-arrow {
    transition: transform 200ms ease !important;
}

.spx-toc-toggle.collapsed .spx-toc-arrow {
    transform: rotate(180deg) !important;
}

.spx-toc-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 8px 0 0 !important;
}

.spx-toc-item {
    margin-bottom: 8px !important;
}

.spx-toc-item.spx-toc-level-3 {
    padding-left: 20px !important;
}

.spx-toc-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #2c4a28 !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: color 150ms ease !important;
}

.spx-toc-link:hover {
    color: #ed6e29 !important;
    text-decoration: underline !important;
}

.spx-toc-bullet {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ed6e29;
    display: inline-block;
    flex-shrink: 0;
}

/* Single Post Article Content - Typography & Layout */
.single-post .spx-article-content {
    font-size: 1.08rem !important;
    line-height: 1.72 !important;
    color: #243026 !important;
    width: 100% !important;
}

.single-post .spx-article-content p,
.single-post .spx-local-page p {
    margin-bottom: 16px !important;
    max-width: none !important;
    width: 100% !important;
    font-size: 1.08rem !important;
    line-height: 1.72 !important;
    color: #243026 !important;
}

.single-post .spx-article-content h2,
.single-post .spx-local-page > section > h2 {
    font-size: clamp(1.4rem, 2.2vw, 1.85rem) !important;
    color: #203b20 !important;
    font-weight: 700 !important;
    margin-top: 28px !important;
    margin-bottom: 14px !important;
    padding-bottom: 8px !important;
    border-bottom: 2px solid #edf3ea !important;
    line-height: 1.25 !important;
    max-width: none !important;
    scroll-margin-top: 100px;
}

.single-post .spx-article-content h3,
.single-post .spx-local-page h3 {
    font-size: clamp(1.18rem, 1.8vw, 1.45rem) !important;
    color: #2c4a28 !important;
    font-weight: 700 !important;
    margin-top: 22px !important;
    margin-bottom: 12px !important;
    line-height: 1.3 !important;
    max-width: none !important;
    scroll-margin-top: 100px;
}

.single-post .spx-article-content ul,
.single-post .spx-article-content ol,
.single-post .spx-local-page ul,
.single-post .spx-local-page ol {
    margin: 12px 0 20px 24px !important;
    padding: 0 !important;
    max-width: none !important;
}

.single-post .spx-article-content li,
.single-post .spx-local-page li {
    margin-bottom: 8px !important;
    line-height: 1.68 !important;
}

.single-post .spx-article-content strong,
.single-post .spx-local-page strong {
    color: #172119 !important;
}

.single-post .spx-article-content a,
.single-post .spx-local-page a {
    color: #083d59 !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
    text-decoration-color: #ed6e29 !important;
    text-underline-offset: 4px !important;
    transition: color 150ms ease !important;
}

.single-post .spx-article-content a:hover {
    color: #ed6e29 !important;
}

/* Mid-Content CTA Quote Banner */
.spx-mid-cta-banner {
    margin: 36px 0 !important;
    padding: 28px 32px !important;
    background: linear-gradient(135deg, #1b381e 0%, #083d59 100%) !important;
    border-radius: 16px !important;
    color: #ffffff !important;
    box-shadow: 0 8px 32px rgba(8, 61, 89, 0.15) !important;
    border: 1px solid rgba(237, 110, 41, 0.4) !important;
    border-left: 6px solid #ed6e29 !important;
}

.spx-mid-cta-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 20px !important;
}

.spx-mid-cta-badge {
    display: inline-block !important;
    padding: 4px 10px !important;
    background: rgba(237, 110, 41, 0.25) !important;
    border: 1px solid #ed6e29 !important;
    color: #f8b17e !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    border-radius: 12px !important;
    margin-bottom: 8px !important;
}

.spx-mid-cta-content h3 {
    color: #ffffff !important;
    margin: 0 0 6px !important;
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

.spx-mid-cta-content p {
    color: #d7e7d4 !important;
    margin: 0 !important;
    font-size: 0.96rem !important;
    line-height: 1.5 !important;
}

.spx-mid-cta-action {
    flex-shrink: 0 !important;
}

/* Author Bio Card */
.spx-author-card {
    display: flex !important;
    align-items: center !important;
    gap: 20px !important;
    padding: 24px !important;
    background: #f3f7f2 !important;
    border-radius: 14px !important;
    border: 1px solid #dce7d7 !important;
    margin: 36px 0 !important;
}

.spx-author-avatar img {
    border-radius: 50% !important;
    object-fit: cover !important;
    border: 3px solid #203b20 !important;
    flex-shrink: 0 !important;
}

.spx-author-tag {
    display: block !important;
    font-size: 0.78rem !important;
    color: #ed6e29 !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    margin-bottom: 2px !important;
}

.spx-author-name {
    margin: 0 0 4px !important;
    font-size: 1.15rem !important;
    color: #203b20 !important;
    font-weight: 700 !important;
}

.spx-author-bio {
    margin: 0 !important;
    font-size: 0.92rem !important;
    color: #536057 !important;
    line-height: 1.6 !important;
}

/* Navigation Links */
.spx-post-nav {
    margin-top: 36px !important;
    padding-top: 28px !important;
    border-top: 1px solid #e5ece3 !important;
}

.spx-nav-link {
    display: block !important;
    padding: 18px !important;
    background: #ffffff !important;
    border: 1px solid #e1e9df !important;
    border-radius: 12px !important;
    text-decoration: none !important;
    transition: all 180ms ease !important;
    height: 100% !important;
}

.spx-nav-link:hover {
    border-color: #203b20 !important;
    box-shadow: 0 6px 18px rgba(32, 59, 32, 0.08) !important;
    transform: translateY(-2px) !important;
}

.spx-nav-label {
    display: block !important;
    font-size: 0.82rem !important;
    color: #ed6e29 !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    margin-bottom: 6px !important;
}

.spx-nav-title {
    display: block !important;
    font-size: 0.98rem !important;
    color: #203b20 !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
}

/* Sticky Sidebar Widgets */
.spx-sticky-sidebar {
    position: sticky !important;
    top: 90px !important;
}

.spx-widget {
    background: #ffffff !important;
    padding: 24px !important;
    border-radius: 16px !important;
    border: 1px solid #e5ece3 !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
    margin-bottom: 24px !important;
}

.spx-widget-cta {
    background: linear-gradient(145deg, #203b20 0%, #172119 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(237, 110, 41, 0.3) !important;
    position: relative !important;
    overflow: hidden !important;
}

.spx-widget-cta-badge {
    display: inline-block !important;
    padding: 4px 12px !important;
    background: #ed6e29 !important;
    color: #172119 !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    border-radius: 12px !important;
    margin-bottom: 12px !important;
}

.spx-widget-cta .spx-widget-title {
    color: #ffffff !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    margin: 0 0 8px !important;
}

.spx-widget-cta .spx-widget-desc {
    color: #d7e7d4 !important;
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
    margin-bottom: 18px !important;
}

.spx-btn-call-widget {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 13px 18px !important;
    background: #ed6e29 !important;
    color: #172119 !important;
    font-weight: 700 !important;
    font-size: 1.02rem !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    transition: all 160ms ease !important;
    box-shadow: 0 4px 14px rgba(237, 110, 41, 0.35) !important;
}

.spx-btn-call-widget:hover {
    background: #ffffff !important;
    color: #203b20 !important;
    transform: translateY(-2px) !important;
}

.spx-widget-hours {
    margin-top: 12px !important;
    font-size: 0.82rem !important;
    color: #a4be9e !important;
    text-align: center !important;
}

.spx-widget-subtitle {
    font-size: 1.08rem !important;
    color: #203b20 !important;
    font-weight: 700 !important;
    margin: 0 0 16px !important;
    padding-bottom: 8px !important;
    border-bottom: 2px solid #edf3ea !important;
}

.spx-recent-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.spx-recent-item {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid #f0f4ef !important;
}

.spx-recent-item:last-child {
    border-bottom: none !important;
}

.spx-recent-thumb {
    width: 58px !important;
    height: 58px !important;
    object-fit: cover !important;
    border-radius: 10px !important;
    flex-shrink: 0 !important;
}

.spx-recent-thumb-placeholder {
    width: 58px !important;
    height: 58px !important;
    background: #edf3ea !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.spx-recent-title {
    display: block !important;
    font-size: 0.92rem !important;
    color: #203b20 !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    transition: color 150ms ease !important;
}

.spx-recent-title:hover {
    color: #ed6e29 !important;
}

.spx-recent-date {
    display: block !important;
    font-size: 0.78rem !important;
    color: #7b887d !important;
    margin-top: 3px !important;
}

@media (max-width: 991px) {
    .spx-sidebar-column {
        margin-top: 36px !important;
    }
    .spx-sticky-sidebar {
        position: static !important;
    }
}

@media (max-width: 767px) {
    .spx-hero-v2 {
        padding-top: 20px !important;
        padding-bottom: 28px !important;
        margin-bottom: 24px !important;
    }
    .spx-hero-title-v2 {
        font-size: clamp(1.4rem, 5.5vw, 1.85rem) !important;
        line-height: 1.25 !important;
        margin-bottom: 14px !important;
    }
    .spx-hero-lead-text {
        font-size: 0.98rem !important;
        line-height: 1.55 !important;
        margin-bottom: 18px !important;
    }
    .spx-mid-cta-inner {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
    .spx-mid-cta-action {
        width: 100% !important;
    }
    .spx-mid-cta-action .spx-btn-hero-call {
        width: 100% !important;
        justify-content: center !important;
    }
}


/* ==========================================================================
   Single Post Editorial Article Normalization (Tight & Clean Section Gaps)
   ========================================================================== */
.single-post .spx-local-page {
    width: 100% !important;
    max-width: 100% !important;
    padding-block: 0 !important;
    margin: 0 !important;
    display: block !important;
}

.single-post .spx-local-page > header {
    display: none !important;
}

.single-post .spx-local-page > section {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    padding-block: 16px 12px !important;
    border-bottom: 1px solid #e2e8e0 !important;
    margin: 0 !important;
}

.single-post .spx-local-page > section:last-of-type {
    border-bottom: none !important;
}

.single-post .spx-local-page > section > h2 {
    grid-column: auto !important;
    grid-row: auto !important;
    max-width: none !important;
    margin-top: 12px !important;
    margin-bottom: 12px !important;
    padding-bottom: 6px !important;
}

.single-post .spx-local-page > section > :not(h2) {
    grid-column: auto !important;
    max-width: none !important;
    width: 100% !important;
}

.single-post .spx-local-page table,
.single-post .spx-local-page blockquote {
    grid-column: auto !important;
    max-width: 100% !important;
    width: 100% !important;
}

.single-post .spx-local-page__cta,
.single-post .spx-article-cta-box {
    display: none !important;
}


/* ==========================================================================
   Fix Theme Search Popup Showing on Page Refresh
   ========================================================================== */
.sticky_form,
.sticky_form.rts-search-popup,
.rts-search-popup {
    display: none !important;
}

body.reactheme-search-active .sticky_form,
body.reactheme-search-active .sticky_form.rts-search-popup,
body.reactheme-search-active .rts-search-popup,
body.search-active .sticky_form,
body.search-active .sticky_form.rts-search-popup,
body.search-active .rts-search-popup {
    display: block !important;
}

/* ==========================================================================
   Bespoke Page Design System (City Pages & Service Pages)
   ========================================================================== */
.spx-page-wrapper {
    background-color: #f8fafa;
    color: #172119;
    font-family: "Rubik", sans-serif;
    padding-bottom: clamp(48px, 6vw, 80px);
}

.spx-page-hero {
    background: #203b20;
    color: #ffffff;
    padding-top: clamp(36px, 5vw, 60px);
    padding-bottom: clamp(44px, 6vw, 68px);
    border-bottom: 5px solid #ed6e29;
}

.spx-hero-badge {
    display: inline-block;
    padding: 6px 14px;
    background: rgba(237, 110, 41, 0.2);
    border: 1px solid #ed6e29;
    color: #f8b17e;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 16px;
}

.spx-hero-title {
    color: #ffffff !important;
    font-size: clamp(2.2rem, 4.5vw, 3.4rem) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    letter-spacing: -0.03em !important;
    margin-bottom: 20px !important;
}

.spx-hero-lead {
    color: #d7e7d4 !important;
    font-size: clamp(1.05rem, 1.3vw, 1.2rem) !important;
    line-height: 1.68 !important;
    margin-bottom: 28px !important;
    max-width: 60ch;
}

.spx-btn-hero-call {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    background: #ed6e29;
    color: #172119 !important;
    font-weight: 700;
    font-size: 1.05rem;
    border-radius: 8px;
    text-decoration: none !important;
    transition: transform 160ms ease, background 160ms ease;
    box-shadow: 0 4px 16px rgba(237, 110, 41, 0.35);
}

.spx-btn-hero-call:hover {
    background: #ffffff;
    color: #203b20 !important;
    transform: translateY(-2px);
}

.spx-hero-note {
    display: block;
    font-size: 0.82rem;
    color: #a4be9e;
    margin-top: 10px;
}

.spx-hero-img-wrap {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    border: 3px solid rgba(255, 255, 255, 0.15);
}

.spx-hero-img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    display: block;
}

/* City Navigation Switcher Bar */
.spx-city-nav-bar {
    background: #ffffff;
    border-bottom: 1px solid #e2e8e0;
    padding: 14px 0;
    box-shadow: 0 2px 10px rgba(0,0,0,0.02);
}

.spx-city-nav-inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.spx-city-nav-label {
    font-weight: 700;
    color: #203b20;
    margin-right: 8px;
    font-size: 0.9rem;
}

.spx-city-nav-item {
    padding: 7px 16px;
    background: #edf3ea;
    color: #2c4a28;
    border-radius: 20px;
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none !important;
    transition: background 160ms ease, color 160ms ease;
}

.spx-city-nav-item:hover,
.spx-city-nav-item.active {
    background: #ed6e29 !important;
    color: #172119 !important;
}

/* Page Body Sections */
.spx-page-body {
    padding-top: clamp(36px, 5vw, 60px);
}

.spx-section {
    margin-bottom: clamp(48px, 6vw, 72px);
}

.spx-section-header {
    margin-bottom: 36px;
}

.spx-sub-tag {
    display: inline-block;
    color: #ed6e29;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 8px;
}

.spx-section-title {
    color: #203b20 !important;
    font-size: clamp(1.7rem, 3vw, 2.4rem) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    margin-bottom: 12px !important;
}

.spx-section-desc {
    color: #536057;
    font-size: 1.08rem;
    line-height: 1.65;
    max-width: 68ch;
}

/* Feature & Step Cards */
.spx-feature-card,
.spx-step-card,
.spx-service-cat-card,
.spx-service-card,
.spx-city-card {
    background: #ffffff;
    padding: clamp(24px, 4vw, 32px);
    border-radius: 16px;
    border: 1px solid #e2e8e0;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
    height: 100%;
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.spx-feature-card:hover,
.spx-step-card:hover,
.spx-service-cat-card:hover,
.spx-service-card:hover,
.spx-city-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(32, 59, 32, 0.08);
    border-color: #c8d9c5;
}

.spx-card-num,
.spx-step-num,
.spx-step-badge,
.spx-cat-badge {
    display: inline-block;
    padding: 4px 10px;
    background: #edf3ea;
    color: #ed6e29;
    font-weight: 700;
    font-size: 0.82rem;
    border-radius: 8px;
    margin-bottom: 16px;
}

.spx-feature-card h3,
.spx-step-card h3,
.spx-service-cat-card h3,
.spx-service-card h3,
.spx-city-card-header h3 {
    color: #203b20 !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    margin-bottom: 12px !important;
    line-height: 1.3 !important;
}

.spx-feature-card p,
.spx-step-card p,
.spx-service-cat-card p,
.spx-service-card p,
.spx-city-card p {
    color: #536057;
    font-size: 0.96rem;
    line-height: 1.6;
    margin-bottom: 16px;
}

.spx-cat-links,
.spx-city-features {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
}

.spx-cat-links li,
.spx-city-features li {
    margin-bottom: 8px;
}

.spx-cat-links a {
    color: #083d59 !important;
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none !important;
    transition: color 160ms ease;
}

.spx-cat-links a:hover {
    color: #ed6e29 !important;
}

.spx-sc-icon,
.spx-city-icon {
    font-size: 2.2rem;
    margin-bottom: 14px;
    display: block;
}

.spx-sc-link,
.spx-btn-city-link,
.spx-guide-link {
    display: inline-block;
    color: #ed6e29 !important;
    font-weight: 700;
    font-size: 0.92rem;
    text-decoration: none !important;
}

.spx-sc-link:hover,
.spx-btn-city-link:hover,
.spx-guide-link:hover {
    color: #203b20 !important;
}

/* Municipal Note Box */
.spx-municipal-box {
    margin-top: 32px;
    padding: 24px 28px;
    background: #edf3ea;
    border-radius: 12px;
    border: 1px solid #d5dfd2;
    border-top: 4px solid #203b20;
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.spx-muni-icon {
    font-size: 1.8rem;
}

.spx-muni-info h4 {
    margin: 0 0 6px !important;
    color: #203b20 !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
}

.spx-muni-info p {
    margin: 0 0 10px !important;
    color: #536057;
    font-size: 0.94rem;
}

.spx-muni-link {
    color: #083d59 !important;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: underline !important;
}

.spx-muni-link:hover {
    color: #ed6e29 !important;
}

/* Care & Highlight Boxes */
.spx-care-box {
    padding: 28px;
    background: #083d59;
    color: #ffffff;
    border-radius: 12px;
    border: 1px solid rgba(237, 110, 41, 0.55);
    border-top: 4px solid #ed6e29;
    margin: 36px 0;
}

.spx-care-box h3 {
    color: #ffffff !important;
    margin: 0 0 10px !important;
    font-size: 1.35rem !important;
}

.spx-care-box p {
    color: #dce7ee !important;
    margin: 0 !important;
    font-size: 1.02rem;
    line-height: 1.6;
}

/* Comparison Table */
.spx-compare-table {
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e2e8e0;
    box-shadow: 0 4px 16px rgba(0,0,0,0.03);
}

.spx-compare-table th {
    background: #203b20;
    color: #ffffff;
    padding: 16px 20px;
    font-size: 1rem;
}

.spx-compare-table th.spx-col-interlock {
    background: #ed6e29;
    color: #172119;
}

.spx-compare-table td {
    padding: 14px 20px;
    border-bottom: 1px solid #eef3ed;
    font-size: 0.95rem;
}

.spx-compare-table td.spx-col-interlock {
    background: #f8fcf7;
}

/* Interactive FAQ Accordion */
.spx-faq-accordion {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.spx-faq-item {
    background: #ffffff;
    border-radius: 12px;
    border: 1px solid #e2e8e0;
    overflow: hidden;
    transition: border-color 160ms ease;
}

.spx-faq-item[open] {
    border-color: #203b20;
}

.spx-faq-question {
    padding: 18px 24px;
    font-weight: 700;
    font-size: 1.05rem;
    color: #203b20;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    list-style: none;
}

.spx-faq-question::-webkit-details-marker {
    display: none;
}

.spx-faq-icon {
    font-size: 1.3rem;
    color: #ed6e29;
    font-weight: 700;
}

.spx-faq-item[open] .spx-faq-icon {
    transform: rotate(45deg);
}

.spx-faq-answer {
    padding: 0 24px 20px;
    color: #536057;
    font-size: 0.98rem;
    line-height: 1.65;
}

.spx-faq-answer p {
    margin: 0;
}

/* Guide Cards */
.spx-guide-card {
    display: block;
    background: #ffffff;
    padding: 24px;
    border-radius: 12px;
    border: 1px solid #e2e8e0;
    text-decoration: none !important;
    height: 100%;
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.spx-guide-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.05);
    border-color: #203b20;
}

.spx-guide-card h3 {
    color: #203b20 !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    margin-bottom: 12px !important;
    line-height: 1.35 !important;
}

/* Visual Showcase Gallery Cards */
.spx-showcase-card {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid #e2e8e0;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
    height: 100%;
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.spx-showcase-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(32, 59, 32, 0.1);
    border-color: #203b20;
}

.spx-showcase-img-wrap {
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #edf3ea;
}

.spx-showcase-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 300ms ease;
}

.spx-showcase-card:hover .spx-showcase-img {
    transform: scale(1.04);
}

.spx-showcase-caption {
    padding: 20px 24px;
}

.spx-showcase-caption h4 {
    color: #203b20 !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    margin-bottom: 8px !important;
    line-height: 1.3 !important;
}

.spx-showcase-caption p {
    color: #536057;
    font-size: 0.92rem;
    line-height: 1.55;
    margin: 0;
}
