:root {
    --color-primary: #07A50F;
    --color-primary-hover: #05850B;
    --color-secondary: #5B3C18;
    --color-secondary-dark: #3D2912;
    --color-accent: #D30B0B;
    --color-accent-hover: #B30909;
    --color-dark: #151515;
    --color-dark-soft: #252525;
    --color-white: #FFFFFF;
    --color-light: #F7F6F3;
    --color-warm: #EEEAE4;
    --color-text: #252525;
    --color-text-muted: #6D6D6D;
    --color-border: #E2DED8;
    --radius-sm: 8px;
    --radius-md: 14px;
    --radius-lg: 24px;
    --container-width: 1320px;
    --transition-base: .25s ease;
    --shadow-sm: 0 5px 20px rgba(0, 0, 0, .06);
    --shadow-md: 0 15px 45px rgba(0, 0, 0, .10);
    --font-body: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif!important;
    --font-heading: "Archivo", "Manrope", system-ui, sans-serif!important;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--color-text);
    background: var(--color-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}

::selection {
    color: var(--color-white);
    background: var(--color-primary);
}

body {
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    font-weight: var(--body-weight);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    font-weight: var(--heading-weight);
}

.container {
    max-width: var(--container-width);
}

.site-header-shell {
    position: relative;
    z-index: 1000;
    width: 100%;
}

.site-header-shell.is-sticky {
    position: sticky;
    top: 0;
}

.site-header-container {
    width: min(1440px, calc(100% - 96px));
    margin: 0 auto;
}

.site-topbar {
    position: relative;
    z-index: 2;
    color: var(--header-topbar-text);
    background: var(--header-topbar-bg);
}

.site-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 36px;
    gap: 30px;
    font-size: 12px;
    font-weight: 600;
}

.site-topbar-message {
    display: flex;
    align-items: center;
    gap: 9px;
}

.site-topbar-dot {
    width: 6px;
    height: 6px;
    flex: 0 0 auto;
    background: var(--color-primary);
    border-radius: 50%;
    box-shadow:
        0 0 0 4px
        rgba(7, 165, 15, .15);
}

.site-topbar-phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: inherit;
    text-decoration: none;
    transition: var(--transition-base);
}

.site-topbar-phone i {
    color: var(--color-primary);
    font-size: 11px;
}

.site-topbar-phone:hover {
    color: var(--color-primary);
}

.site-header-main {
    position: relative;
    z-index: 2;
    background: var(--header-bg);
    border-bottom: 1px solid
        rgba(0, 0, 0, .07);
    box-shadow:
        0 7px 25px
        rgba(0, 0, 0, .025);
    transition:
        min-height var(--transition-base),
        box-shadow var(--transition-base);
}

.site-header-inner {
    display: flex;
    align-items: center;
    min-height: var(--header-height);
    gap: 35px;
    transition:
        min-height var(--transition-base);
}

.site-header-logo {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    line-height: 0;
}

.site-header-logo img {
    display: block;
    width: var(--header-logo-width);
    height: auto;
    max-height: 78px;
    margin: 0;
    object-fit: contain;
    object-position: left center;
    transition: width var(--transition-base), max-height var(--transition-base);
}

.site-navigation {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
    flex: 1;
}

.site-nav-list,
.site-nav-submenu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-nav-list {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(18px, 2vw, 32px);
}

.site-nav-item {
    position: relative;
}

.site-nav-link-wrap {
    display: flex;
    align-items: center;
}

.site-nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    color: var(--header-text);
    font-size: 14px;
    font-weight: 700;
    transition: var(--transition-base);
}

.site-nav-link::after {
    position: absolute;
    right: 0;
    bottom: 6px;
    left: 0;
    width: 0;
    height: 2px;
    margin: auto;
    content: "";
    background: var(--color-primary);
    transition: width var(--transition-base);
}

.site-nav-item:hover
> .site-nav-link-wrap
> .site-nav-link,
.site-nav-item.is-active
> .site-nav-link-wrap
> .site-nav-link {
    color: var(--color-primary);
}

.site-nav-item:hover
> .site-nav-link-wrap
> .site-nav-link::after,
.site-nav-item.is-active
> .site-nav-link-wrap
> .site-nav-link::after {
    width: 100%;
}

.site-nav-submenu-toggle {
    position: relative;
    width: 20px;
    height: 36px;
    margin-left: 3px;
    padding: 0;
    background: transparent;
    border: 0;
}

.site-nav-submenu-toggle span::before,
.site-nav-submenu-toggle span::after {
    position: absolute;
    top: 50%;
    width: 6px;
    height: 1.5px;
    content: "";
    background: currentColor;
}

.site-nav-submenu-toggle span::before {
    left: 5px;
    transform: rotate(45deg);
}

.site-nav-submenu-toggle span::after {
    right: 5px;
    transform: rotate(-45deg);
}

.site-nav-submenu {
    position: absolute;
    top: calc(100% + 8px);
    left: -22px;
    width: 245px;
    padding: 10px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: var(--transition-base);
}

.site-nav-submenu::before {
    position: absolute;
    top: -15px;
    right: 0;
    left: 0;
    height: 15px;
    content: "";
}

.site-nav-item:hover
> .site-nav-submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.site-nav-submenu
.site-nav-item {
    width: 100%;
}

.site-nav-submenu
.site-nav-link {
    width: 100%;
    min-height: 42px;
    padding: 0 12px;
    border-radius: 7px;
    font-size: 13px;
}

.site-nav-submenu
.site-nav-link::after {
    display: none;
}

.site-nav-submenu
.site-nav-item:hover
> .site-nav-link-wrap
> .site-nav-link {
    color: var(--color-primary);
    background: var(--color-light);
}

.site-nav-submenu
.site-nav-submenu {
    top: -10px;
    left: calc(100% + 10px);
}

.site-header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 0 0 auto;
}

.site-header-cta,
.site-mobile-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    color: #fff;
    background: var(--color-primary);
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 800;
    transition: var(--transition-base);
}

.site-header-cta {
    min-height: 48px;
    padding: 0 19px;
}

.site-header-cta-icon,
.site-mobile-cta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    transition: transform var(--transition-base);
}

.site-header-cta:hover,
.site-mobile-cta:hover {
    color: #fff;
    background: var(--color-primary-hover);
    transform: translateY(-1px);
}

.site-header-cta:hover .site-header-cta-icon,
.site-mobile-cta:hover .site-mobile-cta-icon {
    transform: translateX(4px);
}

.site-mobile-toggle {
    display: none;
    position: relative;
    width: 46px;
    height: 46px;
    padding: 11px;
    background: var(--color-dark);
    border: 0;
    border-radius: 9px;
}

.site-mobile-toggle span {
    display: block;
    width: 100%;
    height: 2px;
    margin: 5px 0;
    background: #fff;
    border-radius: 2px;
}

.site-header-shell.is-scrolled
.site-header-main {
    box-shadow:
        0 12px 35px
        rgba(0, 0, 0, .08);
}

.site-header-shell.is-scrolled
.site-header-inner {
    min-height: 74px;
}

.site-header-shell.is-scrolled
.site-header-logo img {
    width: calc(
        var(--header-logo-width) * .86
    );
    max-height: 62px;
}

/* Mobile navigation */

.site-mobile-panel,
.site-mobile-overlay {
    display: none;
}

@media (max-width: 1199.98px) {
    .site-header-container {
        width: calc(100% - 56px);
    }
    .site-navigation {
        display: none;
    }
    .site-header-actions {
        margin-left: auto;
    }

    .site-header-inner {
        min-height: 80px;
    }

    .site-header-logo img {
        width: min(
            var(--header-logo-width),
            180px
        );
        max-height: 65px;
    }

    .site-mobile-toggle {
        display: block;
    }

    .site-mobile-panel {
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        z-index: 1102;
        width: min(420px, 92vw);
        height: 100dvh;
        background: #fff;
        box-shadow:
            -20px 0 60px
            rgba(0, 0, 0, .18);
        transform: translateX(105%);
        transition: transform .32s ease;
        overflow-y: auto;
    }

    .site-mobile-overlay {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1101;
        background:
            rgba(12, 14, 13, .65);
        opacity: 0;
        visibility: hidden;
        backdrop-filter: blur(3px);
        transition:
            opacity .3s ease,
            visibility .3s ease;
    }

    body.site-mobile-nav-open {
        overflow: hidden;
    }

    body.site-mobile-nav-open
    .site-mobile-panel {
        transform: translateX(0);
    }

    body.site-mobile-nav-open
    .site-mobile-overlay {
        opacity: 1;
        visibility: visible;
    }

    .site-mobile-panel-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 90px;
        padding: 18px 22px;
        border-bottom:
            1px solid var(--color-border);
    }

    .site-mobile-panel-header img {
        width: 165px;
        max-height: 65px;
        object-fit: contain;
    }

    .site-mobile-close {
        width: 42px;
        height: 42px;
        padding: 0;
        color: var(--color-dark);
        background: var(--color-light);
        border: 0;
        border-radius: 50%;
        font-size: 27px;
        line-height: 1;
    }

    .site-mobile-panel-content {
        padding: 24px 22px 35px;
    }

    .site-mobile-navigation
    .site-nav-list,
    .site-mobile-navigation
    .site-nav-submenu {
        display: block;
        position: static;
        width: auto;
        padding: 0;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .site-mobile-navigation
    .site-nav-item {
        border-bottom:
            1px solid var(--color-border);
    }

    .site-mobile-navigation
    .site-nav-link-wrap {
        min-height: 57px;
    }

    .site-mobile-navigation
    .site-nav-link {
        min-height: 57px;
        flex: 1;
        font-size: 15px;
    }

    .site-mobile-navigation
    .site-nav-link::after {
        display: none;
    }

    .site-mobile-navigation
    .site-nav-submenu-toggle {
        width: 46px;
        height: 46px;
    }

    .site-mobile-navigation
    .site-nav-submenu {
        display: none;
        margin: 0 0 12px 15px;
        padding-left: 15px;
        border-left:
            2px solid var(--color-primary);
    }

    .site-mobile-navigation
    .site-nav-item.is-submenu-open
    > .site-nav-submenu {
        display: block;
    }

    .site-mobile-navigation
    .site-nav-item.is-submenu-open
    > .site-nav-link-wrap
    .site-nav-submenu-toggle {
        transform: rotate(180deg);
    }

    .site-mobile-cta {
        width: 100%;
        min-height: 52px;
        margin-top: 25px;
        padding: 0 18px;
    }

    .site-mobile-phone {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        margin-top: 20px;
        color: var(--color-secondary);
        text-align: center;
        font-size: 14px;
        font-weight: 800;
    }
    
    .site-mobile-phone i {
        color: var(--color-primary);
        font-size: 12px;
    }
}

@media (max-width: 575.98px) {
    .site-header-container {
        width: calc(100% - 36px);
    }
    .site-topbar-inner {
        justify-content: center;
        min-height: 34px;
    }

    .site-topbar-phone {
        display: none;
    }

    .site-topbar-message {
        font-size: 10px;
        text-align: center;
    }

    .site-header-cta {
        display: none;
    }

    .site-header-logo img {
        width: 155px;
    }
}

.site-topbar-actions {
    display: flex;
    align-items: center;
    gap: 20px;
}

.site-topbar-admin {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: inherit;
    text-decoration: none;
    transition: var(--transition-base);
}

.site-topbar-admin i {
    color: var(--color-primary);
    font-size: 11px;
}

.site-topbar-admin:hover {
    color: var(--color-primary);
}

/* =========================================================
   Page shell
========================================================= */

.page-title-section {
    position: relative;
    padding: 95px 0 90px;
    background:
        linear-gradient(
            125deg,
            var(--color-dark) 0%,
            var(--color-secondary-dark) 100%
        );
    overflow: hidden;
}

.page-title-section::after {
    position: absolute;
    top: -100px;
    right: -100px;
    width: 350px;
    height: 350px;
    content: "";
    background:
        var(--color-primary);
    border-radius: 50%;
    opacity: .08;
    filter: blur(10px);
}

.page-title-inner {
    position: relative;
    z-index: 2;
}

.page-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-bottom: 18px; color: rgba(255,255,255,.58); font-size: 12px; font-weight: 700; }
.page-breadcrumb a { color: rgba(255,255,255,.76); text-decoration: none; transition: var(--transition-base); }
.page-breadcrumb a:hover { color: var(--color-primary); }
.page-breadcrumb [aria-current="page"] { color: rgba(255,255,255,.52); }
.page-breadcrumb-separator { color: var(--color-primary); font-size: 14px; line-height: 1; }

.page-title-eyebrow {
    display: block;
    margin-bottom: 13px;
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.page-title-section h1 {
    max-width: 850px;
    margin: 0;
    color: #fff;
    font-size: clamp(
        40px,
        6vw,
        72px
    );
    line-height: 1.04;
}

.page-content-shell {
    min-height: 300px;
    padding: var(--section-spacing) 0;
}

/* =========================================================
   Generic buttons
========================================================= */

.site-button-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 52px;
    padding: 0 20px;
    color: #fff;
    background: var(--color-primary);
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-weight: 800;
    transition: var(--transition-base);
}

.site-button-primary:hover {
    color: #fff;
    background: var(--color-primary-hover);
    transform: translateY(-2px);
}

.site-button-primary span {
    font-size: 19px;
    transition: transform var(--transition-base);
}

.site-button-primary:hover span {
    transform: translateX(4px);
}

/* =========================================================
   Footer CTA
========================================================= */

.footer-cta {
    position: relative;
    z-index: 5;
    padding: 55px 0 0;
    background: var(--color-dark);
}

.footer-cta-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 45px;
    padding: 55px 60px;
    background:
        linear-gradient(
            120deg,
            var(--color-primary) 0%,
            var(--color-primary-hover) 100%
        );
    border-radius:
        var(--radius-lg)
        var(--radius-lg)
        0
        0;
    overflow: hidden;
}

.footer-cta-inner::after {
    position: absolute;
    top: -120px;
    right: -40px;
    width: 340px;
    height: 340px;
    content: "";
    border: 60px solid
        rgba(255, 255, 255, .07);
    border-radius: 50%;
}

.footer-cta-copy {
    position: relative;
    z-index: 2;
    max-width: 720px;
}

.footer-cta-copy > span {
    display: block;
    margin-bottom: 9px;
    color: rgba(255, 255, 255, .72);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.footer-cta-copy h2 {
    margin: 0 0 8px;
    color: #fff;
    font-size: clamp(
        27px,
        4vw,
        42px
    );
}

.footer-cta-copy p {
    margin: 0;
    color: rgba(255, 255, 255, .78);
}

.footer-cta-button {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    gap: 14px;
    min-height: 54px;
    padding: 0 22px;
    color: var(--color-dark);
    background: #fff;
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 800;
    transition: var(--transition-base);
}

.footer-cta-button:hover {
    color: var(--color-primary);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.footer-cta-button span {
    font-size: 19px;
}

/* =========================================================
   Main footer
========================================================= */

.site-footer {
    color: rgba(255, 255, 255, .68);
    background: var(--color-dark);
}

.site-footer-main {
    display: grid;
    grid-template-columns:
        minmax(260px, 1.5fr)
        repeat(
            3,
            minmax(160px, 1fr)
        );
    gap: clamp(
        35px,
        5vw,
        75px
    );
    padding: 80px 0 65px;
}

.site-footer-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
    padding: 11px 14px;
    background: #fff;
    border-radius: 12px;
}

.site-footer-logo img {
    width: 185px;
    max-height: 82px;
    object-fit: contain;
}

.site-footer-brand p {
    max-width: 390px;
    margin: 0;
    line-height: 1.8;
    font-size: 14px;
}

.site-footer-title {
    display: block;
    margin-bottom: 21px;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
}

.site-footer-menu {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer-menu
.site-footer-menu {
    margin-top: 12px;
    padding-left: 14px;
}

.site-footer-menu a {
    color: rgba(255, 255, 255, .62);
    font-size: 13px;
    transition: var(--transition-base);
}

.site-footer-menu a:hover {
    color: var(--color-primary);
    padding-left: 4px;
}

.site-footer-contact {
    display: grid;
    gap: 11px;
}

.site-footer-contact a,
.site-footer-contact address {
    margin: 0;
    color: rgba(255, 255, 255, .65);
    font-size: 13px;
    font-style: normal;
    line-height: 1.7;
}

.site-footer-contact a:hover {
    color: var(--color-primary);
}

.site-footer-small {
    margin: 0 0 18px;
    font-size: 13px;
    line-height: 1.75;
}

.site-footer-inline-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.site-footer-inline-link:hover {
    color: var(--color-primary);
}

.site-footer-socials {
    display: flex;
    gap: 8px;
    margin-top: 25px;
}

.site-footer-socials a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    color: #fff;
    background:
        rgba(255, 255, 255, .07);
    border:
        1px solid
        rgba(255, 255, 255, .1);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 800;
    transition: var(--transition-base);
}

.site-footer-socials a:hover {
    color: #fff;
    background: var(--color-primary);
    border-color: var(--color-primary);
    transform: translateY(-2px);
}

.site-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    min-height: 72px;
    border-top:
        1px solid
        rgba(255, 255, 255, .08);
    font-size: 11px;
}

.site-scroll-top {
    position: fixed;
    right: 28px;
    bottom: 28px;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    color: #fff;
    background: var(--color-primary);
    border: 0;
    border-radius: 50%;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);
    pointer-events: none;
    transition: opacity var(--transition-base), visibility var(--transition-base), transform var(--transition-base), background var(--transition-base);
}

.site-scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.site-scroll-top:hover {
    color: #fff;
    background: var(--color-primary-hover);
    transform: translateY(-3px);
}

.site-scroll-top i {
    font-size: 14px;
    line-height: 1;
}

/* =========================================================
   404
========================================================= */

.error-page {
    display: flex;
    align-items: center;
    min-height: 65vh;
    padding: 90px 0;
    text-align: center;
    background: var(--color-light);
}

.error-page-inner {
    max-width: 650px;
    margin: 0 auto;
}

.error-page-code {
    display: block;
    margin-bottom: 8px;
    color: var(--color-primary);
    font-size: clamp(
        80px,
        14vw,
        150px
    );
    font-weight: 900;
    line-height: .9;
}

.error-page h1 {
    margin: 0 0 15px;
    color: var(--color-dark);
}

.error-page p {
    max-width: 520px;
    margin:
        0
        auto
        28px;
    color: var(--color-text-muted);
}

@media (max-width: 991.98px) {
    .site-footer-main {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .footer-cta-inner {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    .site-scroll-top {
        right: 18px;
        bottom: 18px;
        width: 44px;
        height: 44px;
    }
    
    .footer-cta {
        padding-top: 30px;
    }
    .footer-cta {
        padding-top: 30px;
    }
    .site-topbar-admin {
        display: none;
    }
    .page-title-section {
        padding: 65px 0;
    }

    .site-footer-main {
        grid-template-columns: 1fr;
        padding: 60px 0 50px;
    }

    .footer-cta-inner {
        padding: 38px 25px;
        border-radius: 0;
    }

    .footer-cta-button {
        width: 100%;
    }

    .site-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        padding: 22px 0;
    }
}

/* =========================================================
   Builder sections
========================================================= */

.builder-section {
    --section-padding-top: 100px;
    --section-padding-right: 0px;
    --section-padding-bottom: 100px;
    --section-padding-left: 0px;
    --section-min-height: auto;
    --section-container-width: var(--container-width);
    --section-mobile-background: none;

    position: relative;
    min-height: var(--section-min-height);
    padding:
        var(--section-padding-top)
        var(--section-padding-right)
        var(--section-padding-bottom)
        var(--section-padding-left);
    background-repeat: no-repeat;
    overflow: hidden;
}

.builder-section-video-wrap {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}

.builder-section-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.builder-section-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.builder-section-inner {
    position: relative;
    z-index: 2;
    display: flex;
    width: 100%;
    min-height: inherit;
}

.builder-align-start {
    align-items: flex-start;
}

.builder-align-center {
    align-items: center;
}

.builder-align-end {
    align-items: flex-end;
}

.builder-align-stretch {
    align-items: stretch;
}

.builder-container {
    width: 100%;
    max-width: var(
        --section-container-width
    );
    margin-right: auto;
    margin-left: auto;
    padding-right:
        calc(
            var(--bs-gutter-x, 1.5rem)
            * .5
        );
    padding-left:
        calc(
            var(--bs-gutter-x, 1.5rem)
            * .5
        );
}

.builder-container-fluid {
    width: 100%;
}

@media (min-width: 992px) {
    .builder-hide-desktop {
        display: none !important;
    }
}

@media (
    min-width: 768px
)
and (
    max-width: 991.98px
) {
    .builder-hide-tablet {
        display: none !important;
    }
}

@media (max-width: 767.98px) {
    .builder-hide-mobile {
        display: none !important;
    }

   .builder-section[style*="--section-mobile-background"] {
        background-image:
            var(
                --section-mobile-background
            ) !important;
        background-position:
            center center !important;
        background-size:
            cover !important;
        background-attachment:
            scroll !important;
    }

    .builder-section-video-wrap {
        display: none;
    }
}

/* =========================================================
   Builder elements
========================================================= */

.builder-block {
    position: relative;
    min-width: 0;
}

.builder-element-container {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-right: auto;
    margin-left: auto;
}

.builder-columns {
    display: grid;
    grid-template-columns:
        repeat(
            var(--builder-column-count, 2),
            minmax(0, 1fr)
        );
    gap:
        var(--builder-column-gap, 30px);
    width: 100%;
}

.builder-column {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.builder-heading {
    margin: 0;
}

.builder-text {
    white-space: normal;
}

.builder-button-wrap,
.builder-image-wrap {
    display: flex;
    width: 100%;
}

.builder-button-wrap.builder-align-left,
.builder-image-wrap.builder-align-left {
    justify-content: flex-start;
}

.builder-button-wrap.builder-align-center,
.builder-image-wrap.builder-align-center {
    justify-content: center;
}

.builder-button-wrap.builder-align-right,
.builder-image-wrap.builder-align-right {
    justify-content: flex-end;
}

.builder-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 50px;
    padding: 0 20px;
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 800;
    transition: var(--transition-base);
}

.builder-button-primary {
    color: #fff;
    background: var(--color-primary);
}

.builder-button-primary:hover {
    color: #fff;
    background: var(--color-primary-hover);
    transform: translateY(-2px);
}

.builder-button-secondary {
    color: #fff;
    background: var(--color-secondary);
}

.builder-button-secondary:hover {
    color: #fff;
    background: var(--color-secondary-dark);
}

.builder-button-outline {
    color: var(--color-dark);
    background: transparent;
    border: 1px solid currentColor;
}

.builder-button-outline:hover {
    color: var(--color-primary);
}

.builder-button span {
    transition: transform var(--transition-base);
}

.builder-button:hover span {
    transform: translateX(3px);
}

.builder-image {
    display: block;
    height: auto;
}

.builder-image-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 180px;
    color: var(--color-text-muted);
    background: var(--color-light);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-sm);
    font-size: 12px;
}

.builder-divider {
    height: 0;
}

@media (max-width: 767.98px) {
    .builder-columns {
        grid-template-columns:
            1fr;
    }
}

@media (min-width: 992px) {
    .builder-block-hide-desktop {
        display: none !important;
    }
}

@media (
    min-width: 768px
)
and (
    max-width: 991.98px
) {
    .builder-block-hide-tablet {
        display: none !important;
    }
}

@media (max-width: 767.98px) {
    .builder-block-hide-mobile {
        display: none !important;
    }
}


/* =========================================================
   Builder 2.0 responsive design controls
========================================================= */

.builder-columns {grid-template-columns:var(--builder-column-template,repeat(var(--builder-column-count,2),minmax(0,1fr)));}
.builder-heading,.builder-text {font-size:var(--builder-font-size,inherit);line-height:var(--builder-line-height,inherit);}
.builder-image {width:var(--builder-image-width,100%);height:var(--builder-image-height,auto);}

@media (min-width:768px) and (max-width:991.98px){
    .builder-section {min-height:var(--section-tablet-min-height,var(--section-min-height));padding:var(--section-tablet-padding-top,var(--section-padding-top)) var(--section-tablet-padding-right,var(--section-padding-right)) var(--section-tablet-padding-bottom,var(--section-padding-bottom)) var(--section-tablet-padding-left,var(--section-padding-left));}
    .builder-section .builder-container {max-width:var(--section-tablet-container-width,var(--section-container-width));}
    .builder-columns {grid-template-columns:var(--builder-tablet-column-template,var(--builder-column-template));gap:var(--builder-tablet-column-gap,var(--builder-column-gap));}
    .builder-heading,.builder-text {font-size:var(--builder-tablet-font-size,var(--builder-font-size));line-height:var(--builder-tablet-line-height,var(--builder-line-height));}
    .builder-image {width:var(--builder-tablet-image-width,var(--builder-image-width));height:var(--builder-tablet-image-height,var(--builder-image-height));}
}

@media (max-width:767.98px){
    .builder-section {min-height:var(--section-mobile-min-height,var(--section-min-height));padding:var(--section-mobile-padding-top,var(--section-padding-top)) var(--section-mobile-padding-right,var(--section-padding-right)) var(--section-mobile-padding-bottom,var(--section-padding-bottom)) var(--section-mobile-padding-left,var(--section-padding-left));}
    .builder-section .builder-container {max-width:var(--section-mobile-container-width,var(--section-container-width));}
    .builder-columns {grid-template-columns:var(--builder-mobile-column-template,1fr);gap:var(--builder-mobile-column-gap,var(--builder-column-gap));}
    .builder-heading,.builder-text {font-size:var(--builder-mobile-font-size,var(--builder-font-size));line-height:var(--builder-mobile-line-height,var(--builder-line-height));}
    .builder-image {width:var(--builder-mobile-image-width,var(--builder-image-width));height:var(--builder-mobile-image-height,var(--builder-image-height));}
}

.builder-custom-html-host {
    width: 100%;
    min-width: 0;
}

.builder-custom-html-host > :first-child {
    margin-top: 0;
}

.builder-custom-html-host > :last-child {
    margin-bottom: 0;
}

html,
body {
    font-family: var(--font-body);
}

body,
input,
textarea,
select,
button {
    font-family: var(--font-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    letter-spacing: -.025em;
}

.site-navigation,
.site-header,
.site-footer,
.builder-button {
    font-family: var(--font-body);
}

.site-navigation a {
    font-weight: 700;
    letter-spacing: -.01em;
}

.builder-heading {
    font-family: var(--font-heading);
}

.builder-text {
    font-family: var(--font-body);
}

.builder-button {
    font-weight: 700;
}

/* =========================================================
   Builder 2.0 premium elements
========================================================= */
.builder-badge-wrap{display:flex;width:100%}
.builder-badge-wrap.builder-align-left{justify-content:flex-start}
.builder-badge-wrap.builder-align-center{justify-content:center}
.builder-badge-wrap.builder-align-right{justify-content:flex-end}
.builder-badge{display:inline-flex;align-items:center;justify-content:center;line-height:1;white-space:nowrap}
.builder-block[data-block-type="icon_box"]{height:100%}
.builder-column>.builder-block[data-block-type="icon_box"]{flex:1}
.builder-icon-box{display:flex;flex-direction:column;gap:18px;height:100%;transition:transform .25s ease,box-shadow .25s ease}
.builder-icon-box.builder-align-left{align-items:flex-start;text-align:left}
.builder-icon-box.builder-align-center{align-items:center;text-align:center}
.builder-icon-box.builder-align-right{align-items:flex-end;text-align:right}
.builder-icon-box-icon{display:grid;width:var(--builder-icon-box-size,54px);height:var(--builder-icon-box-size,54px);flex:0 0 auto;place-items:center;color:var(--builder-icon-color,var(--color-primary));background:var(--builder-icon-background,#EAF7EB);border-radius:14px;font-size:var(--builder-icon-size,22px)}
.builder-icon-box h3{margin:4px 0 0;color:var(--builder-icon-title-color,var(--color-dark));font-family:var(--font-heading);font-size:var(--builder-icon-title-size,23px);font-weight:700;line-height:1.15;letter-spacing:-.03em}
.builder-icon-box p{margin:0;color:var(--builder-icon-text-color,var(--color-text-muted));font-size:var(--builder-icon-text-size,14px);line-height:1.75}
.builder-stat{display:flex;flex-direction:column;gap:5px;width:100%}
.builder-stat.builder-align-left{align-items:flex-start;text-align:left}
.builder-stat.builder-align-center{align-items:center;text-align:center}
.builder-stat.builder-align-right{align-items:flex-end;text-align:right}
.builder-stat strong{font-family:var(--font-heading);line-height:.95;letter-spacing:-.04em}
.builder-stat span{line-height:1.4;letter-spacing:.04em;text-transform:uppercase}
.builder-accordion{width:100%}
.builder-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:24px;cursor:pointer;list-style:none;color:var(--builder-accordion-title-color,var(--color-dark));font-family:var(--font-heading);font-size:var(--builder-accordion-title-size,18px);font-weight:700;line-height:1.25}
.builder-accordion summary::-webkit-details-marker{display:none}
.builder-accordion summary i{flex:0 0 auto;color:var(--builder-accordion-icon-color,var(--color-primary));font-size:12px;transition:transform .22s ease}
.builder-accordion[open] summary i{transform:rotate(45deg)}
.builder-accordion-content p{margin:0;color:var(--builder-accordion-text-color,var(--color-text-muted));font-size:var(--builder-accordion-text-size,14px);line-height:1.8}
@media (hover:hover){.builder-icon-box:hover{transform:translateY(-3px)}}
@media (max-width:767.98px){.builder-icon-box{gap:15px}.builder-accordion summary{gap:16px}.builder-accordion-content{padding-right:20px!important}}

/* =========================================================
   Builder 3.0 premium layout system
========================================================= */
.builder-box-padding{padding:var(--builder-box-padding-top,0) var(--builder-box-padding-right,0) var(--builder-box-padding-bottom,0) var(--builder-box-padding-left,0)}
.builder-card{display:flex;flex-direction:column;width:100%;height:100%;transition:transform .28s ease,box-shadow .28s ease}
.builder-columns>.builder-block-column,.builder-column{height:100%}
.builder-column>.builder-block-card{flex:1}
.builder-card-hover-lift:hover{transform:translateY(-6px);box-shadow:0 28px 70px rgba(21,21,21,.14)!important}
.builder-card-hover-zoom:hover .builder-image{transform:scale(1.035)}
.builder-icon-wrap{display:flex;width:100%}
.builder-icon-wrap.builder-align-left{justify-content:flex-start}
.builder-icon-wrap.builder-align-center{justify-content:center}
.builder-icon-wrap.builder-align-right{justify-content:flex-end}
.builder-icon-link{display:inline-flex;text-decoration:none}
.builder-icon-element{display:grid;place-items:center;flex:0 0 auto;transition:transform .22s ease}
.builder-icon-link:hover .builder-icon-element{transform:translateY(-2px)}
.builder-image-wrap{overflow:hidden}
.builder-image{transition:transform .35s ease,box-shadow .25s ease}
.builder-image-hover-zoom:hover .builder-image{transform:scale(1.035)}
.builder-image-hover-lift:hover .builder-image{transform:translateY(-4px)}
.builder-button{font-family:var(--font-body)}
.builder-button-size-sm{min-height:42px;padding:0 16px}
.builder-button-size-md{min-height:50px;padding:0 20px}
.builder-button-size-lg{min-height:58px;padding:0 26px}
.builder-button-width-full{width:100%}
.builder-button-dark{color:#fff;background:var(--color-dark)}
.builder-button-dark:hover{color:#fff;background:#000;transform:translateY(-2px)}
.builder-button-light{color:var(--color-dark);background:#fff}
.builder-button-light:hover{color:var(--color-primary);background:#fff;transform:translateY(-2px)}
.builder-button i{font-size:.95em;transition:transform var(--transition-base)}
.builder-button:hover i:last-child,.builder-button:hover .builder-button-arrow{transform:translateX(3px)}
.builder-button-label{display:inline-block}
.builder-button-arrow{display:inline-block;transition:transform var(--transition-base)}
@media (min-width:768px) and (max-width:991.98px){.builder-box-padding{padding:var(--builder-tablet-box-padding-top,var(--builder-box-padding-top,0)) var(--builder-tablet-box-padding-right,var(--builder-box-padding-right,0)) var(--builder-tablet-box-padding-bottom,var(--builder-box-padding-bottom,0)) var(--builder-tablet-box-padding-left,var(--builder-box-padding-left,0))}.builder-button-responsive[data-tablet-align="left"]{justify-content:flex-start}.builder-button-responsive[data-tablet-align="center"]{justify-content:center}.builder-button-responsive[data-tablet-align="right"]{justify-content:flex-end}}
@media (max-width:767.98px){.builder-box-padding{padding:var(--builder-mobile-box-padding-top,var(--builder-box-padding-top,0)) var(--builder-mobile-box-padding-right,var(--builder-box-padding-right,0)) var(--builder-mobile-box-padding-bottom,var(--builder-box-padding-bottom,0)) var(--builder-mobile-box-padding-left,var(--builder-box-padding-left,0))}.builder-button-responsive[data-mobile-align="left"]{justify-content:flex-start}.builder-button-responsive[data-mobile-align="center"]{justify-content:center}.builder-button-responsive[data-mobile-align="right"]{justify-content:flex-end}.builder-button-size-lg{min-height:54px;padding:0 22px}}

/* Builder 3.0 finishing overrides */
.builder-image-wrap{overflow:visible}
.builder-image-wrap.builder-image-hover-zoom{overflow:hidden}
.builder-button:hover .builder-button-label{transform:none}
.builder-button:hover i:first-child{transform:translateX(-2px)}

/* Builder before/after slider */
.builder-image-placeholder{background:#f1f2ef}
.builder-before-after{position:relative;width:100%;height:var(--builder-ba-height,520px);overflow:hidden;border-radius:var(--builder-ba-radius,24px);box-shadow:var(--builder-ba-shadow,0 18px 45px rgba(21,21,21,.10));isolation:isolate;background:#eef0ec}
.builder-before-after-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;user-select:none;pointer-events:none}
.builder-before-after-before-wrap{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 calc(100% - var(--builder-ba-position,50%)) 0 0);z-index:2}
.builder-before-after-before{width:100%;max-width:none}
.builder-before-after-label{position:absolute;top:18px;z-index:5;padding:8px 12px;border-radius:999px;background:var(--builder-ba-label-bg,rgba(16,21,16,.72));color:var(--builder-ba-label-color,#fff);font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;backdrop-filter:blur(8px);pointer-events:none}
.builder-before-after-label-before{left:18px}
.builder-before-after-label-after{right:18px}
.builder-before-after-divider{position:absolute;top:0;bottom:0;left:var(--builder-ba-position,50%);width:2px;transform:translateX(-1px);background:var(--builder-ba-handle,#fff);z-index:4;pointer-events:none;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.builder-before-after-divider span{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;transform:translate(-50%,-50%);background:var(--builder-ba-handle,#fff);color:var(--builder-ba-accent,#07A50F);box-shadow:0 10px 28px rgba(0,0,0,.18);font-size:15px}
.builder-before-after-range{position:absolute;inset:0;z-index:6;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none}
.builder-before-after-range:focus-visible{opacity:.01;outline:3px solid var(--builder-ba-accent,#07A50F);outline-offset:-4px}
@media(max-width:991.98px){.builder-before-after{height:var(--builder-ba-tablet-height,var(--builder-ba-height,520px))}}
@media(max-width:767.98px){.builder-before-after{height:var(--builder-ba-mobile-height,var(--builder-ba-tablet-height,var(--builder-ba-height,520px)))}.builder-before-after-label{top:12px;font-size:10px}.builder-before-after-label-before{left:12px}.builder-before-after-label-after{right:12px}.builder-before-after-divider span{width:42px;height:42px}}


/* =========================================================
   Builder 3.2 rich text + dynamic services grid
========================================================= */
.builder-text> :first-child{margin-top:0}
.builder-text> :last-child{margin-bottom:0}
.builder-text p,.builder-text div{margin:0 0 1em}
.builder-text h2,.builder-text h3,.builder-text h4{margin:1.1em 0 .45em;color:var(--color-dark);font-family:var(--font-heading);font-weight:800;line-height:1.12;letter-spacing:-.03em;text-transform:none}
.builder-text h2{font-size:1.85em}.builder-text h3{font-size:1.5em}.builder-text h4{font-size:1.2em}
.builder-text ul,.builder-text ol{margin:.8em 0 1em;padding-left:1.4em}
.builder-text li+li{margin-top:.35em}
.builder-text a{color:var(--color-primary);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.builder-text blockquote{margin:1em 0;padding:.8em 1em;border-left:3px solid var(--color-primary);background:#f5f8f5}
.builder-services-grid{display:grid;grid-template-columns:repeat(var(--services-grid-columns,3),minmax(0,1fr));gap:var(--services-grid-gap,24px);width:100%}
.builder-service-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;background:var(--services-grid-card-background,#fff);border:var(--services-grid-card-border-width,1px) solid var(--services-grid-card-border-color,#e6eae6);border-radius:var(--services-grid-card-radius,22px);box-shadow:var(--services-grid-card-shadow,0 16px 40px rgba(18,24,19,.08));transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.builder-service-card:hover{border-color:rgba(7,165,15,.35);box-shadow:0 24px 55px rgba(18,24,19,.13);transform:translateY(-6px)}
.builder-service-card-media{position:relative;display:block;overflow:hidden;height:var(--services-grid-image-height,260px);background:#eef1ee}
.builder-service-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.builder-service-card:hover .builder-service-card-media img{transform:scale(1.045)}
.builder-service-card-arrow{position:absolute;right:18px;top:18px;display:grid;width:42px;height:42px;place-items:center;color:#151515;background:rgba(255,255,255,.94);border-radius:50%;box-shadow:0 8px 24px rgba(0,0,0,.12);transition:transform .25s ease,background .25s ease,color .25s ease}
.builder-service-card:hover .builder-service-card-arrow{color:#fff;background:var(--color-primary);transform:rotate(8deg)}
.builder-service-card-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:28px}
.builder-service-card-eyebrow{margin-bottom:10px;color:var(--color-primary);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.builder-service-card h3{margin:0 0 12px;font-family:var(--font-heading);font-size:26px;font-weight:800;line-height:1.08;letter-spacing:-.04em}
.builder-service-card h3 a{color:var(--color-dark);text-decoration:none}
.builder-service-card p{margin:0 0 24px;color:var(--color-text-muted);font-size:14px;line-height:1.75}
.builder-service-card-link{display:inline-flex;align-items:center;gap:10px;margin-top:auto;color:var(--color-dark);font-size:12px;font-weight:800;letter-spacing:.02em;text-decoration:none}
.builder-service-card-link i{color:var(--color-primary);transition:transform .2s ease}.builder-service-card-link:hover i{transform:translateX(4px)}
.builder-services-empty{grid-column:1/-1;padding:34px;color:var(--color-text-muted);background:#f5f8f5;border:1px dashed #cfd8d0;border-radius:18px;text-align:center}
@media (max-width:991.98px){.builder-services-grid{grid-template-columns:repeat(var(--services-grid-tablet-columns,2),minmax(0,1fr));gap:var(--services-grid-tablet-gap,18px)}.builder-service-card-media{height:var(--services-grid-tablet-image-height,230px)}}
@media (max-width:767.98px){.builder-services-grid{grid-template-columns:repeat(var(--services-grid-mobile-columns,1),minmax(0,1fr));gap:var(--services-grid-mobile-gap,16px)}.builder-service-card-media{height:var(--services-grid-mobile-image-height,220px)}.builder-service-card-body{padding:24px}.builder-service-card h3{font-size:23px}}
