/* Complete visual refresh. Content and document structure stay untouched. */
:root {
    --green: #0b6848;
    --green-dark: #063b2b;
    --green-light: #e7f4ed;
    --red: #df3f35;
    --ink: #12261f;
    --muted: #5f6f68;
    --cream: #f6f3ed;
    --line: #dbe4df;
    --white: #fff;
    --shadow: 0 20px 55px rgba(7, 55, 39, .11);
    --shadow-soft: 0 10px 32px rgba(7, 55, 39, .08);
    --radius: 1.15rem;
}

html { scroll-padding-top: 130px; }
body { color: var(--ink); background: #fbfcfa; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.7; }
a { color: var(--green); }
h1, h2, h3, h4 { color: var(--ink); font-weight: 850; letter-spacing: -.035em; }
p { color: var(--muted); }

/* Global header */
.topbar { padding: .48rem 0; border: 0; background: var(--green-dark); font-size: .76rem; letter-spacing: .01em; }
.topbar ul { max-width: 1280px; }
.topbar li { padding: .2rem .7rem; background: transparent; box-shadow: none; }
.topbar li::before { width: 18px; height: 18px; color: #063b2b; background: #91dfb4; }
.site-header { border: 0; background: rgba(255,255,255,.96); box-shadow: 0 8px 30px rgba(8,53,38,.08); }
.navbar { min-height: 88px; padding: .25rem 0; }
.navbar > .container { max-width: 1440px; }
.navbar-brand { margin-right: 1.25rem; }
.navbar-brand .brand-logo { width: 300px; height: 76px; }
.nav-link { padding: 1.35rem .55rem !important; color: #294039; font-size: .75rem; font-weight: 850; letter-spacing: .045em; }
.nav-link::after { left: .55rem; right: .55rem; bottom: .9rem; height: 3px; border-radius: 3px; background: var(--red); }
.header-actions { width: 240px; gap: .3rem; }
.header-actions a { border: 1px solid #d8e2dd; border-radius: .5rem; background: #fff; box-shadow: 0 5px 15px rgba(7,55,39,.08); }
.header-actions a:hover { transform: translateY(-2px); box-shadow: 0 9px 20px rgba(7,55,39,.14); }
.navbar-toggler { border: 1px solid var(--line); border-radius: .65rem; padding: .55rem .65rem; }
.navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(11,104,72,.14); }

/* Shared page system */
.source-shell { background: #fbfcfa; }
.source-content .elementor-section { padding: clamp(4.5rem, 7vw, 7rem) 0; }
.source-content .elementor-section .elementor-section { padding: 1.25rem 0; }
.source-content .elementor-container { width: min(1200px, calc(100% - 2.5rem)); }
.source-content h1 { font-size: clamp(2.35rem, 5vw, 4.6rem); line-height: 1.04; }
.source-content h2 { font-size: clamp(2rem, 4vw, 3.45rem); line-height: 1.1; }
.source-content h3 { font-size: 1.38rem; line-height: 1.25; }
.source-content p, .source-content li { color: var(--muted); font-size: 1.02rem; }
.source-content img { border-radius: var(--radius); }
.source-content .elementor-button { min-height: 48px; padding: .78rem 1.25rem; border-radius: .72rem; background: var(--green); box-shadow: 0 8px 18px rgba(11,104,72,.15); transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.source-content .elementor-button:hover { transform: translateY(-2px); background: var(--green-dark); box-shadow: 0 12px 24px rgba(11,104,72,.2); }
.source-content .elementor-divider-separator { border-color: #ccd9d2; }
.source-content > .elementor > .elementor-section:nth-child(even) { background: var(--cream); }

/* Home: trust row */
.source-home .elementor-element-121d2c29 { padding: 2.4rem 0 !important; background: linear-gradient(180deg, #f5f2eb, #eef3ef) !important; }
.source-home .elementor-element-121d2c29 > .elementor-container { width: min(1260px, calc(100% - 2.5rem)); gap: .9rem; }
.source-home .elementor-element-121d2c29 > .elementor-container > .elementor-column { width: calc(20% - .72rem); }
.source-home .elementor-element-121d2c29 .elementor-icon-box-wrapper { min-height: 160px; padding: 1.3rem 1rem; border: 0; border-top: 4px solid var(--green); border-radius: var(--radius); box-shadow: var(--shadow-soft); }
.source-home .elementor-element-121d2c29 .elementor-icon { width: 48px; height: 48px; border-radius: .85rem; }
.source-home .elementor-element-121d2c29 h3 { color: var(--ink) !important; font-size: .86rem; }
.source-home .elementor-element-121d2c29 p { color: var(--muted) !important; }
.source-home .elementor-element-121d2c29 .elementor-element-3588ae9d .elementor-icon-box-wrapper { border-top-color: #24a65b; background: #f2fbf6; }

/* Home: main introduction */
.source-home .elementor-element-9047892 { padding: clamp(4.5rem, 7vw, 7rem) 0 2.25rem; background: #fbfcfa !important; }
.source-home .elementor-element-9047892 > .elementor-container { width: min(1200px, calc(100% - 2.5rem)); gap: clamp(2.2rem, 5vw, 5rem); }
.source-home .elementor-element-9047892 > .elementor-container > .elementor-element-4148566d { width: calc(61% - 2.5rem); }
.source-home .elementor-element-9047892 > .elementor-container > .elementor-element-6e29be55 { width: calc(39% - 2.5rem); padding: 1rem; border-radius: 1.5rem; background: var(--green-light); }
.source-home .elementor-element-9047892 h1 { margin-bottom: 1.7rem; color: var(--ink) !important; font-size: clamp(2.25rem, 3.6vw, 3.65rem) !important; line-height: 1.04 !important; }
.source-home .elementor-element-9047892 p { color: #465951 !important; font-size: 1.02rem !important; line-height: 1.72; }
.source-home .elementor-element-9047892 a { color: var(--green); }
.source-home .elementor-element-9047892 .elementor-element-1c0af51 { margin-bottom: 1rem; }
.source-home .elementor-element-9047892 .elementor-divider-separator { border-color: rgba(11,104,72,.35); }
.source-home .elementor-element-9047892 .elementor-element-5ac75901 img { aspect-ratio: 1.4/1; border-radius: 1.15rem; box-shadow: 0 24px 48px rgba(7,55,39,.18); }

/* Home: campaign media */
.source-home .elementor-element-21d5e192 { padding: 1.75rem 0 5.5rem; background: #fbfcfa !important; }
.source-home .elementor-element-21d5e192 > .elementor-container { width: min(1120px, calc(100% - 2.5rem)); gap: 2rem; padding: 1.4rem; border: 1px solid var(--line); border-radius: 1.4rem; background: #fff; box-shadow: var(--shadow-soft); }
.source-home .elementor-element-21d5e192 > .elementor-container > .elementor-column:first-child { width: calc(36% - 1rem); }
.source-home .elementor-element-21d5e192 > .elementor-container > .elementor-column:last-child { width: calc(64% - 1rem); }

/* Home: primary service cards */
.source-home .elementor-element-2916b978 { padding: clamp(4.5rem, 7vw, 7rem) 0; background: var(--green-dark) !important; }
.source-home .elementor-element-2916b978 > .elementor-container { width: min(1200px, calc(100% - 2.5rem)); }
.source-home .elementor-element-77b4a348 > .elementor-container { gap: 1.35rem; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column { width: calc(33.333% - .9rem); padding: 0; }
.source-content .simple-card { border: 0; border-radius: 1.25rem; box-shadow: 0 22px 52px rgba(0,0,0,.18); }
.source-content .simple-card:hover { transform: translateY(-8px); box-shadow: 0 28px 62px rgba(0,0,0,.24); }
.source-content .simple-card .elementskit-box-header img { height: 265px; }
.source-content .simple-card .elementskit-box-body { padding: 1.65rem; }
.source-content .simple-card h3 { margin-bottom: .8rem; font-size: 1.5rem; }
.source-content .simple-card .elementskit-btn { display: inline-flex; padding: .62rem .95rem; border-radius: .55rem; background: var(--green-light); }

/* Home: classic service cards */
.source-home .elementor-element-10527431 { padding: clamp(4.5rem, 7vw, 7rem) 0; background: #f3f0e9 !important; }
.source-home .elementor-element-10527431 > .elementor-container { width: min(1200px, calc(100% - 2.5rem)); gap: 1.4rem; }
.source-home .elementor-element-10527431 > .elementor-container > .elementor-column { width: calc(33.333% - .94rem); }
.source-home .elementor-element-10527431 .elementor-widget-wrap { border: 0; border-radius: 1.25rem; box-shadow: var(--shadow-soft); }
.source-home .elementor-element-10527431 .elementor-widget-image img { height: 235px; }
.source-home .elementor-element-10527431 .elementor-widget-heading h3 { font-size: 1.34rem; }
.source-home .elementor-element-10527431 .elementor-button { border: 0; background: var(--green-light); color: var(--green); box-shadow: none; }

/* Home: full service list */
.source-home .elementor-element-71c050c2 { padding: clamp(4rem, 6vw, 6rem) 0; background: #0b2f24 !important; }
.source-home .elementor-element-71c050c2 > .elementor-container { width: min(1200px, calc(100% - 2.5rem)); gap: 1rem; }
.source-home .elementor-element-71c050c2 > .elementor-container > .elementor-column { width: calc(33.333% - .67rem); padding: 0; }
.source-home .elementor-element-71c050c2 .elementor-widget-container { padding: 1.25rem; border: 1px solid rgba(255,255,255,.1); border-radius: 1rem; background: rgba(255,255,255,.045); }
.source-home .elementor-element-71c050c2 .elementor-icon-list-item { padding: .56rem 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.source-home .elementor-element-71c050c2 .elementor-icon-list-item:last-child { border-bottom: 0; }
.source-home .elementor-element-71c050c2 .elementor-icon-list-text { color: #e6f0eb; }
.source-home .elementor-element-71c050c2 .elementor-icon-list-icon,
.source-home .elementor-element-71c050c2 .fa-check-square::before { color: #7ed6a5; }

/* Service pages */
.source-service { background: linear-gradient(180deg, #eef6f1 0, #fbfcfa 560px); }
.source-service .source-content > .elementor > .elementor-top-section:first-child { padding: clamp(4.5rem, 8vw, 7rem) 0; background: transparent; }
.source-service .source-content > .elementor > .elementor-top-section:first-child > .elementor-container { width: min(1040px, calc(100% - 2.5rem)); }
.source-service .source-content .elementor-top-column:not(:has(.elementor-widget-form)) > .elementor-widget-wrap { padding: clamp(1.7rem, 4vw, 3.25rem); border-radius: 1.4rem; background: #fff; box-shadow: var(--shadow); }
.source-service .source-content h2 { margin-bottom: 1.2rem; font-size: clamp(2.25rem, 5vw, 4rem); }
.source-service .source-content .elementor-widget-text-editor { max-width: none; }
.source-service .source-content .elementor-widget-text-editor p { font-size: 1.06rem; line-height: 1.85; }
.source-service .source-content .elementor-inner-section > .elementor-container { width: 100%; gap: .9rem; }
.source-service .source-content .elementor-inner-section > .elementor-container > .elementor-column { width: calc(33.333% - .6rem); padding: 0; }
.source-service .source-content .elementor-inner-section img { height: 220px; border-radius: .85rem; }

/* District pages */
.source-district { background: #f7f8f5; }
.source-district .source-content > .elementor > .elementor-top-section:first-child { padding: clamp(4.5rem, 8vw, 7rem) 0; background: linear-gradient(135deg, #052f22, #0b6848); }
.source-district .source-content > .elementor > .elementor-top-section:first-child > .elementor-container { width: min(1200px, calc(100% - 2.5rem)); }
.source-district .source-content > .elementor > .elementor-top-section:first-child h2 { font-size: clamp(2.6rem, 6vw, 5rem); }
.source-district .source-content .elementor-col-25 .elementor-widget-icon-box .elementor-icon-box-wrapper { min-height: 128px; border: 1px solid rgba(255,255,255,.14); border-radius: 1rem; background: rgba(255,255,255,.1); color: #fff; }
.source-district .source-content .elementor-col-25 .elementor-widget-icon-box h3,
.source-district .source-content .elementor-col-25 .elementor-widget-icon-box p,
.source-district .source-content .elementor-col-25 .elementor-widget-icon-box a { color: #fff; }
.source-district .source-content > .elementor > .elementor-top-section:first-child > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-text-editor { max-width: 980px; padding: 2.5rem; border: 0; border-radius: 1.2rem; box-shadow: var(--shadow); }

/* Prices */
.source-prices { background: linear-gradient(180deg, #f3f0e9, #fbfcfa); }
.source-prices .source-content > .elementor > .elementor-top-section:first-child { padding: clamp(4.5rem, 8vw, 7rem) 0; background: transparent; }
.source-prices .source-content .elementor-element-33f1a72f > .elementor-widget-wrap { max-width: 1200px; }
.source-prices .source-content .elementor-element-20e25ba > .elementor-container { gap: 1.4rem; }
.source-prices .source-content .elementor-element-20e25ba > .elementor-container > .elementor-column { width: calc(33.333% - .94rem); }
.source-prices .source-content .elementor-price-table { border: 0; border-radius: 1.25rem; box-shadow: var(--shadow-soft); }
.source-prices .source-content .elementor-price-table__header { padding: 1.7rem 1.2rem; background: #174c3b; }
.source-prices .source-content .elementor-price-table__price { background: #f4faf7; }
.source-prices .source-content .elementor-price-table__integer-part { font-size: 3.7rem; }
.source-prices .source-content .elementor-price-table__features-list { padding: 1rem 1.5rem 1.4rem; }
.source-prices .source-content .elementor-price-table__footer { padding: 1.25rem; background: #fff; }
.source-prices .source-content .elementor-element-222b8f4 .elementor-price-table { border: 2px solid var(--green); transform: translateY(-12px); box-shadow: var(--shadow); }
.source-prices .source-content .elementor-element-222b8f4 .elementor-price-table__header { background: var(--green); }

/* Contact */
.source-contact .source-content > .elementor > .elementor-top-section:first-child { min-height: 0; padding: clamp(4.5rem, 8vw, 7rem) 0; background: linear-gradient(135deg, #f4f0e8, #e7f4ed); }
.source-contact .source-content > .elementor > .elementor-top-section:first-child > .elementor-container { width: min(1200px, calc(100% - 2.5rem)); gap: 1.5rem; }
.source-contact .source-content .elementor-element-6b4e0220 { width: calc(56% - .75rem); }
.source-contact .source-content .elementor-element-a39a1e6 { width: calc(44% - .75rem); }
.source-contact .source-content .elementor-widget-heading h1 { padding: 0; border: 0; font-size: clamp(2.5rem, 5vw, 4.2rem); }
.source-contact .source-content .elementor-widget-form { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid rgba(7,55,39,.06); border-radius: 1.25rem; box-shadow: var(--shadow); }
.source-contact .source-content .elementor-field,
.source-contact .source-content input,
.source-contact .source-content textarea { border-color: #d2ddd7; border-radius: .7rem; background: #fbfcfa; }
.source-contact .source-content .elementor-field:focus,
.source-contact .source-content input:focus,
.source-contact .source-content textarea:focus { outline: 0; border-color: var(--green); box-shadow: 0 0 0 .2rem rgba(11,104,72,.1); }
.contact-details { border-radius: 1.25rem; background: linear-gradient(145deg, #063b2b, #0a7550); box-shadow: var(--shadow); }

/* Legal pages */
.source-legal { padding: clamp(3rem, 6vw, 5rem) 0; background: #f4f1eb; }
.source-legal .source-content > .elementor > .elementor-top-section:first-child { padding: 0; background: transparent; }
.source-legal .source-content > .elementor > .elementor-top-section:first-child > .elementor-container { max-width: 940px; }
.source-legal .source-content .elementor-widget-text-editor { padding: clamp(1.5rem, 5vw, 4rem); border: 0; border-radius: 1.3rem; box-shadow: var(--shadow-soft); }
.source-legal .source-content .elementor-widget-text-editor p { line-height: 1.9; }

/* Footer and fixed mobile actions */
.site-footer { position: relative; overflow: hidden; background: #061f18; }
.site-footer::before { content: ""; position: absolute; width: 420px; height: 420px; right: -180px; top: -210px; border-radius: 50%; background: rgba(69,177,118,.08); }
.site-footer .container { position: relative; }
.site-footer .row { padding-top: 4rem !important; padding-bottom: 3.5rem !important; }
.site-footer h2 { margin-bottom: 1.2rem; color: #fff; font-size: 1.45rem; }
.site-footer p { color: #a9c1b7; }
.site-footer li { margin: .65rem 0; }
.site-footer a { color: #d2e2db; }
.site-footer .btn-light { border: 0; border-radius: .7rem; color: var(--green-dark); font-weight: 850; }
.footer-bottom { padding: 1.35rem 0; color: #87a096; }
.mobile-actions { box-shadow: 0 -8px 24px rgba(0,0,0,.2); }
.mobile-actions a { padding: .95rem; background: var(--red); }

@media (max-width: 1199.98px) {
    .navbar-brand .brand-logo { width: 270px; height: 72px; }
    .navbar-collapse { padding: .75rem 0 1rem; }
    .nav-link { padding: .72rem 0 !important; }
}

@media (max-width: 991.98px) {
    .source-content .elementor-section { padding: 4.5rem 0; }
    .source-home .elementor-element-121d2c29 > .elementor-container > .elementor-column { width: calc(50% - .45rem); }
    .source-home .elementor-element-121d2c29 > .elementor-container > .elementor-column:last-child { width: 100%; }
    .source-home .elementor-element-9047892 > .elementor-container > .elementor-element-4148566d,
    .source-home .elementor-element-9047892 > .elementor-container > .elementor-element-6e29be55 { width: 100%; }
    .source-home .elementor-element-9047892 > .elementor-container > .elementor-element-6e29be55 { max-width: 680px; }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column,
    .source-home .elementor-element-10527431 > .elementor-container > .elementor-column { width: calc(50% - .7rem); }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:last-child,
    .source-home .elementor-element-10527431 > .elementor-container > .elementor-column:last-child { width: 100%; }
    .source-home .elementor-element-71c050c2 > .elementor-container > .elementor-column { width: 100%; }
    .source-service .source-content .elementor-inner-section > .elementor-container > .elementor-column { width: calc(33.333% - .6rem); }
    .source-contact .source-content .elementor-element-6b4e0220,
    .source-contact .source-content .elementor-element-a39a1e6 { width: 100%; }
}

@media (max-width: 767.98px) {
    html { scroll-padding-top: 95px; }
    .topbar ul { max-width: none; }
    .navbar { min-height: 74px; }
    .navbar-brand .brand-logo { width: 210px; height: 62px; }
    .source-content .elementor-container,
    .source-home .elementor-element-121d2c29 > .elementor-container,
    .source-home .elementor-element-9047892 > .elementor-container,
    .source-home .elementor-element-21d5e192 > .elementor-container { width: calc(100% - 1.5rem); }
    .source-content .elementor-section { padding: 3.5rem 0; }
    .source-home .elementor-element-121d2c29 > .elementor-container > .elementor-column { width: 100%; }
    .source-home .elementor-element-121d2c29 .elementor-icon-box-wrapper { min-height: 0; }
    .source-home .elementor-element-9047892 { padding-top: 3.7rem; }
    .source-home .elementor-element-9047892 > .elementor-container > .elementor-element-6e29be55 { padding: .65rem; }
    .source-home .elementor-element-21d5e192 > .elementor-container { padding: 1rem; }
    .source-home .elementor-element-21d5e192 > .elementor-container > .elementor-column:first-child,
    .source-home .elementor-element-21d5e192 > .elementor-container > .elementor-column:last-child { width: 100% !important; }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column,
    .source-home .elementor-element-10527431 > .elementor-container > .elementor-column { width: 100%; }
    .source-content .simple-card .elementskit-box-header img { height: 230px; }
    .source-home .elementor-element-71c050c2 .elementor-widget-container { padding: 1rem; }
    .source-service .source-content > .elementor > .elementor-top-section:first-child > .elementor-container { width: calc(100% - 1.5rem); }
    .source-service .source-content .elementor-top-column:not(:has(.elementor-widget-form)) > .elementor-widget-wrap { padding: 1.25rem; }
    .source-service .source-content .elementor-inner-section > .elementor-container > .elementor-column { width: 100%; }
    .source-prices .source-content .elementor-element-20e25ba > .elementor-container > .elementor-column { width: 100%; }
    .source-prices .source-content .elementor-element-222b8f4 .elementor-price-table { transform: none; }
    .source-district .source-content > .elementor > .elementor-top-section:first-child > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-text-editor { padding: 1.3rem; }
    .site-footer .row { padding-top: 3rem !important; padding-bottom: 2.5rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; transform: none !important; }
}
