/* Calm, modern and trustworthy visual direction. */
:root {
    --green: #157a8a;
    --green-dark: #143b55;
    --green-light: #e7f4f7;
    --red: #ef7d3c;
    --ink: #172c3a;
    --muted: #667883;
    --cream: #f5f3ee;
    --line: #d8e3e8;
    --white: #fff;
    --shadow: 0 24px 65px rgba(20,59,85,.13);
    --shadow-soft: 0 12px 35px rgba(20,59,85,.09);
    --radius: 1.25rem;
}

body { color: var(--ink); background: #f8fafb; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
h1, h2, h3, h4,
.source-content h1, .source-content h2, .source-content h3, .source-content h4 { font-family: inherit; font-weight: 820; letter-spacing: -.035em; }
::selection { color: #fff; background: var(--green); }

/* Header */
.topbar { padding: .42rem 0; border: 0; background: #143b55; font-size: .74rem; }
.topbar ul { max-width: 1320px; }
.topbar li { padding: .2rem .65rem; background: transparent; box-shadow: none; }
.topbar li::before { width: 18px; height: 18px; color: #143b55; background: #bfe8ee; }
.site-header { border: 0; background: rgba(255,255,255,.97); box-shadow: 0 8px 28px rgba(20,59,85,.09); backdrop-filter: blur(14px); }
.navbar { min-height: 88px; padding: .3rem 0; }
.navbar > .container { max-width: 1480px; }
.navbar-brand { margin-right: 1.25rem; padding: 0; background: transparent; }
.navbar-brand .brand-logo { width: 305px; height: 76px; }
.nav-link { color: #314b5c; font-family: inherit; font-size: .74rem; font-weight: 850; letter-spacing: .035em; }
.nav-link:hover, .nav-link.active { color: var(--green); }
.nav-link::after { bottom: .78rem; height: 3px; border-radius: 3px; background: var(--red); }
.header-actions { width: 245px; gap: .3rem; }
.header-actions a { border: 1px solid #d8e3e8; border-radius: .55rem; background: #fff; box-shadow: 0 5px 15px rgba(20,59,85,.08); }
.header-actions a:hover { transform: translateY(-2px); box-shadow: 0 9px 22px rgba(20,59,85,.15); }
.navbar-toggler { border: 1px solid var(--line); border-radius: .65rem; background: #fff; }

/* Shared layout */
.source-shell { background: #f8fafb; }
.source-content .elementor-section { padding: clamp(4.75rem,7.5vw,7.5rem) 0; }
.source-content .elementor-section .elementor-section { padding: 1.2rem 0; }
.source-content .elementor-container { width: min(1220px,calc(100% - 2.5rem)); }
.source-content h1 { font-size: clamp(2.6rem,5.5vw,5rem); line-height: 1.02; }
.source-content h2 { font-size: clamp(2.15rem,4.3vw,3.75rem); line-height: 1.08; }
.source-content h3 { font-size: 1.4rem; }
.source-content p, .source-content li { color: var(--muted); font-size: 1.02rem; line-height: 1.75; }
.source-content img { border-radius: 1rem; }
.source-content .elementor-button { min-height: 50px; padding: .8rem 1.3rem; border: 0; border-radius: .72rem; background: var(--green); box-shadow: 0 9px 20px rgba(21,122,138,.17); }
.source-content .elementor-button:hover { color: #fff; background: var(--green-dark); transform: translateY(-2px); box-shadow: 0 13px 26px rgba(21,122,138,.24); }
.source-content > .elementor > .elementor-section:nth-child(even) { background: #f1f5f7; }

/* Home trust: one connected, high-trust panel. */
.source-home .elementor-element-121d2c29 { padding: 2.3rem 0 !important; background: #eaf2f5 !important; }
.source-home .elementor-element-121d2c29 > .elementor-container { width: min(1280px,calc(100% - 2.5rem)); gap: 0; flex-wrap: nowrap; overflow: hidden; border-radius: 1.15rem; background: var(--green-dark); box-shadow: var(--shadow); }
.source-home .elementor-element-121d2c29 > .elementor-container > .elementor-column { width: 20%; padding: 0; }
.source-home .elementor-element-121d2c29 .elementor-icon-box-wrapper { min-height: 154px; padding: 1.25rem .9rem; border: 0; border-right: 1px solid rgba(255,255,255,.12); border-radius: 0; color: #fff; background: transparent; box-shadow: none; }
.source-home .elementor-element-121d2c29 > .elementor-container > .elementor-column:last-child .elementor-icon-box-wrapper { border-right: 0; }
.source-home .elementor-element-121d2c29 .elementor-icon { width: 46px; height: 46px; border-radius: .8rem; color: #fff; background: rgba(255,255,255,.12); }
.source-home .elementor-element-121d2c29 h3,
.source-home .elementor-element-121d2c29 p,
.source-home .elementor-element-121d2c29 a { color: #fff !important; }
.source-home .elementor-element-121d2c29 h3 { font-size: .84rem; }
.source-home .elementor-element-121d2c29 p { opacity: .72; }
.source-home .elementor-element-121d2c29 .elementor-element-3588ae9d .elementor-icon-box-wrapper { border: 0; border-right: 1px solid rgba(255,255,255,.12); background: #157a8a; }

/* Home introduction */
.source-home .elementor-element-9047892 { position: relative; padding: clamp(5rem,8vw,8rem) 0 2.5rem; background: linear-gradient(135deg,#fff 0 63%,#e7f4f7 63%) !important; }
.source-home .elementor-element-9047892 > .elementor-container { width: min(1220px,calc(100% - 2.5rem)); display: grid; grid-template-columns: minmax(0,3fr) minmax(340px,2fr); gap: 1.8rem clamp(2.5rem,5vw,5rem); align-items: start; }
.source-home .elementor-element-9047892 > .elementor-container > .home-intro-heading { grid-column: 1 / -1; width: 100%; }
.source-home .elementor-element-9047892 > .elementor-container > .elementor-element-4148566d { grid-column: 1; width: 100%; }
.source-home .elementor-element-9047892 > .elementor-container > .elementor-element-6e29be55 { grid-column: 2; width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; }
.source-home .elementor-element-9047892 h1 { margin-bottom: 1.8rem; color: var(--ink) !important; font-size: clamp(2.65rem,4.5vw,4.55rem) !important; line-height: 1.02 !important; }
.source-home .elementor-element-9047892 p { color: #536b78 !important; font-size: 1.03rem !important; }
.source-home .elementor-element-9047892 a { color: var(--green); }
.source-home .elementor-element-9047892 .elementor-element-1c0af51 { display: none; }
.source-home .elementor-element-9047892 .elementor-element-5ac75901 img { aspect-ratio: 1.32/1; border: 8px solid #fff; border-radius: 1.5rem; box-shadow: var(--shadow); filter: saturate(.9) contrast(1.04); }

/* Campaign visuals */
.source-home .elementor-element-21d5e192 { padding: 2rem 0 5.5rem; background: linear-gradient(135deg,#fff 0 63%,#e7f4f7 63%) !important; }
.source-home .elementor-element-21d5e192 > .elementor-container { width: min(1120px,calc(100% - 2.5rem)); gap: 1.5rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: 1.25rem; background: rgba(255,255,255,.92); box-shadow: var(--shadow-soft); }
.source-home .elementor-element-21d5e192 > .elementor-container > .elementor-column:first-child { width: calc(36% - .75rem); }
.source-home .elementor-element-21d5e192 > .elementor-container > .elementor-column:last-child { width: calc(64% - .75rem); }

/* Primary services: clean bento composition. */
.source-home .elementor-element-2916b978 { padding: clamp(5rem,8vw,8rem) 0; background: #102f44 !important; }
.source-home .elementor-element-2916b978 > .elementor-container { width: min(1220px,calc(100% - 2.5rem)); }
.source-home .elementor-element-77b4a348 > .elementor-container { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column { width: auto; padding: 0; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child { grid-column: 1 / 3; }
.source-content .simple-card { height: 100%; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 1.25rem; background: #fff; box-shadow: 0 20px 50px rgba(0,0,0,.18); }
.source-content .simple-card:hover { transform: translateY(-6px); box-shadow: 0 28px 60px rgba(0,0,0,.24); }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .simple-card { display: grid; grid-template-columns: 45% 55%; align-items: stretch; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .simple-card > a { display: block; height: 100%; min-height: 100%; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-header,
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-header a { height: 100%; min-height: 100%; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-header img { display: block; height: 100%; min-height: 540px; object-fit: cover; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:not(:first-child) .elementskit-box-header img { height: 230px; }
.source-content .simple-card .elementskit-box-body { display: flex; flex-direction: column; padding: 1.7rem; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-body { min-height: 540px; padding: 2.2rem 2.3rem; }
.source-content .simple-card .elementskit-box-footer { margin-top: auto; }
.source-content .simple-card h3,
.source-content .simple-card .service-extra h4 { font-family: inherit; font-size: 1.55rem; font-weight: 850; line-height: 1.22; letter-spacing: -.025em; }
.source-content .simple-card .elementskit-info-box-title { margin-bottom: 1.15rem; }
.source-content .simple-card .elementskit-box-style-content { line-height: 1.75; }
.source-content .simple-card .elementskit-btn { padding: .6rem .9rem; border-radius: .55rem; color: var(--green); background: var(--green-light); }
.source-content .simple-card .service-extra { margin-top: 1.65rem; padding-top: 1.55rem; border-top: 1px solid var(--line); }
.source-content .simple-card .service-extra h4 { margin: 0 0 .9rem; color: var(--green); }
.source-content .simple-card .service-extra p { margin: 0; color: var(--muted); font-size: .96rem; line-height: 1.75; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-content { display: flex; flex: 1; flex-direction: column; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-info-box-title,
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .service-extra h4 { font-size: 1.86rem; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-info-box-title { margin-bottom: 1.7rem; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-style-content { font-size: 1.2rem; line-height: 1.8; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .service-extra { margin-top: auto; padding-top: 2.8rem; border-top: 0; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .service-extra h4 { margin-bottom: 1.1rem; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .service-extra p { font-size: 1.15rem; line-height: 1.8; }
.source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-footer { margin-top: 2rem; }

/* Secondary service cards */
.source-home .elementor-element-10527431 { padding: clamp(5rem,8vw,8rem) 0; background: #f1f5f7 !important; }
.source-home .elementor-element-10527431 > .elementor-container { width: min(1220px,calc(100% - 2.5rem)); gap: 1.25rem; }
.source-home .elementor-element-10527431 > .elementor-container > .elementor-column { width: calc(33.333% - .84rem); }
.source-home .elementor-element-10527431 .elementor-widget-wrap { border: 1px solid var(--line); border-radius: 1.2rem; box-shadow: var(--shadow-soft); }
.source-home .elementor-element-10527431 .elementor-widget-image img { height: 235px; }
.source-home .elementor-element-10527431 .elementor-button { border: 0; color: var(--green); background: var(--green-light); box-shadow: none; }

/* Complete service directory */
.source-home .elementor-element-71c050c2 { padding: clamp(4.5rem,7vw,7rem) 0; background: #e5f0f3 !important; }
.source-home .elementor-element-71c050c2 > .elementor-container { width: min(1220px,calc(100% - 2.5rem)); gap: 1rem; }
.source-home .elementor-element-71c050c2 > .elementor-container > .elementor-column { width: calc(33.333% - .67rem); }
.source-home .elementor-element-71c050c2 .elementor-widget-container { height: 100%; padding: 1.25rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; }
.source-home .elementor-element-71c050c2 .elementor-icon-list-item { border-color: #e9eff2; }
.source-home .elementor-element-71c050c2 .elementor-icon-list-text { color: #3b5665; }
.source-home .elementor-element-71c050c2 .elementor-icon-list-icon,
.source-home .elementor-element-71c050c2 .fa-check-square::before { color: var(--green); }

/* Service and district pages */
.source-service { background: linear-gradient(180deg,#eaf3f6 0,#f8fafb 620px); }
.source-service .source-content > .elementor > .elementor-top-section:first-child { background: transparent; }
.source-service .source-content > .elementor > .elementor-top-section:first-child > .elementor-container { width: min(1060px,calc(100% - 2.5rem)); }
.source-service .source-content .elementor-top-column:not(:has(.elementor-widget-form)) > .elementor-widget-wrap { padding: clamp(1.8rem,4vw,3.5rem); border: 1px solid #dce7eb; border-radius: 1.35rem; background: #fff; box-shadow: var(--shadow); }
.source-service .source-content h2 { color: var(--ink); font-size: clamp(2.7rem,5.8vw,4.8rem); }
.source-service .source-content .elementor-inner-section > .elementor-container { gap: .8rem; }
.source-service .source-content .elementor-inner-section img { border-radius: .9rem; }
.source-district .source-content > .elementor > .elementor-top-section:first-child { background: radial-gradient(circle at 85% 12%,rgba(74,175,193,.36),transparent 30%),linear-gradient(135deg,#143b55,#157a8a); }
.source-district .source-content .elementor-col-25 .elementor-widget-icon-box .elementor-icon-box-wrapper { border: 1px solid rgba(255,255,255,.16); border-radius: 1rem; background: rgba(255,255,255,.09); backdrop-filter: blur(8px); }
.source-district .source-content > .elementor > .elementor-top-section:first-child > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-text-editor { border-radius: 1.2rem; box-shadow: var(--shadow); }

/* Pricing */
.source-prices { background: linear-gradient(180deg,#eaf3f6,#f8fafb); }
.source-prices .source-content .elementor-price-table { border: 1px solid var(--line); border-radius: 1.2rem; box-shadow: var(--shadow-soft); }
.source-prices .source-content .elementor-price-table__header { background: #214d67; }
.source-prices .source-content .elementor-price-table__price { color: var(--green); background: #f1f8fa; }
.source-prices .source-content .elementor-price-table__footer { background: #fff; }
.source-prices .source-content .elementor-element-222b8f4 .elementor-price-table { border: 2px solid var(--green); box-shadow: var(--shadow); }
.source-prices .source-content .elementor-element-222b8f4 .elementor-price-table__header { background: var(--green); }

/* Contact and legal */
.source-contact .source-content > .elementor > .elementor-top-section:first-child { background: linear-gradient(135deg,#f2f5f7,#e5f1f4); }
.source-contact .source-content .elementor-widget-heading h1 { color: var(--ink); }
.source-contact .source-content .elementor-widget-form { border: 1px solid var(--line); border-radius: 1.2rem; box-shadow: var(--shadow); }
.source-contact .source-content .elementor-field,
.source-contact .source-content input,
.source-contact .source-content textarea { border: 1px solid #ccdbe1; border-radius: .7rem; background: #fbfdfe; }
.contact-details { border: 0; border-radius: 1.2rem; color: #fff; background: linear-gradient(145deg,#143b55,#157a8a); box-shadow: var(--shadow); }
.source-legal { background: #f0f4f5; }
.source-legal .source-content .elementor-widget-text-editor { border: 1px solid var(--line); border-radius: 1.2rem; box-shadow: var(--shadow-soft); }

/* Footer */
.site-footer { border: 0; background: #0d2a3d; }
.site-footer .row > div { border: 0; }
.site-footer h2 { color: #fff; font-family: inherit; font-size: 1.5rem; }
.site-footer p { color: #b2c5d0; }
.site-footer a { color: #dce8ee; }
.site-footer .btn-light { border: 0; border-radius: .65rem; box-shadow: none; }
.mobile-actions { border: 0; box-shadow: 0 -7px 22px rgba(0,0,0,.18); }
.mobile-actions a { border: 0; background: var(--red); }
.mobile-actions a:last-child { color: #fff; background: #1fa65b; }

@media (max-width: 1199.98px) {
    .navbar-brand .brand-logo { width: 270px; height: 70px; }
    .navbar-collapse { border-color: var(--line); }
}

@media (max-width: 991.98px) {
    .source-home .elementor-element-121d2c29 > .elementor-container { flex-wrap: wrap; }
    .source-home .elementor-element-121d2c29 > .elementor-container > .elementor-column { width: 50%; }
    .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 { grid-template-columns: 1fr; }
    .source-home .elementor-element-9047892 > .elementor-container > .home-intro-heading,
    .source-home .elementor-element-9047892 > .elementor-container > .elementor-element-4148566d,
    .source-home .elementor-element-9047892 > .elementor-container > .elementor-element-6e29be55 { grid-column: 1; }
    .source-home .elementor-element-9047892 > .elementor-container > .elementor-element-6e29be55 { max-width: 700px; }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .simple-card { grid-template-columns: 1fr; }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .simple-card > a,
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-header { height: auto; min-height: 0; }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-header img { height: 300px; min-height: 0; }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-body { min-height: 0; }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .service-extra { margin-top: 2.5rem; }
    .source-home .elementor-element-71c050c2 > .elementor-container > .elementor-column { width: 100%; }
}

@media (max-width: 767.98px) {
    .navbar-brand .brand-logo { width: 210px; height: 61px; border: 0; }
    .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-home .elementor-element-121d2c29 > .elementor-container > .elementor-column { width: 100%; }
    .source-home .elementor-element-121d2c29 .elementor-icon-box-wrapper { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
    .source-home .elementor-element-9047892 { background: #fff !important; }
    .source-home .elementor-element-21d5e192 { background: #fff !important; }
    .source-home .elementor-element-77b4a348 > .elementor-container { display: block; }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column { margin-bottom: 1rem; }
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:first-child .elementskit-box-header img,
    .source-home .elementor-element-77b4a348 > .elementor-container > .elementor-column:not(:first-child) .elementskit-box-header img { height: 225px; }
    .source-home .elementor-element-10527431 > .elementor-container > .elementor-column { width: 100%; }
    .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%; }
}
